zoukankan      html  css  js  c++  java
  • zabbix 自定义监控

    配置自定义监控,我们需要配置监控项的key,和监控项返回的value

    添加自定义监控key的格式,在配置文件中添加

    UserParameter=KEY_NAME[*],COMMOND
    KEY_NAME: 自定义监控的key的名称,[*]是参数,*表示所有的,在commond后面可以条用key写的参数,commond $1.

    COMMOND: 命令,通过执行命令,返回需要的信息,可以写上shell脚本的路径,条用shell脚本。
    UserParameter=key[*],command
     
    参数 描述
    key 唯一,[*]表示里面可以传递多个参数,
    command 需要执行的脚步、命令。key的[*]参数会一一对应到这命令的$1至$9,$0表示脚本命令


    为了方便管理,把key值文件统一放在一个目录,打开配置文件zabbix_agentd.conf下面配置的注释

    #include=/usr/local/zabbix3/etc/zabbix_agentd.conf.d/*.conf

     这样可以在/usr/local/zabbix3/etc/zabbix_agentd.conf.d/目录下面创建以.conf结尾的文件,把UserParameter=<key>,<command> 写在里面



    例子:

    一个key可以写在/usr/local/zabbix3/etc/zabbix_agentd.conf配置文件最后

    UserParameter=get.os.type,head -l /etc/issue

     

    配置好key后需要重启zabbix_agentd。重启完成再测试是否可以根据自定义key获取相应的值。

    root@webTestServer01:~# /usr/local/zabbix3/bin/zabbix_get -s 127.0.0.1 -k get.so.type
    Ubuntu 14.04.2 LTS 
     l

    在看看下面的例子:

    ##以逗号,分割$1或$2
    如果你的 UserParameter 包含 ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @这些字符,则需要开启下面这个参数
    zabbix_anget.conf配置文件 UnsafeUserParameters=1

    传递参数:

    UserParameter=wc[*],grep -c "$2" $1

    这里表示把$2,$1 的传递给 key,测试如下

    zabbix_get -s 127.0.0.1 -k wc[/etc/passwd,root]

    注意,这里的/etc/passwd 为$1,root 为$2,则 key 最终运行的命令为 grep -c root /etc/passwd

     根据上面的例子,我们知道怎么配置一个自定义监控key,和获取返回的内容,现在我们在zabbix的web也没添加item,配置自定义监控和配置图形,告警等配置。

    写一个自定义监控,这里我们监控服务器的各个连接状态的数量

    [root@cong-33 zabbix_agentd.conf.d]# pwd
    /usr/local/zabbix/etc/zabbix_agentd.conf.d
    [root@cong-33 zabbix_agentd.conf.d]# cat get_net_status_num.conf 
    UserParameter=net_status_num[*], /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh $1
    [root@cong-33 zabbix_agentd.conf.d]#

    查看脚本内容:

    [root@cong-33 zabbix_agentd.conf.d]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh
    #!/bin/bash
    
    
    if [ ${1} = "ESTAB" ]
    then
        ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S[a]}'|awk '/ESTAB/ {print $2}'
    elif [ ${1} = "LISTEN" ]
    then
        ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S[a]}'|awk '/LISTEN/ {print $2}'
    elif [ ${1} = "TIME-WAIT" ]
    then
        ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S[a]}'|awk '/TIME-WAIT/ {print $2}'
    elif [ ${1} = "CLOSE-WAIT" ]
    then
        ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S[a]}'|awk '/CLOSE-WAIT/ {print $2}'
    fi
    
    [root@cong-33 zabbix_agentd.conf.d]#

     监控的是 ESTAB,LISTEN,TIME-WAIT,CLOSE-WAIT几个状态的数量,脚本是根据对应脚本的参数来返回对应的状态的数量。

    zabbix的web端配置:

    我把这个监控项添加到linux的模板中,

    添加estab的监控:

     配置完成后点击后面的add保存。

       time-wait的添加配置

    其他几个状态也是一样的配置添加,主要是参数不一样

    监控的item配置配好了,接下来配置告警触发器:

     添加触发器 triggers

     点击add,添加 监控的item和触发器表达式

    然后一个trigger配置就完成了,另外一样的配置,

    配置图形

    添加配置图形

  • 相关阅读:
    P1428 小鱼比可爱
    P5727 【深基5.例3】冰雹猜想
    P1427 小鱼的数字游戏
    P1047 [NOIP2005 普及组] 校门外的树
    P5729 工艺品制作
    P5728 【深基5.例5】旗鼓相当的对手
    CodeSmith使用和语法简介
    系统缓存
    FLV视频转换的利器 ffmpeg.exe
    Vs.Net方向将Excel数据导入到数据库
  • 原文地址:https://www.cnblogs.com/LYCong/p/7904109.html
Copyright © 2011-2022 走看看