凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!

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图形,但是要求数据为整型或浮点型

posted on 2022-06-15 09:47  凉城旧巷  阅读(2372)  评论(0编辑  收藏  举报