【解析向】腾讯云的Windows Server日志配置收集工具是个什么鬼?(1)

楼主在使用腾讯云IaaS时,经常遇到一些疑似平台问题的Windows疑难杂症,通常会向腾讯云工单提交OS工单,让其专业工程师来排查,毕竟我买IaaS的CVM要来上线业务的,无暇来解决系统层面的问题。

但是不知道从什么时候开始,提相关工单后,一线工程师了解初步问题后,如果是性能上或者配置上存在问题,会丢来一个日志配置收集工具的下载地址:

http://mirrors.tencentyun.com/install/platform_ops/qcloud/QCloud_Windows_Status_Check_Script.zip

下载后解压出来的内容

在提交了N次收集内容后,偶尔有一次看了内容,发现收集的东西还是挺多的:

收集入门界面

所以,准备写一系列的文章,用有限的知识来解析下这个所谓的windows状态检查脚本(虽然一线工程师称其为日志配置收集工具,不过从这个“工具”的英文名直译过来其实是个脚本)

1、右键对主脚本进行编辑,发现并没有进行加密:

打开后的界面

2、分析了一波,发现这个工具其实分为四大部分:

渣画图表结构

3、在UI部分,可能是为了照顾入门用户,采用了“小Q”作为旁白发声者,同时采用日期时间+主机名的方式来命名收集目录,这样确实避免了多次收集时可能出现冲突的的问题:

Write-Host -ForegroundColor 10  "小Q:此脚本功能为收集系统运行日志用于故障定位,不会收集任何敏感数据和做任何操作,请您放心使用:-)"
write-host "———————————————————————————"
write-host "———————————————————————————"
write-host "———————————————————————————"
write-host "———————————————————————————"
write-host "———————————————————————————"
$filehostname = hostname
$filedatetmp = Get-Date
$filedate = $filedatetmp.ToString('MM-dd-hh-mm-ss')
$Logfilebx = "$filehostname-$filedate-Log"
$Logfilename = "TotalLog.txt"
$Dirfilename = $filedate + "QCloud-TS-$filehostname"

创建后效果

4、从上图看到有个“可选场景”,这个应该是最近才更新的特性,之前都是一把梭全收集,现在有了场景收集,时间上我给脚本加了收集秒数计算:

$startscptime = Get-Date
<QCloud_Windows_Status_Check_Script>
$endscptime = Get-Date
Write-Host -ForegroundColor Red ('Total Runtime: ' + ($endscptime - $startscptime).TotalSeconds)

然后特意对比了三者的收集差距,结果如下:

场景名

消耗秒数

0(全部场景)

70.129646

1(日志收集场景)

40.190996

2(关键配置收集场景)

40.180253

(所以在这个版本没出来前,每次都需要经过全部场景至少需要70s时间,这还是楼主清理了日志后的结果)

5、三个场景选择对比如下,可以看到0、1场景都是会进行日志收集,2场景则产出了纯文本记录(奇怪的是这里1、2场景的秒数竟然消耗相差无几):

6、仔细看了下三个场景的实现方式,脚本的场景实际上是通过标志位实现场景选择:

##定义执行模式,0为全部执行(默认),1为日志收集,2为精简收集
$selectvalue = 0

接着再通过简单的排序将模块进行排序,有序堆积,并将这个selectvalue 值进行判断,如果数字越大则越轻量:

通过selectvalue值进行判断

7、所以在场景的选择,完全没必要被一线工程师牵着鼻子走,完全可以根据自己的故障现象进行有限的收集,比如性能下降怀疑是进程级别问题,可以看到进程是通过以下语句进行收集的,会重定向到文本文件中,则不再需要直接收集日志文件(通常很大),直接选择场景2即可:

get-process -ErrorAction SilentlyContinue | select-object * | Fl | Out-File -Append ".\$Dirfilename\$Logfilename"

(所以文本级别的输出较为轻量,同时看到这个文本的输出位于场景2中)

今天主要解析了起始段、主体结构与场景选择方面的脚本,但我稍微整理下,发现有意思的是在主模块,竟然多达20多项,这20多项我将分为两篇(尽可能)来进行详细解析,希望通过对QCloud这个日志收集工具的解析,能够给予Windows Server运维工程师提供一些更加底层的排错思路。


原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏一枝花算不算浪漫

[开发工具]Java开发常用的在线工具

3379
来自专栏农夫安全

CVE-2017-11882漏洞复现

0x00 前言 参考backlion师傅的PDF,记录一下这个过程。 2017年11月14日,微软发布了11月份的安全补丁更新,其中比较引人关注...

3318
来自专栏编程

年底总结一下Python WEB最好用的几个框架,让你有一个系统的了解

2017年就要过完了,我们来总结一下2017年最好用的17个Python Web框架 群内不定时分享干货,包括2017最新的python企业案例学习资料和零基础...

5137
来自专栏机器之心

教程 | 新手指南:如何在AWS GPU上运行Jupyter noterbook?

选自Keras Blog 作者:Francois Chollet 机器之心编译 参与:王宇欣、黄小天 本文将指导你逐步在 AWS GPU 实例上运行深度学习 ...

3367
来自专栏PHP技术

NoSQL数据库的分布式算法

原文出处: highlyscalable.wordpress.com 译文出处:juliashine 系 统的可扩展性是推动NoSQL运动发展的的主要...

3265
来自专栏Python数据科学

要成为一个专业的爬虫大佬,你还需要了解这些

本文内容参考Github:https://github.com/lorien/awesome-web-scraping/blob/master/python.m...

871
来自专栏数据小魔方

R语言数据重塑及导出操作

今天跟大家简单介绍下几个常用的R数据操纵技巧——导入(xlsx)、导出及长宽转换! 数据导入(xlsx) 之前写过一篇关于R导入不同类型数据的方式,但是其中只涉...

2393
来自专栏雨尘分享

An AVPlayerItem cannot be associated with more than one instance of AVPlayer 你困扰了我这么久1.发现问题的过程

1844
来自专栏杨建荣的学习笔记

运维平台中的集群管理功能设计

我在一次沙龙上说过,做一件事情和做一件具体的事情差别很大。 和很多人交流的时候,其实我是希望他做一件事情,把这件事情负责起来,但是从他们惯有的思维来看,他们希...

3479
来自专栏QQ音乐前端团队专栏

自己动手打造前端性能监控系统

我们从三个各方面,前端上报,数据收集和入库,数据展示来介绍了如何打造一个测速系统。

58710

扫码关注云+社区