创建脚本processstatus.sh
#!/bin/bash
# zhuxl
pmem(){
ps aux | grep -v PID | grep -w $1 | grep -v grep | grep -v processstatus | grep -v zabbix_get | awk '{sum+=$4};END{print sum}'
}
pcpu(){
ps aux | grep -v PID | grep -w $1 | grep -v grep | grep -v processstatus | grep -v zabbix_get | awk '{sum+=$3};END{print sum}'
}
pnum(){
ps aux | grep -v PID | grep -w $1 | grep -v grep | grep -v processstatus | grep -v zabbix_get | wc -l
}
case "$1" in
pmem)
pmem $2
;;
pcpu)
pcpu $2
;;
pnum)
pnum $2
;;
*)
echo "Usage: $0 {pmem|pcpu|pnum} {processName}"
esac
zabbix配置自定义监控项后重启
UserParameter=process.state[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/processstatus.sh $1 $2
用zabbix_get测试,这里我直接抓取zabbix进程
[root@zabbix-server ~]# zabbix_get -s 192.168.10.101 -k process.state[pnum,zabbix]
52
[root@zabbix-server ~]# zabbix_get -s 192.168.10.101 -k process.state[pmem,zabbix]
2.4
[root@zabbix-server ~]# zabbix_get -s 192.168.10.101 -k process.state[pcpu,zabbix]
0
新建模板,监控内容如下,懒得再走一遍了
画个图
收集一段时间数据看看结果