zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Zabbix监控(九):自动监控windows服务

2023-06-13 09:17:42 时间
service_state[service] State of service. 0   running, 1   paused, 2   start pending, 3   pause pending,

4   continue pending, 5   stop pending, 6   stopped, 7   unknown, 255   no such service

返回0表示运行,返回6表示关闭,返回7表示未知,返回255表示没有。

二、手动监控客户端Agent服务

1、查看客户端服务名称

2、给监控主机添加Items

监控客户端agent服务状态,这里故意多输了个2

3、创建触发器

由于返回0表示运行,因此设置不为0时报警

4、查看监控图像(在Last Data中找)

可以看到因为没有Zabbix Agent2这个服务,返回255,将2去掉后再观察可以看到返回值为0

三、自动监控windows服务状态

1、创建脚本

在客户端新建discoverservice.bat文件,放在c:/zabbix/目录中,内容如下:

@echo off

echo {

echo         "data":[

for /F "skip=1 eol=命 tokens=*" %%i IN (net start) DO echo                 {"{#SERVICE_NAME}":"%%i"},

echo                 {"{#SERVICE_NAME}":"Zabbix Agent"}

echo         ]

echo }

脚本说明:

net start命令输出所有已启动的服务,但是有第一行 已经启动以下 Windows 服务:  和最后一行 命令成功完成。 ,需要去掉,因此skip=1 eol=命 tokens=*就好理解了,跳过第一行和命字开头的行;最后再插入一条{ {#SERVICE_NAME} : Zabbix Agent }来确保最后没后行没有逗号,满足JSON格式。

2、修改客户端配置

在zabbix_agentd.conf中添加以下内容

UnsafeUserParameters=1

UserParameter=servicestate,c:/zabbix/discoverservice.bat

重新启动zabbix agentd服务

提示:客户端的脚本和配置可在安装时就提前做好,参考我的安装文档:

http://ywzhou.blog.51cto.com/2785388/1579165

3、客户端测试

以管理员身份运行CMD,cd到c:/zabbix目录,输入脚本文件名,回车:

4、服务端测试

[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 10.188.1.46 -k servicestate

注意:图中Visual Studio Team Foundation后的中文会显示乱码,后面会说明。

5、在Windows模板中创建自动监控规则

6、创建Items原型

7、创建触发器原型

8、查看监控主机的自动发现规则

说明:Agent服务重复了一次,不用管,zabbix不添加重复的ITEM。

9、查看服务自动监控结果

10、查看最近返回的值

结论:自动发现端口和服务会添加大量的ITEMS,因此不建议在模板中添加GRAPH,并且最好创建模板时新建端口组和服务组,方便查看时过滤;将一些不重要的服务的触发器禁用,否则会频烦收到邮件报警。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/57275.html

windows