一、編寫shell腳本
ps aux|sort -k4nr|head -3|awk 'split($11,a,"/"){print $4","a[length(a)]}'|awk '{printf "%s""|",$0}'
sort -k4nr中(k代表從第幾個位置開始,后面的數字4即是其開始位置,結束位置如果沒有,則默認到最后;n指代numberic sort,根據其數值排序;r指代reverse,這里是指反向比較結果,輸出時默認從小到大,反向后從大到小。)。本例中,可以看到%MEM在第4個位置,根據%MEM的數值進行由大到小的排序。
head -K(K指代行數,即輸出前幾位的結果)
split($11,a,"/"):將ps aux輸出的第11個字段信息按"/"分割符拆分為數組
比如:$11:/usr/lib64/erlang/erts-8.0.3/bin/beam.smp
拆分為a數組,包含6個元素:usr,lib64,erlang,erts-8.0.3,bin,beam.smp
{print $4","a[length(a)]} :打印第4個字段,以及a數組的最后一個元素:
8.6,java
3.8,beam.smp
1.6,mysqld
二、添加zabbix客戶端鍵值
編輯 zabbix_agentd.conf
UserParameter=xxx.xxx.get_memory_top3,sh /usr/local/mysh/system/get_memory_top3.sh 2>/dev/null
保存后,重啟zabbix客戶端服務。
三、zabbix服務器添加監控項
四、在需要監控的主機下面點擊配置,再選擇“監控項”找到新建的監控項,並選擇"現在檢查"
五、“最新數據”下,選擇剛才的主機,找到新建監控項的最新數據
成功。