場景模擬:
國內有部分企業須要運行某些窗口程序(即.exe)來支撐重要的業務運做,一旦這些重要的窗口程序中斷了,那麼就會形成巨大的經濟損失或者影響工做效率,後果如此嚴重。因此想經過zabbix進行多程序狀態的監控,一旦這些重要的窗口程序中斷,裏面產生告警,通知運維人員去修復。
chrome
提早準備好,兩個bat腳本,findexe.bat(把要監控的exe程序作成自動發現),check_exe_status.bat(獲取監控exe程序的狀態)運維
第一步準備bat腳本:ide
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 }
)
firefox
)
echo ]}
3d
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有沒有運行的
blog
第二步製做監控模板進程
點擊添加,建立模板
而後在剛纔的check_exe_status模板中,建立自動發現規則
原型
圖中鍵值名爲findexe,鍵值裏面的參數就是客戶要監控的多個進程
,用雙引號括起來,中間用空格分割。
findexe["firefox.exe chrome.exe xxxlll.exe"]
若是還有其餘exe程序要監控,只須要用空格分割,日後面填入便可
it
接着在這個自動發現規則下,新建一個監控項原型
原型的{#SERVERNAME}的值是固定的有第一步的findexe.bat中定義。
io
第三步配置zabbix_agent.conf的自定義鍵值
腳本路徑自定義,自定義鍵值要和模板的命名一致
重啓zabbix_agent
第四步驗證多個exe程序狀態
自動發現填入了三個exe程序名,其中xxxll.exe爲不存在的exe,爲了驗證效果,如今把firefox.exe程序關掉,看一下他的最新數據是否會顯示成norunning。
驗證成功