最近总结了一下之前使用zabbix的一些心得体会与大家分享,本文省略安装和环境搭建,专注zabbix的配置使用,重点是自定义键值规则。博主当时接到监控GPU的任务,因为GPU没有现成的键值对,因此需要自定义,心疼的抱抱自己。。
步骤
- 新增监控主机
- 自定义模板
- 自定义键值
- 添加监控项
步骤1 新增监控主机
可以自己创建新的监控主机,也可以通过配置自动发现添加。
步骤2 自定义模板
在有多个监控指标使用相同的方法配置时,可以创建监控模板。
名称
自定义,群组
根据需要选择,主机/模板
选择要使用模板的主机(也可以之后通过主机链接模板)。
步骤3 自定义键值
有时zabbix里现成的键值没有我们需要的,这时就要自定义了。
-
配置环境
在要检测的主机上执行
$ cd /etc/zabbix
,可以看到zabbix_agentd.conf
和zabbix_agentd.conf.d
两个文件,先打开zabbix_agentd.conf
,设置 server 和 serverActive 为安装监控端Zabbix的主机ip,如果在本机就是127.0.0.1。再检查一下Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
前面的#
是否已经去掉。如果需要Zabbix自动注册主机,则还需将
HostnameItem=system.hostname
前的#
去掉,并且设置HostMetadata = UAT(一个加入群组的条件)
。 -
编写自定义脚本
在
/etc/zabbix
文件夹下新建一个shell脚本,对脚本进行测试,看是否可以提取所需的数据。保存并
chmod 755
,这时ls
可以看到文件变成了绿色。
说明:这里的 monitoring.txt 是 monitoring.sh 脚本执行生成的文件,是我需要监控的一些指标,一共8个GPU的指标。此处1对应的是编号0 的GPU。 -
编写键值规则
执行
$ cd zabbix_agentd.conf.d
,在该文件夹下新建一个xx.conf
文件,固定格式为UserParameter=<key>,<command>
。 -
重启zabbix-agent (很重要)
保存好
xx.conf
文件后,一定要重启zabbix-agent。$ systemctl restart zabbix-agent
这时我们就已经新定义了一个键值。
步骤4 添加监控项
当我们定义好键值后,就可以在模板里添加监控项了。因为是自定义的键值,所以需要手动输入,在[]
里更改参数即可。
结果展示
心得体会
- 需要注意的是zabbix对速度要求很高,如果你写的脚本运行速度慢,则可能会报Timeout的错误。如果遇到这种错误,可以尝试将监控数据提前运行出来重定向到临时文件里,再复制到指定文件 (不直接重定向到指定文件是为了防止刷新数据时中间出现的空白文档期导致异常),之后从文件里直接读取数据会快很多。
- 如果用了1所述方法,则需要将提取数据的脚本做定时任务,和zabbix刷新数据同步,但由于cron最小间隔只有1分钟,如果要求频率在1分钟以内,则需要在脚本中使用sleep。例如:每30s取一次数据,让脚本sleep 30之后再执行一遍代码,然后放到crontab中定时即可。