這篇文章將為大家詳細講解有關Zabbix如何監控Windows進程重啟,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
前段時間,一個朋友咨詢我怎么監控Windows進程的重啟。生產環境有監控進程的啟動和關閉,但重啟還沒想過。經過一番思考和摸索后成功完成了監控,下面把監控思路和方法分享給大家。
我首先想到的是通過Zabbix自帶的進程數監控(proc.num)來做,但有兩個難點:一、進程數從1變為0再變為1,算是一次重啟。觸發器要判斷三次連續的監控數據,不太好做;二、進程從關閉到下次啟動,中間間隔多長時間算是一次重啟呢?
然后想到了zabbix監控操作系統的重啟,比如Windows系統重啟的觸發器:{Template OS Windows:system.uptime.change(0)}<0,zabbix是通過監控系統運行時長來判斷的,即系統運行時長的變化小于0就可以斷定服務器重啟了。同樣的,如果我們監控了進程的運行時長,那么重啟就很好判斷了。
下一步著手監控Windows進程的運行時長。想到了zabbix原生支持監控Windows performance counters(Windows性能監視器),可以從Windows性能監視器里面查找是否有對進程運行時長的監控。登錄一臺Windows Server 2008服務器,上去查看一下性能監視器,還真找到了,見下圖:
從Process類別里找到了“Elapsed Time”,這就是進程總運行時間的意思。再從下面一欄選擇一個進程(比如zabbix_agentd,不帶.exe后綴)。
添加好后,右鍵選擇“屬性”:
可以看到我們剛才添加的計數器為:\Process(zabbix_agentd)\Elapsed Time
退出設置,然后查看計數器的數據,進程當前運行時長14349806秒:
重啟進程zabbix_agentd,再觀察一下,最新計數從0開始了:
方法找到了,我們創建監控項和觸發器。博客地址:http://qicheng0211.blog.51cto.com/
先創建監控項:
監控項名稱:zabbix_agentd進程運行時間
監控項類型:Zabbix agent
監控項Key:perf_counter["\Process(zabbix_agentd)\Elapsed Time"]
數據類型:float
單位:s
監控間隔:30
注:perf_counter的參數就是上面添加的性能計數器。
創建觸發器:
觸發器名字:zabbix_agentd進程重啟!
觸發器表達式:{windows.60.61:perf_counter["\Process(zabbix_agentd)\Elapsed Time"].change()}<0
表達式含義:監控項最新監控數據和上一個數據的差值小于0,則觸發器觸發。
下面我們測試一下,重啟進程后觀察是否產生告警:
等待一會,觸發器成功被觸發,觸發狀態持續30秒。
關于“Zabbix如何監控Windows進程重啟”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。