zabbix监控内存占前3位的进程信息

一、编写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服务器添加监控项

四、在需要监控的主机下面点击配置,再选择“监控项”找到新建的监控项,并选择"现在检查"

五、“最新数据”下,选择刚才的主机,找到新建监控项的最新数据

成功。

原文地址:https://www.cnblogs.com/sky-cheng/p/10608309.html