Zabbix 自定义监控项
当zabbix自带的监控项已经不满足我们需要的时候,我们就需要自己定义监控项来满足我们的需求了。这里以监控内存占用率前十的进程信息为例子
一、自定义脚本
1)在agent端,新建脚本custom_process_rate.sh
#!/bin/bash
ps -e -o pid,ruser,%cpu,%mem | head -1; ps -e -o pid,ruser,%cpu,%mem | sort -k4nr | head -n 10
2)测试脚本
二、配置agent
修改/etc/zabbix/zabbix_agent.conf
中的UserParameter
,也可以在/etc/zabbix/zabbix_agent2.d/
目录下新建.conf
文件,添加UserParameter
UserParameter=mem_status,/data/zabbix_custom_scripts/custom_process_rate.sh
# UserParameter=key[*],<shell_command> $1 $2 $...
- key:表示监控项的key值,
- [*]:表示接受参数
- shell_command:表示脚本所在的路径或者shell命令
- $1, $2, $n:表示参数,参数个数与n相同
三、重启agent
# 这里的agent是使用rpm包安装: rpm -ivh *.rpm --force --nodeps zabbix-agent2-5.0.0-1.el7.x86_64.rpm
systemctl restart zabbix-agent2.service
四、测试自定义监控项
在zabbix的server端执行zabbix_get
zabbix_get -s 【zabbix客户端IP】 -k "【自定义监控项key值[参数]】"
zabbix_get -s 192.168.71.22 -k mem_status
五、添加自定义监控项
1、添加应用集
2、添加监控项
2、添加监控项
-
信息类型:
-
Numeric (unsigned) :正整数
-
Numeric (float) :小数,可以是负数
-
Log:日志格式,可以使用专门的匹配语法
-
Character:255以内的字符串
-
Text:文本大字段
-
- 由于返回值数据比较大,并且是字符串,所以信息类型选择文本
六、查看结果
七、其它
参考链接:https://www.freesion.com/article/56941043494/
1、如果需要所有主机都能使用该功能,
- 需要先将自定义脚本通过NFS等方式共享到所有主机
- 创建Template模板,来配置
2、如果需要告警,可以设置Trigger触发器,来设定阈值,超过阈值后告警
3、如果需要用图形显示,可以创建Graphs图形,但是要求数据为整型或浮点型