• 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配置就完成了,另外一样的配置,

    配置图形

    添加配置图形

  • 相关阅读:
    字符编码相关
    函数之形参与实参
    文件操作模式
    函数对象,名称空间,作用域,和闭包
    吴裕雄天生自然SPRINGBOOT开发实战处理'spring.datasource.url' is not specified and no embedded datasource could be autoconfigured
    吴裕雄天生自然SPRINGBOOT开发实战处理XXXX that could not be found.
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot HTML表单登录
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot REST示例
    吴裕雄天生自然SpringBoot开发实战学习笔记处理 Could not write metadata for '/Servers'.metadata\.plugins\org.eclipse.core.resources\.projects\Servers\.markers.snap (系统找不到指定的路径。)
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot Tomcat部署
  • 原文地址:https://www.cnblogs.com/LYCong/p/7904109.html
Copyright © 2020-2023  润新知