[技术干货] Zabbix结合bat脚本实现多个应用程序状态监控

[复制链接]
乐维 发表于 2020-5-12 10:16:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
场景模拟:
国内有部分企业需要运行某些窗口程序(即*.exe)来支撑重要的业务运作,一旦这些重要的窗口程序中断了,那么就会造成巨大的经济损失或者影响工作效率,后果如此严重。所以想通过zabbix进行多程序状态的监控,一旦这些重要的窗口程序中断,里面产生告警,通知运维人员去修复。
提前准备好,两个bat脚本,findexe.bat(把要监控的exe程序做成自动发现),check_exe_status.bat(获取监控exe程序的状态)
第一步准备bat脚本:

findexe.bat脚本的内容如下
@echo off
setlocal enabledelayedexpansion
set /a n=0
set /a n1=0
for %%i in (%*) do (set /a n+=1)
@echo {"data":[
for %%a in (%*) do (
set /a n1+=1
@echo {"{#SERVERNAME}":"%%a"
if !n1! neq !n! (
   @echo },
) else (
   @echo }
)
)
echo ]}

check_exe_status.bat脚本内容如下
@echo off
tasklist|findstr ^%1 >/NUL 2>&1
if %errorlevel% == 0 (
echo "running"
) else (
    echo "norunning"
)
#注意tasklist|findstr ^%1 >/NUL 2>&1这条命令是查询监控程序exe有没有运行的
第二步制作监控模板
1.png
点击添加,创建模板
然后在刚才的check_exe_status模板中,创建自动发现规则
2.png
图中键值名为findexe,键值里面的参数就是客户要监控的多个进程
,用双引号括起来,中间用空格分割。
findexe["firefox.exe chrome.exe xxxlll.exe"]
如果还有其他exe程序要监控,只需要用空格分割,往后面填入即可
接着在这个自动发现规则下,新建一个监控项原型
3.png
原型的{#SERVERNAME}的值是固定的有第一步的findexe.bat中定义。
第三步配置zabbix_agent.conf的自定义键值
4.png

脚本路径自定义,自定义键值要和模板的命名一致
重启zabbix_agent
第四步验证多个exe程序状态
5.png
自动发现填入了三个exe程序名,其中xxxll.exe为不存在的exe,为了验证效果,现在把firefox.exe程序关掉,看一下他的最新数据是否会显示成norunning。
6.png
验证成功

技术交流欢迎加入Q群:177428068




上一篇:Zabbix负载判断与调整配置参数
下一篇:最简单的docker搭建私有仓库教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子179

发布主题

乐维社区

微信公众号

版权所有 © 2016-2019 九一乐维丨粤ICP备17007026号