转自:https://blog.csdn.net/yyy72999/article/details/76065374
zabbix自动发现/zabbix自动发现规则
对于zabbix 我们并不陌生 他是开源的监控系统,现在的一部分企业都在用zabbix,今天给大家分享的是企业级监控zabbix的自动发现规则,有了它我们自定义监控的时候根据宏值可以让他自动发现对应的value 从而省去我们一部分的重复代码 .
现需求 需要自定义一个监控脚本,目的是取各服务器三线ip地址 进行向另一端源服务器进行ping rtt和loss的请求进行判断是否存在丢包行为。
1:不同业务,对应不同的模板,我们需要现创建一个模板,用于我们这个特殊的业务
2:创建完成后,点击我们创建好的模板的右边自动发现规则,右上角创建发现规则:
其中的键值就是我们自定义的脚本,这个脚本会在下面给大家呈现,这个脚本的目的就是取到三线的ip传递到另一个脚本进行ping rtt值和loss率,注意:这个脚本数出来的格式必须是json格式,用于zabbix去识别发现,而且里面的键要是data,下面会给大家看实例
3:到被监控主机的其中一台的script下定义刚才自动发现规则定义的键值的脚本:
其中UserParamter就是我zabbix 定义脚本位置的地方,最上面chk_kuaishou_delay[*] 就是我上面创建规则的对应键值,下面就是我脚本输出的结果,大家可以看到
这是一个字典,最外面是data,data对面的value是每一个相同的key{#IPADDRES} 对面不同的value 当然盖上的就是我的三线ip,这就是zabbix能自动发现的格式,而
key{#IPADDRES}也是固定的格式 这个格式需要待会我们在zabbix页面上指定,这样的话 就会为我们省去不少的功夫 他会判断出 ipaddres是对面3个ip地址,从而达到我们要求的I效果
4:编写脚本,将zabbix自动发现的value传进去从而达到自动发现value去get值:
脚本如下第二个脚本就是我们的正式监控项以及触发器,我们需要把上面的{#IPADDRES}的valu(ip) 传递到下面的脚本进行测试,当然这个整个过程我们只需要把第二个脚本写出来至于参数怎么办 完全不需要我们去考虑,因为后面我们会在页面上定义,定义{#IPADDRES}的宏值他会自动去找着这个宏对应的三个ip然后我们再把脚本填进去就可以了