zoukankan      html  css  js  c++  java
  • zabbix批量监控urls的状态码

    1.添加url监控脚本
    [root@node1 usr]# vim /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh
    #!/bin/bash
    
    UrlFile="/usr/local/zabbix_agents_3.2.0/scripts/WEB.txt"
    IFS=$'
    '
    
    web_site_discovery () {
        WEB_SITE=($(cat $UrlFile|grep -v "^#"))
        printf '{
    '
        printf '	"data":[
    '
        num=${#WEB_SITE[@]}
        for site in ${WEB_SITE[@]}
        do
            num=$(( $num - 1 ))
            url=$(echo $site|awk '{print $1}')
            ip=$(echo $site|awk '{print $2}')
            if [ $num -ne 0 ] ; then
                printf "		{"{#SITENAME}":""%s"","{#PROXYIP}":""${ip}""},
    " ${url}
            else
                printf "		{"{#SITENAME}":""%s"","{#PROXYIP}":""${ip}""}
    " ${url}
                printf '	]
    '
                printf '}
    '
            fi
        done
    }
    
    web_site_code () {
        if [ "$2" == "" ]; then
            curl -s -k --connect-timeout 5 -m 4 -o /dev/null -w %{http_code} "https://$1"
        elif echo $2 |grep ':' &>/dev/null ; then
            curl -s -k --connect-timeout 5 -m 4 -o /dev/null -w %{http_code} "https://$1" -x $2
        else
            curl -s -k --connect-timeout 5 -m 4 -o /dev/null -w %{http_code} "https://$1" -x $2:80
        fi
    }
    
    case "$1" in
        web_site_discovery)
            web_site_discovery
            ;;
        web_site_code)
            web_site_code $2 $3
            ;;
        *)
            echo "Usage:$0 {web_site_discovery|web_site_code [URL]}"
            ;;
    esac
    
    
    [root@node1 usr]# chmod +x /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh
    
    2.在zabbix客户端加配置文件:
    zabbix-agent中打开配置
    Include=/usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd/*.conf
    
    vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd/web_site_discovery.conf
    
    UserParameter=web.site.discovery,/usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh web_site_discovery
    UserParameter=web.site.code[*],/usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh web_site_code $1 $2
    
    [root@node1 usr]# cat /usr/local/zabbix_agents_3.2.0/scripts/WEB.txt
    http://www.baidu.com
    http://www.sina.com.cn
    http://www.163.com 10.10.10.10
    http://www.sohu.com 115.23.16.97:80
    http://www.111.com
    
    # 客户端测试
    [root@account_web03:~]# /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh web_site_discovery
    {
        "data":[
            {"{#SITENAME}":"www.wondershare.com","{#PROXYIP}":""},
            {"{#SITENAME}":"www.wondershare.net","{#PROXYIP}":""},
            {"{#SITENAME}":"www.wondershare.jp","{#PROXYIP}":""},
            {"{#SITENAME}":"www.wondershare.de","{#PROXYIP}":""},
    
    # 服务端测试
    
    [root@node5 ~]# zabbix_get -s 10.11.0.210 -k 'web.site.discovery'
    {
        "data":[
            {"{#SITENAME}":"http://www.baidu.com","{#PROXYIP}":""},
            {"{#SITENAME}":"http://www.sina.com.cn","{#PROXYIP}":""},
            {"{#SITENAME}":"http://www.163.com","{#PROXYIP}":"10.10.10.10"},
            {"{#SITENAME}":"http://www.sohu.com","{#PROXYIP}":"115.23.16.97:80"},
            {"{#SITENAME}":"http://www.111.com","{#PROXYIP}":""}
        ]
    }
    
    
    被监控端 zabbix_Agentd.conf 的配置调整:
    
    ServerActive=*.*.*.*    #zabbix_server的ip
    Hostname=agent_host_name    #重要:主机名
    RefreshActiveChecks=1800    #被监控端到服务器获取监控项的周期
    BufferSize=200        #被监控端存储监控信息的空间大小
    Timeout=10            #超时时间
    比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名一样,这样Server端接收到数据才能找到对应关系。
    
    3.服务端配置,导入自动发现的模板
    4.也可以自定义item,具体如下:
    触发器另外的写法,5次触发:
    {urls_monitor_rsync:web.site.code[{#SITENAME},].count(#5,200,"eq")}=0 and {urls_monitor_rsync:web.site.code[{#SITENAME},].count(#5,301,"eq")}=0



    自动发现模板

    <?xml version="1.0" encoding="UTF-8"?>
    <zabbix_export>
        <version>3.4</version>
        <date>2018-06-14T01:03:17Z</date>
        <groups>
            <group>
                <name>Templates</name>
            </group>
        </groups>
        <templates>
            <template>
                <template>Template Web Monitor_active</template>
                <name>Template Web Monitor_active</name>
                <description/>
                <groups>
                    <group>
                        <name>Templates</name>
                    </group>
                </groups>
                <applications>
                    <application>
                        <name>web_monitor</name>
                    </application>
                </applications>
                <items/>
                <discovery_rules>
                    <discovery_rule>
                        <name>web.site.discovery</name>
                        <type>7</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>web.site.discovery</key>
                        <delay>120</delay>
                        <status>0</status>
                        <allowed_hosts/>
                        <snmpv3_contextname/>
                        <snmpv3_securityname/>
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>
                        <snmpv3_authpassphrase/>
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>
                        <snmpv3_privpassphrase/>
                        <params/>
                        <ipmi_sensor/>
                        <authtype>0</authtype>
                        <username/>
                        <password/>
                        <publickey/>
                        <privatekey/>
                        <port/>
                        <filter>
                            <evaltype>0</evaltype>
                            <formula/>
                            <conditions/>
                        </filter>
                        <lifetime>30d</lifetime>
                        <description/>
                        <item_prototypes>
                            <item_prototype>
                                <name>monitor_site $1 $2 response code</name>
                                <type>7</type>
                                <snmp_community/>
                                <snmp_oid/>
                                <key>web.site.code[{#SITENAME},{#PROXYIP}]</key>
                                <delay>30</delay>
                                <history>7d</history>
                                <trends>365d</trends>
                                <status>0</status>
                                <value_type>3</value_type>
                                <allowed_hosts/>
                                <units/>
                                <snmpv3_contextname/>
                                <snmpv3_securityname/>
                                <snmpv3_securitylevel>0</snmpv3_securitylevel>
                                <snmpv3_authprotocol>0</snmpv3_authprotocol>
                                <snmpv3_authpassphrase/>
                                <snmpv3_privprotocol>0</snmpv3_privprotocol>
                                <snmpv3_privpassphrase/>
                                <params/>
                                <ipmi_sensor/>
                                <authtype>0</authtype>
                                <username/>
                                <password/>
                                <publickey/>
                                <privatekey/>
                                <port/>
                                <description/>
                                <inventory_link>0</inventory_link>
                                <applications>
                                    <application>
                                        <name>web_monitor</name>
                                    </application>
                                </applications>
                                <valuemap/>
                                <logtimefmt/>
                                <preprocessing/>
                                <jmx_endpoint/>
                                <application_prototypes/>
                                <master_item_prototype/>
                            </item_prototype>
                        </item_prototypes>
                        <trigger_prototypes>
                            <trigger_prototype>
                                <expression>{Template Web Monitor_active:web.site.code[{#SITENAME},{#PROXYIP}].last()}&lt;&gt;200 and {Template Web Monitor_active:web.site.code[{#SITENAME},{#PROXYIP}].last()}&lt;&gt;301</expression>
                                <recovery_mode>0</recovery_mode>
                                <recovery_expression/>
                                <name>web_monitor {#SITENAME} {#PROXYIP}</name>
                                <correlation_mode>0</correlation_mode>
                                <correlation_tag/>
                                <url/>
                                <status>0</status>
                                <priority>1</priority>
                                <description/>
                                <type>0</type>
                                <manual_close>0</manual_close>
                                <dependencies/>
                                <tags/>
                            </trigger_prototype>
                        </trigger_prototypes>
                        <graph_prototypes/>
                        <host_prototypes/>
                        <jmx_endpoint/>
                    </discovery_rule>
                </discovery_rules>
                <httptests/>
                <macros/>
                <templates/>
                <screens/>
            </template>
        </templates>
    </zabbix_export>
  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/reblue520/p/9247584.html
Copyright © 2011-2022 走看看