生产环境中需求监控windows的某个服务是否正常,不能局限的只监控windows是否在线,如下是两种方法。
第一种(简单):通过key:service_state[service]监控
步骤,在zabbix服务端设置新建监控项,加入一个新建的监控项,如下范例监控DNS服务,主要添加
key:service_state[service]说明:
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表示没有。 |
1.在windows主机上新建一个脚本,判断服务是否在线,并向server发送值
脚本:
放在c:\chick.bat
@echo off set srvname=%1 for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" ( echo 1 ) else ( echo 0 )脚本说明:接收一个参数(服务名),判断是否在线,在线返回1,否者返回0
修改windows agent的配置文件zabbix_agentd.win:
添加如下:如果是服务名中间有空格就加双引号
UnsafeUserParameters=1 UserParameter=servicestate.dns,c:\chick.bat dns UserParameter=servicestate.vss,c:\chick.bat vss重启windows zabbix agentd服务,然后在zabbix的服务端测试
测试正常后添加监控项和图形,就能发现监控图形
测试结果:
评论区