參考資料
官方文檔.
有時候某個進程掛了沒有發現,直到業務中斷才想起去檢查。希望能有個功能在某個進程掛了以后發出告警。
zabbix提供proc.num這個key對后台進程進行監控。原理很簡單,其實就是看下文件在后台運行的數量,如果數量和運維設置的一致,就會認為是在正常工作的。反之發出告警。
proc.num[<name>,<user>,<state>,<cmdline>]
name - 進程名稱 (默認是 all processes)
user - 用戶名 (默認是 all users)
state - 可選的值: all (default), run, sleep, zomb
cmdline - 按命令行過濾(它是一個正則表達式)
例子:
⇒ proc.num[,mysql] → 在mysql用戶下運行的進程數
⇒ proc.num[apache2,www-data] → 在www-data用戶下運行的apache2進程數
⇒ proc.num[,oracle,sleep,oracleZABBIX] → 在oracleZABBIX命令行下的oracle用戶運行的睡眠狀態進程數。
現在我要監控一個叫 SSO 的進程。ps -ef|grep sso ,可以看到,只有一個是我所需要監控的。
這時候回到 zabbix-server 使用get查看下,是否能到 1
也是1.下面開始設置
主機 --> 監控項 --> 創建監控項
主機 --> 觸發器 --> 創建觸發器
測試下效果。
在SSO進程主機上再啟動一個 sso 進程,如圖
發出告警