如何通過(guò)bat腳本與zabbix_sender實(shí)時(shí)監(jiān)控應(yīng)用進(jìn)程是否正在運(yùn)行

為什么要使用zabbix_sender?

zabbix獲取數(shù)據(jù)有超時(shí)時(shí)間,如果一些數(shù)據(jù)需要執(zhí)行比較長(zhǎng)的時(shí)間才能獲取的話,那么zabbix會(huì)出現(xiàn)異常,考慮到這種情況,zabbix增加了Trapper功能,客戶端自己提交數(shù)據(jù)給zabbix,這個(gè)通道便是trapper.

思路解析:在window主機(jī)上,編寫一個(gè)每隔5秒就會(huì)執(zhí)行tasklist查看進(jìn)程的bat腳本,如果該腳本找到了指定的進(jìn)程就通過(guò)zabbix_sender發(fā)送“is running”到zabbix_server服務(wù)器,此時(shí)對(duì)應(yīng)的zabbix_trapper(zabbix采集器)監(jiān)控項(xiàng)就會(huì)獲取到“is running”這個(gè)最新的數(shù)據(jù)。如果找不到進(jìn)程的話,就通過(guò)zabbix_sender發(fā)送“not running”到zabbix_server服務(wù)器,此時(shí)zabbix_trapper(zabbix采集器)監(jiān)控項(xiàng)就會(huì)獲取到“not running”這個(gè)最新的數(shù)據(jù)。最后還要給這個(gè)監(jiān)控應(yīng)用進(jìn)程的服務(wù)器設(shè)置一個(gè)觸發(fā)器,如果觸發(fā)器的值等于not running就觸發(fā)告警。

1. 首先我們要準(zhǔn)備一個(gè)監(jiān)控應(yīng)用進(jìn)程的批處理腳本(bat腳本)

@echo off

if "%1" == "h" gotobegin

mshtavbscript:createobject("wscript.shell").run("%~nx0h",0)(window.close)&&exit

:begin

:start

ping -n 5 127.0.0.1>nul

tasklist|findstr "chrome.exe"

if %errorlevel% == 0 (

  "C:\ProgramFiles\ZABBIX_AGENT3\bin\win64\zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "isrunning"

) else (

  "C:\ProgramFiles\ZABBIX_AGENT3\bin\win64\zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "notrunning"

)

goto start

腳本解析:

@echo off 作用是關(guān)閉回顯功能。如果沒(méi)有此代碼,第三行的ping –n 5 127.0.0.1>nul這個(gè)命令就會(huì)顯示到cmd控制臺(tái)。

if "%1" == "h" gotobegin

mshtavbscript:createobject("wscript.shell").run("%~nx0h",0)(window.close)&&exit

:begin

這段代碼的作用是把bat腳本放到后臺(tái)運(yùn)行

Ping –n 5 127.0.0.1>nul 這句代碼的意思是ping本地地址,有5條顯示記錄(如果要每隔十秒或者幾十秒執(zhí)行腳本,可以修改-n后面的參數(shù)ping -n 后面的數(shù)字越大,腳本執(zhí)行的間隔越長(zhǎng)),然后把ping的結(jié)果重定向到nul就是不會(huì)輸出內(nèi)容到cmd控制臺(tái),

(Ping –n 5127.0.0.1>nul與goto start這句語(yǔ)句結(jié)合,實(shí)現(xiàn)每5秒執(zhí)行一次這個(gè)腳本。)

Tasklist|findstr “chrome.exe”這句代碼的作用是列出當(dāng)前運(yùn)行的進(jìn)程,然后通過(guò)findstr工具查看chrome.exe程序有沒(méi)有運(yùn)行

%ERRORLEVEL% 是批處理腳本的全局變量,返回上一條命令的結(jié)果,如果上一條命令執(zhí)行成功就會(huì)返回0,否則返回1.

Goto start 作用是跳轉(zhuǎn)到start函數(shù)塊執(zhí)行函數(shù)里的命令。函數(shù)塊前面要以冒號(hào)開頭

,第二行的start前面要加冒號(hào)

(安裝window版本的zabbix_agent就會(huì)附帶zabbix_sender)

zabbix_sender用法

zabbix_sender –s “zabbix_server的主機(jī)名”-z “zabbix_server的IP”-k “鍵值名”-o “自定義發(fā)送的消息”

"C:\ProgramFiles\ZABBIX_AGENT3\bin\win64\zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "isrunning" 這條命令是如果存在指定的進(jìn)程,就發(fā)送is running

"C:\ProgramFiles\ZABBIX_AGENT3\bin\win64\zabbix_sender.exe" -s "zabbix-server"-z 192.168.74.128 -k "test" -o "not running" 這條命令是如果不存在指定的進(jìn)程,就發(fā)送not running

(特別注意:為了獲取到最新數(shù)據(jù),所以這兩個(gè)命令的鍵值必須使用相同名稱的鍵值“test”

2.在zabbix_server界面創(chuàng)建trapper監(jiān)控項(xiàng)

測(cè)試效果:

Chorme.exe程序運(yùn)行,chorme.exe運(yùn)行狀態(tài)監(jiān)控項(xiàng)獲取到“is running”

Chorme.exe程序沒(méi)有運(yùn)行,chorme.exe運(yùn)行狀態(tài)監(jiān)控項(xiàng)獲取到“not running”

3.配置觸發(fā)器,如果chorme.exe服務(wù)沒(méi)有運(yùn)行就要告警

實(shí)際效果,手動(dòng)關(guān)閉chorme.exe服務(wù),觸發(fā)告警

更多技術(shù)問(wèn)題,歡迎進(jìn)群交流:177428068

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人學(xué)習(xí)批處理的初衷來(lái)源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過(guò)程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,983評(píng)論 0 11
  • Zabbix簡(jiǎn)介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,310評(píng)論 0 37
  • 1、zabbix簡(jiǎn)介 zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。...
    Lee_M閱讀 916評(píng)論 0 1
  • 前段時(shí)間有監(jiān)控服務(wù)器主機(jī)、應(yīng)用、交換機(jī)等的需求,所以對(duì)zabbix進(jìn)行了學(xué)習(xí),現(xiàn)在整理記錄全過(guò)程。 1.zabbi...
    不好聽丶閱讀 881評(píng)論 0 4
  • 在我們?nèi)粘5氖謾C(jī)拍照中,可能你取景對(duì)焦都沒(méi)問(wèn)題,但是按拍照鍵時(shí)手稍微的抖動(dòng)了一下,結(jié)果照片糊掉了(無(wú)奈臉)。作為...
    初心覺(jué)醒閱讀 3,568評(píng)論 0 0

友情鏈接更多精彩內(nèi)容