• Zabbix添加自定义监控项(一)


    前言:由于Zabbix提供的项目和模板有限,有时我们需要自定义监控项,下面以监控磁盘I/O使用率为例,创建自动发现规则,并配置图形。

    (1)Zabbix_agentd端自动发现脚本,zabbix要求返回的数据为json格式。

    自动发现磁盘,这里有sd和md开头的,根据需求修改脚本去过滤出磁盘:

    运行:/usr/local/etc/disk_io_check.sh disk_count

    脚本摘自网络,可自行修改,或用其他语言编写也可以。

    # vim /usr/local/etc/disk_io_check.sh
    #!/bin/sh
    #disk_io monitor
    disk=$2
    function disk_count {
    diskarray=(`cat /proc/diskstats | grep -E "[s|m]d[a-z|0]| 
    xvd[a-z]|cciss/c[0-9]d[0-9]" | grep -i "$1" 
    |awk '{print $3}' | sort|uniq 2>/dev/null`)
    length=${#diskarray[@]}
    printf "{
    "
    printf '	'""data":["
    for ((i=0;i<$length;i++));do
    printf '
    		{'
    printf ""{#DISK_NAME}":"${diskarray[$i]}"}"
    if [ $i -lt $[$length-1] ];then
    printf ','
    fi
    done
    printf "
    	]
    "
    printf "}
    "
    }
    function qps {
    qps=$(iostat $disk -x 1 2 | grep -E "^sd|^cciss|md" | awk '{if(NR==2)print $NF}')
    echo $qps
    }
    $1
    
    exit 0
    

    (2)采集数据脚本:

    也是上面的脚本/usr/local/etc/disk_io_check.sh qps

    (3)配置zabbix_agentd.conf

    # cat /etc/zabbix/zabbix_agentd.d/disk_io.conf
    
    UserParameter=iostat.count,/usr/local/etc/disk_io_check.sh disk_count
    
    UserParameter=iostat.util[*],/usr/local/etc/disk_io_check.sh qps $1
    

    (4)重启zabbix_agentd

    killall zabbix_agentd;./zabbix_agentd
    

    (5)Zabbix_server端测试:返回预知的数据,则脚本和配置OK

    # /usr/local/zabbix-2.2.2/bin/zabbix_get -s XXX.XXX.XXX.XXX -p 10050 -k 'iostat.count'
    
    {
    
           "data":[
    
                  {"{#DISK_NAME}":"md0"},
    
                  {"{#DISK_NAME}":"sda"},
    
                  {"{#DISK_NAME}":"sdb"},
    
                  {"{#DISK_NAME}":"sdc"},
    
                  {"{#DISK_NAME}":"sdd"}
    
           ]
    
    }
    
     
    
    # /usr/local/zabbix-2.2.2/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k 'iostat.util[sdc]'
    
    2.50
    

    (6)在模板中配置自动发现:

    配置项目原型:

    (7)在主机或模板中配置图形:

     

    下面是数据采集一段时间后的图形:

     

    至此,自动发现配置完毕。

    注意点:(1)键值要对应起来(2)自动发现返回的数据为json格式

  • 相关阅读:
    HashMap的实现原理
    LinkedHashMap的实现讲解
    ConcurrentHashMap原理分析
    javax.mail Java Extension(扩展)
    Singleton 单例模式
    Java序列化与反序列化(实践)
    Java IO操作
    Java NIO与IO的区别和比较
    java模拟异步消息的发送与回调
    java如何实现多个线程并发运行
  • 原文地址:https://www.cnblogs.com/jjzd/p/6474193.html
Copyright © 2020-2023  润新知