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>
  • 相关阅读:
    【杭电】[4857]逃生
    【杭电】[2647]Reward
    【杭电】[1285]确定比赛名次
    【杭电】[1251]统计难题
    OJ系统上线——OJ.BoilTask.com
    【郑轻】[1893]985的数学难题
    【郑轻】[1900]985的“树”难题
    【郑轻】[1898]985的数字难题
    HDU 1850———nim博弈
    HDU 2188------巴什博弈
  • 原文地址:https://www.cnblogs.com/reblue520/p/9247584.html
Copyright © 2011-2022 走看看