zabbix自发现item监控
在zabbix监控中,我们可以通过自带item的可以和自定义key进行监控,但是当所需要的监控项不确定,比如key会根据时间进行变化时,这时候我们就不能把item的key定义死,要通过自发现这个高级功能来动态的添加key和下架key,自发现key其实也很简单,步骤分为如下:
1、首先要自定义两个脚本,一个用于key的自发现,一个用于当做key的名称,根据key返回值,不啰嗦了,直接上脚本:
一个用于自发现的脚本:必须输出为json的格式,并且json的key值也有要求,必须是“{#XXXX}”这样的格式作为json格式里面的key,例如定义key的dict["{#P_ROLE}"],其中的{#P_ROLE}会由于定义的key,用于动态生成key
脚本可以用shell,也可以用Python
例如有:discovery.py
import json def create_json(path): json_list = [] with open(path) as f: for line in f.readlines(): dict = {} split = line.split("|") dict["{#IP}"] = split[0] dict["{#PORT}"] = split[1] dict[“{#TIME}”]=split[2] json_list.append(dict) sum = {} sum["data"] = json_list sum = json.dumps(sum) print sum
if __name__ == '__main__': path = "/data/ alert_output/segment_conf.txt" create_json(path) |
如上代码/data /alert_output/segment_conf.txt中的数据格式是根据“|”进行连接的数据:例如
192.168.110.88|8088|2019-05-05|value_a|value_b……等,这样我们就可以更具ip,port,time唯一确定一行,也是唯一的一个key。
接下来我们写一个更具key值返回唯一的值,这里写一个shell脚本,由于上面根据ip,port,time三个值唯一确定一个key,所以在shell脚本中我们也通过输入三个参数作为key用于获取值。例如:alert.sh
执行:sh alter.sh ip port time
#!/bin/bash
[ $# -ne 3 ] && exit 1 path=/data/ alert_output/ segment_conf.txt value=`cat $path | grep $1 | grep $2 | grep $3 | awk -F "|" '{print $4}'`
if [ $value -gt 0 ] then echo 1 #用于对应于item之key的触发器告警的值 else echo 0 #用于恢复,这里可以根据不同的需求写不同的输出 fi |
到这里位置,我们要的脚本已经写好了,现在我们需要配置zabbix agent的配置文件,在zabbix agent文件夹中的../etc/zabbix_agent.conf中修改配置文件如下:
PidFile=/usr/local/zabbix-agent/zabbix_agentd.pid LogFile=/usr/local/zabbix-agent/zabbix_agentd.log Server=zabbix server ip ServerActive= zabbix server ip Hostname=nn1
EnableRemoteCommands=1 LogRemoteCommands=1 UnsafeUserParameters=1 UserParameter=discovery.test [*],python xxx/xxx/ discovery.py UserParameter=alert.test [*], sh xxx/xxx/alert.sh $1 $2 $3 #这里表示传入三个参数 |
如上就配置好了zabbix的agent的配置文件了,接下来重启zabbix的agent,如果没有配置重启命令,就可以通过ps 和kill干掉zabbix的进程,然后启动zabbix,如果配置了启动命令,service zabbix_agentd restart就可以了
接下来就到zabbix的页面进行配置了
第一步,配置自发现
找到一台主机进入如下页面
然后点击创建
这样我们就配好自发现的脚本,接下来来配置key了
如上图所示,就是我们配好的一个自发现,然后在配好的自发现的基础上点击配置key
好,到此为止,已经配置好自发现key,然后需要配置trigger了,用于告警,这个就很简单了,也是在自发现的基础上配置,如下图所示
然后点击创建触发器
这里很简单,就不详细介绍配置了,直接点击add
然后就可以选择直接配置好的key了,下面的trigger配置就不介绍了,因为都是通用的配置,到这里一个自发现的key就介绍完了
出处:https://www.cnblogs.com/zsql/
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。