場景模擬:
國內(nèi)有部分企業(yè)需要運行某些窗口程序(即.exe)來支撐重要的業(yè)務運作,一旦這些重要的窗口程序中斷了,那么就會造成巨大的經(jīng)濟損失或者影響工作效率,后果如此嚴重。所以想通過zabbix進行多程序狀態(tài)的監(jiān)控,一旦這些重要的窗口程序中斷,里面產(chǎn)生告警,通知運維人員去修復。
提前準備好,兩個bat腳本,findexe.bat(把要監(jiān)控的exe程序做成自動發(fā)現(xiàn)),check_exe_status.bat(獲取監(jiān)控exe程序的狀態(tài))
第一步–準備bat腳本:
findexe.bat腳本的內(nèi)容如下
@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腳本內(nèi)容如下
@echo off
tasklist|findstr ^%1 >/NUL 2>&1
if %errorlevel% == 0 (
echo "running"
) else (
echo "norunning"
)
注意tasklist|findstr ^%1 >/NUL 2>&1這條命令是查詢監(jiān)控程序exe有沒有運行的
第二步–制作監(jiān)控模板
![](/d/20211016/80130c836493e9b4ba3081f1cb0d18fc.gif)
點擊添加,創(chuàng)建模板
然后在剛才的check_exe_status模板中,創(chuàng)建自動發(fā)現(xiàn)規(guī)則
![](/d/20211016/9c7e1f36f13ecd72839ea779648904f9.gif)
圖中鍵值名為findexe,鍵值里面的參數(shù)就是客戶要監(jiān)控的多個進程,用雙引號括起來,中間用空格分割。
findexe[“firefox.exe chrome.exe xxxlll.exe”]
如果還有其他exe程序要監(jiān)控,只需要用空格分割,往后面填入即可。
接著在這個自動發(fā)現(xiàn)規(guī)則下,新建一個監(jiān)控項原型。
![](/d/20211016/d7dffe055c1402497a75650e875c4283.gif)
原型的{#SERVERNAME}的值是固定的有第一步的findexe.bat中定義。
第三步–配置zabbix_agent.conf的自定義鍵值
![](/d/20211016/0e767f630d207ee73249f3c461f7077e.gif)
腳本路徑自定義,自定義鍵值要和模板的命名一致
重啟zabbix_agent
第四步–驗證多個exe程序狀態(tài)
![](/d/20211016/f8b5c7327ad0d4cd0bf8d6604beff1ab.gif)
自動發(fā)現(xiàn)填入了三個exe程序名,其中xxxll.exe為不存在的exe,為了驗證效果,現(xiàn)在把firefox.exe程序關掉,看一下他的最新數(shù)據(jù)是否會顯示成norunning。
![](/d/20211016/b0d6f57c51eecdc836d11a91d47ed36a.gif)
驗證成功。
到此這篇關于Zabbix 結合 bat 腳本實現(xiàn)多個應用程序狀態(tài)監(jiān)控的方法的文章就介紹到這了,更多相關Zabbix結合 bat 腳本狀態(tài)監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!