zoukankan      html  css  js  c++  java
  • zabbix3.4 low level discovery功能

    zabbix3.4 low level discovery功能

    业务需求:由于公司业务比较多,需要监控java项目进程,故使用了ZABBIX LLD 功能

    1.在zabbix客户端上面添加相应获取进程以及项目名称的脚本

    [root@UX206-CSP1 script]# cat /usr/local/script/zabbix_lld.sh 
    #!/bin/bash
    #user: pb
    #low-level discovery
    
    
    java() 
    {
            port=(`sudo ss -anlp | awk -F"[ :]+" '/java/ {print $5}'`)
            max_port=$[${#port[@]}-1]
            #echo $max_port
            printf '{
    '
            printf '	"data":['
            for key in ${!port[@]}
                    do
                            java_pid=`sudo ss -anlp | grep ${port[$key]} | awk -F"[ :]+" '/java/ {print $9}' | awk -F "[(",]+" '{print $3}'`
                            JAVA_NAME=`sudo ps -ef | grep $java_pid | grep -v grep | awk -F "/usr/local/" '{print $3}' | cut -d '/' -f1`
                            printf '
    		{
    '
                            #printf ""{$JAVA_NAME}":"${port[$key]}"}"
                            printf "			"{#JAVANAME}":"${JAVA_NAME}","
                            printf '
    '
                            printf "			"{#JAVAPORT}":${port[$key]}"
                            printf '
    		}'
                            if [ $key -ne $max_port ]
                            then
                                    printf ","
                            fi
            done
            printf '
    	]'
            printf '
    }'
    }
    
    case "$1" in
    discovery)
            java;;
    esac
    

     由于脚本中用到了 ss -anlp命令,获取结果时,是用zabbix用户在获取,故需要给zabbix相应的权限

    [root@UX206-CSP1 script]# grep "zabbix" /etc/sudoers
    #User_Alias ZABBIX=zabbix
    zabbix  ALL=(root)      NOPASSWD:/bin/,/usr/bin/,/usr/sbin/
    

     执行脚本得到的结果为

    [root@UX206-CSP1 script]# sudo -u zabbix ./zabbix_lld.sh discovery
    {
            "data":[
                    {
                            "{#JAVANAME}":"CSPAccountService",
                            "{#JAVAPORT}":30558
                    },
                    {
                            "{#JAVANAME}":"CSPMerchantAuthService",
                            "{#JAVAPORT}":30559
                    },
                    {
                            "{#JAVANAME}":"CSPTransactionService",
                            "{#JAVAPORT}":30560
                    }
            ]
    }
    

     就是以一个json格式打印的结果

    2.zabbix客户端配置文件

    UnsafeUserParameters=1
    UserParameter=java.status,/usr/local/script/zabbix_lld.sh discovery
    

     配置自定义的key为java.status,重启zabbix客户端

    3.从zabbix server端来取对应的值是否正常

    [root@hk-vsan1-zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 10.20.209.11 -p 10050 -k "java.status"
    {
            "data":[
                    {
                            "{#JAVANAME}":"CSPAccountService",
                            "{#JAVAPORT}":30558
                    },
                    {
                            "{#JAVANAME}":"CSPMerchantAuthService",
                            "{#JAVAPORT}":30559
                    },
                    {
                            "{#JAVANAME}":"CSPTransactionService",
                            "{#JAVAPORT}":30560
                    }
            ]
    }
    

     4.配置zabbix server

    新建模板

    添加组以及哪些主机在这个模板下面

    添加自动发现规则

    添加监控项原型

    添加触发器原型

    到此,zabbix server端已经添加完成,查看监控的客户端机器

  • 相关阅读:
    MySQL之SELECT用法
    Linux中find常见用法示例
    date命令
    backupMysql.sh
    Shell脚本中使用function(函数)示例
    zabbix邮件告警
    Zabbix系统数据采集方法总结
    TOMCAT原理详解及请求过程
    tomcat-users.xml 配置
    zabbix_sender用法实例
  • 原文地址:https://www.cnblogs.com/jcici/p/10233260.html
Copyright © 2011-2022 走看看