Zabbix監控Windows進程重啓

    前段時間,一個朋友諮詢我怎麼監控Windows進程的重啓。生產環境有監控進程的啓動和關閉,但重啓還沒想過。通過一番思考和摸索後成功完成了監控,下面把監控思路和方法分享給你們。
windows

    我首先想到的是經過Zabbix自帶的進程數監控(proc.num)來作,但有兩個難點:1、進程數從1變爲0再變爲1,算是一次重啓。觸發器要判斷三次連續的監控數據,不太好作;2、進程從關閉到下次啓動,中間間隔多長時間算是一次重啓呢?服務器

    而後想到了zabbix監控操做系統的重啓,好比Windows系統重啓的觸發器:{Template OS Windows:system.uptime.change(0)}<0,zabbix是經過監控系統運行時長來判斷的,即系統運行時長的變化小於0就能夠判定服務器重啓了。一樣的,若是咱們監控了進程的運行時長,那麼重啓就很好判斷了。ide

    下一步着手監控Windows進程的運行時長。想到了zabbix原生支持監控Windows performance counters(Windows性能監視器),能夠從Windows性能監視器裏面查找是否有對進程運行時長的監控。登陸一臺Windows Server 2008服務器,上去查看一下性能監視器,還真找到了,見下圖:性能

wKioL1klGrTgRb43AAGrAlpJ8eM644.png-wh_50

    從Process類別裏找到了「Elapsed Time」,這就是進程總運行時間的意思。再從下面一欄選擇一個進程(好比zabbix_agentd,不帶.exe後綴)。測試

    添加好後,右鍵選擇「屬性」:spa

wKiom1klGuzC5z1QAAAz7F6QKCg286.png-wh_50

    能夠看到咱們剛纔添加的計數器爲:\Process(zabbix_agentd)\Elapsed Time操作系統

wKiom1klGwWwNFkzAADGEDPW4go666.png-wh_50

    退出設置,而後查看計數器的數據,進程當前運行時長14349806秒:3d

wKioL1klGzHCz2yOAADtxh2g8W0200.png-wh_50

    重啓進程zabbix_agentd,再觀察一下,最新計數從0開始了:orm

wKiom1klG06Q3EsYAAAV5SBccAA566.png-wh_50

    方法找到了,咱們建立監控項和觸發器。博客地址:http://qicheng0211.blog.51cto.com/blog

    先建立監控項:

wKioL1klG5igLvl2AAFJviy7PL8131.png-wh_50

    監控項名稱:zabbix_agentd進程運行時間

    監控項類型:Zabbix agent

    監控項Key:perf_counter["\Process(zabbix_agentd)\Elapsed Time"]

    數據類型:float

    單位:s

    監控間隔:30

    注:perf_counter的參數就是上面添加的性能計數器。

    建立觸發器:

wKioL1klG7GQ8qzPAADENYlMhhM484.png-wh_50

    觸發器名字:zabbix_agentd進程重啓!

    觸發器表達式:{windows.60.61:perf_counter["\Process(zabbix_agentd)\Elapsed Time"].change()}<0

    表達式含義:監控項最新監控數據和上一個數據的差值小於0,則觸發器觸發。

    下面咱們測試一下,重啓進程後觀察是否產生告警:

wKiom1klG93gzBvgAAD8VFTIoTU288.png-wh_50

    等待一會,觸發器成功被觸發,觸發狀態持續30秒。

wKiom1klG_bAEUdjAACBpY5Y-dw813.png-wh_50

    到這咱們對Windows進程重啓的監控就完成了。

    原創文章,轉載請註明出處,尊重博主勞動成果,感謝。

相關文章
相關標籤/搜索