zoukankan      html  css  js  c++  java
  • Zabbix 监控 tcp 连接状态的第二版(python+zabbix_sender)

    前言

    之前写过一篇文章 Zabbix设置自定义监控项之——监控tcp连接状态
    最近完善了一点东西,也算是对第一个版本的升级。
    升级的内容:

    1. 脚本通过 python 实现。
    2. 监控项类型为 zabbix 采集器,使用 zabbix_sender 进行发送数据到服务端。
    3. 增加了一个触发器,对 close_wait 状态的预警.

    脚本

    /var/lib/zabbix/ 这个目录要事先自己创建。

    #!/usr/bin/env   python
    # -*- coding: utf-8 -*-
    # @Time    :  2020/3/12 9:29
    # @Author  : dongjiaxiao
    # @Email   : 
    # @File    : tcp_connect_status_monitor.py
    # @Desc    :
    import sys
    import os
    import subprocess
    
    
    def execute_cmd(cmd):
        """
        命令执行,并获取返回状态与执行结果
        :param cmd: 要执行的命令
        :return: 字典包含 执行的状态码和执行的正常和异常输出, 0为正常,1为异常
        """
        cmd_res = {'status': 1, 'stdout': '', 'stderr': ''}
        try:
            res = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            res_stdout, res_stderr = res.communicate()
            cmd_res['status'] = res.returncode
            cmd_res['stdout'] = res_stdout.replace('
    ', '').strip()
            cmd_res['stderr'] = res_stderr.replace('
    ', '').strip()
        except Exception as e:
            cmd_res['stderr'] = e
        finally:
            return cmd_res
    
    
    def tcp_connect_status_value(zabbix_conf_path,tcp_conn_status_cmd):
        """
        发送数据到 zabbix 服务端,监控项类型需为 zabbix 采集器
        :param zabbix_conf_path: zabbix conf 路径
        :param tcp_connect_status_cmd: 获取tcp连接信息的执行命令
        :return: send_data_flg['status'] 发送数据是否成功 ,1为成功,0为失败,send_data_flg['error_info'] 为错误信息。
        """
        tcp_conn_status_dic = {
            'CLOSED': 0,
            'CLOSE_WAIT': 0,
            'CLOSING': 0,
            'ESTABLISHED': 0,
            'FIN_WAIT1': 0,
            'FIN_WAIT2': 0,
            'LAST_ACK': 0,
            'LISTEN': 0,
            'SYN_RECV': 0,
            'SYN_SENT': 0,
            'TIME_WAIT': 0,
        }  # tcp 连接状态码
        tmp_file = "/var/lib/zabbix/zabbix_sender_tcp_connect_status_file.txt"  # 临时文件,用完会删除
        send_data_flg = {'status': 0, 'error_info': ''}  # 发送数据状态与信息记录
        sender_bin_ret = execute_cmd("which zabbix_sender")
        if sender_bin_ret['status'] == 0:  # 判断是否安装 zabbix_sender 是否存在
            zabbix_sender_bin = sender_bin_ret['stdout']
        else:
            send_data_flg['error_info'] = "zabbix sender 未安装" + sender_bin_ret['stderr']
            return send_data_flg
        tcp_connect_status_ret = execute_cmd(tcp_conn_status_cmd)  # 执行命令获取tcp连接信息
        if tcp_connect_status_ret['status'] == 0:
            tcp_connect_status_data = tcp_connect_status_ret['stdout'].split()
            front_data = 0  # 记录列表当前数据的前一个数据,因为 tcp 数量的值在状态的前一行。
            for tcp_status in list(tcp_conn_status_dic.keys()):  # 遍历tcp状态码然后进行对比
                for tcp_status_data in tcp_connect_status_data:
                    if tcp_status == tcp_status_data:
                        tcp_conn_status_dic[tcp_status] = front_data
                    front_data = tcp_status_data
            with open(tmp_file, mode='w') as f_zs:  # 将要发送的数据写入临时文件
                for status, number in tcp_conn_status_dic.items():
                    f_zs.write("- custom.tcp.connect.status[{0}] {1}  
    ".format(status.lower(), number))
            sender_data_ret = execute_cmd('{0} -c {1} -i {2}'.format(zabbix_sender_bin, zabbix_conf_path, tmp_file)) # 发送到 zabbix server
            if sender_data_ret['status'] == 0 and sender_data_ret['stdout'].find(
                    "failed: 0") >= 0:  # 当命令执行成功,并且找到"failed: 0"
                send_data_flg['status'] = 1
                os.remove(tmp_file)  # 删除临时文件
            else:
                send_data_flg['error_info'] = sender_data_ret['stdout'] + " or  failed is not eq 0"
        else:
            send_data_flg['error_info'] = "{0} 执行失败 ,result:{1}".format(tcp_conn_status_cmd, tcp_connect_status_ret['stderr'])
        return send_data_flg
    
    
    if __name__ == '__main__':
        tcp_conn_status_cmd = "netstat -ant|awk '{print $NF}' |sort |uniq -c"  # 获取连接状态的信息
        zabbix_conf_path = '/etc/zabbix/zabbix_agentd.conf '    # zabbix 配置文件
        if len(sys.argv) == 2 and sys.argv[1] == "sender_data":  # 发送监控数据到服务端,单独监控项判断是否发送成功
            sender_status = tcp_connect_status_value(zabbix_conf_path, tcp_conn_status_cmd)
            print(sender_status['status'])
            # print(sender_status['error_info'])  # 打印错误信息,便于调试。
        else:
            print("please  use parameter  sender_data")
    

    配置文件

    UserParameter=custom.tcp.connect.status,python /etc/zabbix/scripts/tcp_connect_status_monitor.py sender_data
    

    模板文件

    <?xml version="1.0" encoding="UTF-8"?>
    <zabbix_export>
        <version>4.0</version>
        <date>2020-03-13T10:24:49Z</date>
        <groups>
            <group>
                <name>Templates</name>
            </group>
        </groups>
        <templates>
            <template>
                <template>Template_Linux_TCP_Connect_Status_Monitor</template>
                <name>Template_Linux_TCP_Connect_Status_Monitor</name>
                <description/>
                <groups>
                    <group>
                        <name>Templates</name>
                    </group>
                </groups>
                <applications>
                    <application>
                        <name>TCP Connect Status</name>
                    </application>
                </applications>
                <items>
                    <item>
                        <name>TCP Connect  Status Sender Data Status</name>
                        <type>0</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status</key>
                        <delay>1m</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status CLOSED</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[closed]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status CLOSE_WAIT</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[close_wait]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status CLOSING</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[closing]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status ESTABLISHED</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[established]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status FIN_WAIT1</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[fin_wait1]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status FIN_WAIT2</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[fin_wait2]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status LAST_ACK</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[last_ack]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status LISTEN</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[listen]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status SYN_RECV</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[syn_recv]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status  SYN_SENT</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[syn_sent]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                    <item>
                        <name>TCP Connect Status TIME_WAIT</name>
                        <type>2</type>
                        <snmp_community/>
                        <snmp_oid/>
                        <key>custom.tcp.connect.status[time_wait]</key>
                        <delay>0</delay>
                        <history>90d</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>TCP Connect Status</name>
                            </application>
                        </applications>
                        <valuemap/>
                        <logtimefmt/>
                        <preprocessing/>
                        <jmx_endpoint/>
                        <timeout>3s</timeout>
                        <url/>
                        <query_fields/>
                        <posts/>
                        <status_codes>200</status_codes>
                        <follow_redirects>1</follow_redirects>
                        <post_type>0</post_type>
                        <http_proxy/>
                        <headers/>
                        <retrieve_mode>0</retrieve_mode>
                        <request_method>0</request_method>
                        <output_format>0</output_format>
                        <allow_traps>0</allow_traps>
                        <ssl_cert_file/>
                        <ssl_key_file/>
                        <ssl_key_password/>
                        <verify_peer>0</verify_peer>
                        <verify_host>0</verify_host>
                        <master_item/>
                    </item>
                </items>
                <discovery_rules/>
                <httptests/>
                <macros/>
                <templates/>
                <screens/>
            </template>
        </templates>
        <triggers>
            <trigger>
                <expression>{Template_Linux_TCP_Connect_Status_Monitor:custom.tcp.connect.status.count(#3,0,eq)}=3</expression>
                <recovery_mode>1</recovery_mode>
                <recovery_expression>{Template_Linux_TCP_Connect_Status_Monitor:custom.tcp.connect.status.last()}=1</recovery_expression>
                <name>Linux TCP Connect Status Sender Data Failed</name>
                <correlation_mode>0</correlation_mode>
                <correlation_tag/>
                <url/>
                <status>0</status>
                <priority>3</priority>
                <description/>
                <type>0</type>
                <manual_close>1</manual_close>
                <dependencies/>
                <tags/>
            </trigger>
            <trigger>
                <expression>{Template_Linux_TCP_Connect_Status_Monitor:custom.tcp.connect.status[close_wait].avg(1h)}&gt;=500</expression>
                <recovery_mode>0</recovery_mode>
                <recovery_expression/>
                <name>There are too many TCP CLOSE_WAIT status</name>
                <correlation_mode>0</correlation_mode>
                <correlation_tag/>
                <url/>
                <status>0</status>
                <priority>2</priority>
                <description/>
                <type>0</type>
                <manual_close>1</manual_close>
                <dependencies/>
                <tags/>
            </trigger>
            <trigger>
                <expression>{Template_Linux_TCP_Connect_Status_Monitor:custom.tcp.connect.status[time_wait].last()}&gt;10000</expression>
                <recovery_mode>0</recovery_mode>
                <recovery_expression/>
                <name>There are too many TCP TIME_WAIT status</name>
                <correlation_mode>0</correlation_mode>
                <correlation_tag/>
                <url/>
                <status>0</status>
                <priority>4</priority>
                <description/>
                <type>0</type>
                <manual_close>0</manual_close>
                <dependencies/>
                <tags/>
            </trigger>
        </triggers>
        <graphs>
            <graph>
                <name>TCP Status</name>
                <width>900</width>
                <height>200</height>
                <yaxismin>0.0000</yaxismin>
                <yaxismax>100.0000</yaxismax>
                <show_work_period>1</show_work_period>
                <show_triggers>1</show_triggers>
                <type>0</type>
                <show_legend>1</show_legend>
                <show_3d>0</show_3d>
                <percent_left>0.0000</percent_left>
                <percent_right>0.0000</percent_right>
                <ymin_type_1>0</ymin_type_1>
                <ymax_type_1>0</ymax_type_1>
                <ymin_item_1>0</ymin_item_1>
                <ymax_item_1>0</ymax_item_1>
                <graph_items>
                    <graph_item>
                        <sortorder>0</sortorder>
                        <drawtype>0</drawtype>
                        <color>C80000</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[closed]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>1</sortorder>
                        <drawtype>0</drawtype>
                        <color>00C800</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[close_wait]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>2</sortorder>
                        <drawtype>0</drawtype>
                        <color>0000C8</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[closing]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>3</sortorder>
                        <drawtype>0</drawtype>
                        <color>C800C8</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[established]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>4</sortorder>
                        <drawtype>0</drawtype>
                        <color>00C8C8</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[fin_wait1]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>5</sortorder>
                        <drawtype>0</drawtype>
                        <color>C8C800</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[fin_wait2]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>6</sortorder>
                        <drawtype>0</drawtype>
                        <color>C8C8C8</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[last_ack]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>7</sortorder>
                        <drawtype>0</drawtype>
                        <color>960000</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[listen]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>8</sortorder>
                        <drawtype>0</drawtype>
                        <color>009600</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[syn_recv]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>9</sortorder>
                        <drawtype>0</drawtype>
                        <color>000096</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[syn_sent]</key>
                        </item>
                    </graph_item>
                    <graph_item>
                        <sortorder>10</sortorder>
                        <drawtype>0</drawtype>
                        <color>960096</color>
                        <yaxisside>0</yaxisside>
                        <calc_fnc>2</calc_fnc>
                        <type>0</type>
                        <item>
                            <host>Template_Linux_TCP_Connect_Status_Monitor</host>
                            <key>custom.tcp.connect.status[time_wait]</key>
                        </item>
                    </graph_item>
                </graph_items>
            </graph>
        </graphs>
    </zabbix_export>
    
  • 相关阅读:
    WEEK
    更新yum源
    Centos6.9安装Mysql5.7.18
    gitlab使用
    gitlab安装
    git客户端
    服务器端配置
    错误问题
    服务器端
    01找出数组中重复的数
  • 原文地址:https://www.cnblogs.com/operationhome/p/12492358.html
Copyright © 2011-2022 走看看