一、编写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服务器添加监控项
四、在需要监控的主机下面点击配置,再选择“监控项”找到新建的监控项,并选择"现在检查"
五、“最新数据”下,选择刚才的主机,找到新建监控项的最新数据
成功。