进程 zabbix_Zabbix监控在windows的进程(非进程数)
場景介紹:
小Z同學(xué)最近遇到個項目需求,需求是用zabbix監(jiān)控運行在windows的進程。然鵝,當(dāng)小Z同學(xué)在網(wǎng)上搜了一大堆,發(fā)現(xiàn)基本上都是使用官方的proc.num(***.exe)鍵值拿到進程數(shù)量,很顯然,這并不符合客戶實際的需求,如果是只運行1個的還好,若是運行了3到6個,例如java,就特別的dan疼,在任務(wù)管理器發(fā)現(xiàn)全是java.exe的。也許,你可以找到有些文章的說可以使用任務(wù)管理器可以看到命令行(圖一),tasklist /V查看進程詳情(圖二)等等,然鵝,對于java來說還是看不到的。
當(dāng)然了拿到j(luò)ava.exe和pid也可以,但作為運維人員最關(guān)注的是要知道是誰停了,而不是PID,況且人家也不知道PID對應(yīng)的進程是啥。所以,本著上進負責(zé)的精神,在查閱了幾天的資料后,終于實現(xiàn)了!!!在這里記錄下來,為熱愛zabbix的小伙伴做個參考,也可以自行拓展結(jié)合腳本等其他技術(shù)實現(xiàn)。教程不復(fù)雜,多做幾次就上手了。
方法:
1. 對于非java的進程,確實使用tasklist可以監(jiān)控到具體的進程名,例如監(jiān)控郵箱服務(wù)器程序,方法是打開cmd,輸入 tasklist | findstr “mailServer.exe” 這里只輸出具體的進程名 或者 tasklist | find “mailServer.exe” 這里會輸出進程,使用的資源,PID等等。然后再zabbix_agentd.conf后面加上 UserParameter=mailServer, tasklist | findstr “mailServer.exe” 保存重啟agent;在zabbix做監(jiān)控時,信息類型選擇字符或者文本即可。
2. 重點來了,對于java進程亦或者是在任務(wù)管理器只看到運行了一堆相同的進程名,但看不到具體的實例名可以利用windows自帶的 WMIC命令來獲取!打開cmd,輸入 wmic process 回車,會輸出目前在運行的所有進程,比tasklist還詳細,輸出的結(jié)果包含命令行、執(zhí)行路徑、PID、使用的資源、所有者等等。有興趣的小伙伴可以到官網(wǎng)多多了解,拓展一下其他的WMIC參數(shù)。
當(dāng)然了,對于封裝好的jar包程序,常規(guī)的執(zhí)行命令也就是java –jar ****.jar,是可以用wmic拿到的,命令是 wmic process where name=”java.exe” 就可以輸出當(dāng)前正在運行的所有java進程,但結(jié)果不太美觀,所以可以指定一下要找的jar包名,例如: wimc process where name=”java.exe” | find “jar包名” ,這樣出來的結(jié)果就是客戶想要的了。
以下是agent配置示例:
UserParameter=java_jar, WMIC.exe process where name=”java.exe” | find “jar包名”
這里保險一點,寫上完整的WMIC.exe就不會報命令找不到的錯。監(jiān)控項照上一步。
3. 觸發(fā)器
在給非數(shù)值的監(jiān)控配置觸發(fā)器時,要注意類型要選擇紅框的 str()
因為返回的結(jié)果是字符串,所以在V這里填上jar包進程名即可。可以只寫包名+版本,不用整行都寫。
問題和恢復(fù)的表達式:監(jiān)控項是每60s檢測一次,觸發(fā)器這里也是每60s檢測一次,發(fā)現(xiàn)和取值不符則發(fā)送告警信息。如果發(fā)現(xiàn)亂報警,那就多注意調(diào)整下。
完成后,可以停止程序檢測下是否符合需求。
教程結(jié)束!!!本文是針對不帶參數(shù)啟動的java進程的監(jiān)控,帶參數(shù)啟動的后面有空會出一篇,當(dāng)然了,其實也比較簡單。技術(shù)交流歡迎加入Q群:177428068
總結(jié)
以上是生活随笔為你收集整理的进程 zabbix_Zabbix监控在windows的进程(非进程数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佳能c3320怎么设置接收方_入门级单反
- 下一篇: c语言opengles程序,OpenGL