關於在zabbix監測腳本中使用ps命令監控進程CPU使用率和內存使用率,獲得數據為0的情況描述
過程描述:
zabbix版本為2.21,被監控主機操作系統為CentOS 6.4。
腳本中主要命令如下:
percent=0;
#通過腳本輸入參數
process=$1;
#通過ps aux參數,獲取CPU%和MEM%值,使用awk將第四行的MEM%值篩選出來
percent=ps aux | grep $process | grep -v grep | head -1 | awk ‘{print $4}‘
;
echo $percent
問題描述:
發現在cli中運行上述腳本命令可以獲取到進程資源使用率對應的數值。
影響:
由於在zabbix的web頁面中,配置了關於該項數據的dataview,直接導致了dataview的數據展示不準確。
解決方法(待驗證):
1.使用內置的zabbix變量proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>] 和proc.mem.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]。
2.修改腳本中的命令,改用如下方法:
首先獲取進程名對應的pid,再結合top運行如下命令:
top -b -n 1 -p $pid 2>&1 | awk -v pid=$pid ‘{if ($1 == pid)print $9}‘
3.修改腳本中的命令,改用如下方法:
首先獲取進程名對應的pid,再從/proc/$pid/目錄下讀取相關數據,進行計算獲得。
後記:沒有對以上三種解決方法進行驗證,但是個人覺得還是使用zabbix內置變量配置模板為比較好的解決辦法,畢竟個人能力有限,還是選擇相信專業的zabbix吧。
關於在zabbix監測腳本中使用ps命令監控進程CPU使用率和內存使用率,獲得數據為0的情況描述