zoukankan      html  css  js  c++  java
  • 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就介绍完了

  • 相关阅读:
    CSS强制英文、中文换行与不换行 强制英文换行
    vue 解决IE不能用的问题
    mysql 删除所有表
    sql server 删除所有表
    MySQL通过Navicat实现远程连接的过程
    php升级版本
    linux下与windows下的换行符 [转载]
    linux 的mysql数据库 数据库的路径的软连接
    并查集学习
    Mariadb开机自启动
  • 原文地址:https://www.cnblogs.com/zsql/p/10816105.html
Copyright © 2011-2022 走看看