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就介绍完了

 

posted @ 2019-05-05 20:38  一寸HUI  阅读(975)  评论(0编辑  收藏  举报