初来公司半年,本以为系统工程类似架构组,结果TMD真的是搞系统的工程;就是每天研究各种软件配置和安装,真TM系统的工程.不过也对Centos7熟悉很多,也是成长.
废话说完了,现在记录zabbix4.2做自动发现并且自动添加监控项的过程.
第一步,需要在zabbix-agent端配置几个自定义键值(key),zabbix里的键就是用来获得值的一段话,键可以用来当作监控到的数据,也可以当作自动发现时获得的数据.
图中 为自定义键的配置,关于自定义键的添加可以自行百度.
解读下
UserParameter=disk.num,lsblk | grep disk | wc -l
这一条代表 用命令获取磁盘数量 并且在监控时用disk.num当作键值
UserParameter=file.name,python3 /etc/zabbix/zabbix_agentd.d/test.py
这一条代表用file.name来执行test.py并且获取打印到屏幕的值
UserParameter=file.num[*],echo $1|wc -L
这一条代表用file.num[*]做键值时,获得输入参数字符串的长度
第二步 在server中测试新加的自定义键
在添加自定义键后记得重启zabbix-agent让配置生效.
测试键值,结果如下
附上测试用的python3脚本
#!/usr/bin/python3
import json
# Python 字典类型转换为 JSON 对象
data1=[
{'{#FILE_PATH}' : 'Chanel'},
{'{#FILE_PATH}' : 'LVMH'},
{'{#FILE_PATH}' : 'FunCou'}
]
data={'data':data1}
json_str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False)
print (json_str)
第三步 创建一个模板
创建一个模板用来添加自动发现的规则,以及自动发现后需要添加的监控项.
编辑完后,添加模板即可
之后在新增的模板中添加自动发现规则
新增自动发现规则,将发现规则填写好,这里自动发现的键值是用来获取"活数据"的,获取到的数据一定要是json格式的,并且符合zabbix宏的要求.
file.name键值获取到的值如下,这里需要注意json中的key-value,key的格式要正确.
添加完自动发现规则后,将自动发现的值用到监控项上.接下来配置监控项原型,(这里以监控项原型为例,其它的类似)\
将主要配置项填写完成,配置时注意变量名要和自动发现时的一致,在自动发现的json数据中可以包含多种信息,只需要在配置时变量名相符就行.
完成模板中自动发现规则以及对应的监控项原型后,把模板链接到主机上(应该可以连接到主机组中,没试过,大家可以试试).
稍等片刻,就能看到成果,在主机的监控项中多了我们使用自动发现产生的监控项,当然还可以在自动发现时添加图形 触发器等.