在纯MS SQL上监视Windows服务器以及我如何秘密实现它

曾经,在一个遥远的星系中,有一家公司从一家初创公司开始就已经成长了很长一段时间,但是仍然保持着紧凑而高效的状态。 该公司(在其硬件上)托管了数百台Windows服务器,并且必须以某种方式对其进行监视。 甚至在我开始之前,就选择了NetIQ作为解决方案。

指示我设置NetIQ,在我之前进行此操作的人一言不发。 打印。 我很快意识到为什么。 史蒂夫·乔布斯(Steve Jobs)可能正在坟墓里旋转,看着类似的界面:

图片

一句话,“小鸟”的逻辑是肯定的(升起事件)。 在另一个否定(不引发事件)中。 通常,“仅在发生事件时”如何与一组不同的复选框一起使用,我通常只是通过实验来了解(并且已经忘记了)。

但是,NetIQ的更糟糕的功能是它的脆弱性。 她的代理(安装在每台服务器上)比Windows本身更容易受到攻击。 内存不足? 特工飞了出去。 CPU 100%? 座席没有回应。 磁盘上还剩0个字节-您会怎么想? 要发送消息,代理必须首先在磁盘上将其创建为文件。。。

尽管如此,他们还是以某种方式忍受了它,直到该公司被更多公司收购为止。 当怪物吃掉一个很小的公司时,该公司像海里的水滴一样溶解。 就我们而言,按照IT标准,我们自己仅比收购我们的公司少一点,并且很明显,合并过程将非常困难。 如此复杂,以至于一段时间以来我们完全没有被触及,并且内部的所有过程都保持不变。 这种状态类似于无所不能之环掉在熔岩上的那一刻,但尚未开始融化:


同时,当问题开始时,我将NetIQ从版本7升级到了版本8,然后又升级到了版本9。 NetIQ仅监视几件事:服务器本身,内存,CPU,磁盘以及最重要的-服务的可用性。 如果我们的自写服务处于“自动”状态,则说明它们应该已经起作用。 这不应该是这样的:


在大多数情况下这些事件并停止监视NetIQ。 经过一周的实验和一周的支持工作,我们发现“这不是错误,这是功能”,并且仅使用特定退出代码会生成警报。 而且我们的服务有时会附带任何代码。

很多时间过去了,现在回滚已经太晚了。 如您所知,发现我们的关键基础架构未受到监视之后,我们立即……什么也没做。 因为到了这个时候,我们公司的“解散”在很大程度上已经进入了活跃阶段,看起来像这样:


远处传来雷鸣,尖叫,闪电的声音,似乎决定了世界的命运,我正面临着一些技术上的小问题……但是我知道我们的监控是半盲的,所以我无法安然入睡。

当意识到没有地方可以等待帮助时,我决定快速编写一个服务扫描程序,以绕过所有服务器并发送电子邮件,如果NetIQ无法做到这一点。 您可能认为我使用了Powershell? 不行 如果您有锤子,那么一切都是钉子,如果您从6.0版开始就一直在使用DBA并使用SQL,那么……摘录自代码的简短摘录,以便您了解它的含义:


我在几个小时内做到了。 接下来的几天,我们对消息,参数和其他优点进行了审核。 阅读有关WMIC命令的信息后,我无法停止。 然后在雾中几个星期。 当我们在NetIQ中使用的所有内容都被重新编写并工作异常时,我醒了。

功能不只是被复制的-我意识到了我所有的幻想,以及我想从这样的系统中获得的一切。 LOWDISK-您还将获得磁盘上的可用空间最近的行为图-无论这种增长是正常的还是出了问题。 没有足够的内存-这是日程表,进程列表以及它们的处理量,对于w3wp.exe,我们将完成应用程序池名称,智能提醒等。 顺便说一句,系统可以从VMware单独获取服务器列表。 快速浏览一下电话上的警报主题就足以了解正在发生的事情:


现代程序员习惯于抽象思考,以至于他们不能编写监视系统,而是“为服务器运行一组抽象监视脚本,而我们不在乎内部是什么”,而是以自己的方式监视每个状态(磁盘,内存,CPU,服务)是独一无二的 意识到这种“抽象”,您在每种情况下的表现都一样差,这就是发生的情况:(这是SCOM电子邮件的屏幕截图。请严格按照ToR进行操作)


新系统的一大优点是它分别是无代理的,安装代理没有问题,崩溃了-根本就没有东西掉落。 该系统像锤子一样简单可靠。

接下来的几个月,我早上开始工作,站在我的创意面前,就像画家在画布前一样,并施加了一些笔触,使其变得更加理想。 由于我没有任何截止日期,因此技术债务降至最低。 在某个时候,我仍然强迫自己停下来。

NetIQ仍然有效,但是每个人都更喜欢这种新型的警报,并且逐渐地,我在不关闭旧系统的情况下将所有人转移到了新系统中的警报。 同时,“融合”过程已进入最后阶段:


好吧,童话本应该结束了。 我自己为一家大型官僚公司带来如此多的乐趣感到惊讶。 经过一个月的准备,他们告诉我,在一周内,我们熄灭了NetIQ,然后我们改用了SCOM。 我关闭了NetIQ(我承认,我非常讨厌它,令我感到非常高兴),然后开始等待SCOM。 但是在指定的时间他不在那儿。 一周之后,一个月之后。

SCOM仅在六个月后出现-有人忘记了我们拥有多少服务器以及SCOM需要多少许可证。 在六个月的时间里,如此之多的系统开始依赖我的系统,该系统开始保留库存,指标等,而第二个则悄悄地成为非官方系统。 对于审核员,这里有SCOM,真正有用的一切都在第二个系统中。

有时,不同级别的经理会感到疑惑-这些自动电子邮件来自何处? 最近,我向他们详细介绍了我在本文中阐述的故事,他们开心地笑了。 尽管有时对我来说还是很有趣的,但是在一家大型官僚公司中,您如何“拖入沉默的gl语”呢? 是的,就像过去一样,编写代码很高兴。

Source: https://habr.com/ru/post/zh-CN430662/


All Articles