• zabbix增加服务器tcp监控


     zabbix server web界面,需要导入 tcp 监控模板
    操作步骤:
        Configuration --> Templates --> Import ,选择 本地的 zbx_tcp_status.xml
    <?xml version="1.0" encoding="UTF-8"?>  
    <zabbix_export>  
        <version>3.0</version>  
        <date>2016-10-20T10:07:50Z</date>  
        <groups>  
            <group>  
                <name>Templates</name>  
            </group>  
        </groups>  
        <templates>  
            <template>  
                <template>Templates tcp status ss</template>  
                <name>Templates tcp status ss</name>  
                <description/>  
                <groups>  
                    <group>  
                        <name>Templates</name>  
                    </group>  
                </groups>  
                <applications>  
                    <application>  
                        <name>tcp status</name>  
                    </application>  
                </applications>  
                <items>  
                    <item>  
                        <name>tcp ESTAB</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[ESTAB]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp fin_wait1</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[FINWAIT1]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp fin_wait2</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[FINWAIT2]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp last_ack</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[LASTACK]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp listen</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[LISTEN]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp syn_recv</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[SYNRECV]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                    <item>  
                        <name>tcp timewait</name>  
                        <type>0</type>  
                        <snmp_community/>  
                        <multiplier>0</multiplier>  
                        <snmp_oid/>  
                        <key>tcp[TIMEWAIT]</key>  
                        <delay>30</delay>  
                        <history>90</history>  
                        <trends>365</trends>  
                        <status>0</status>  
                        <value_type>3</value_type>  
                        <allowed_hosts/>  
                        <units/>  
                        <delta>0</delta>  
                        <snmpv3_contextname/>  
                        <snmpv3_securityname/>  
                        <snmpv3_securitylevel>0</snmpv3_securitylevel>  
                        <snmpv3_authprotocol>0</snmpv3_authprotocol>  
                        <snmpv3_authpassphrase/>  
                        <snmpv3_privprotocol>0</snmpv3_privprotocol>  
                        <snmpv3_privpassphrase/>  
                        <formula>1</formula>  
                        <delay_flex/>  
                        <params/>  
                        <ipmi_sensor/>  
                        <data_type>0</data_type>  
                        <authtype>0</authtype>  
                        <username/>  
                        <password/>  
                        <publickey/>  
                        <privatekey/>  
                        <port/>  
                        <description/>  
                        <inventory_link>0</inventory_link>  
                        <applications>  
                            <application>  
                                <name>tcp status</name>  
                            </application>  
                        </applications>  
                        <valuemap/>  
                        <logtimefmt/>  
                    </item>  
                </items>  
                <discovery_rules/>  
                <macros/>  
                <templates/>  
                <screens/>  
            </template>  
        </templates>  
        <graphs>  
            <graph>  
                <name>linux 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>1A7C11</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[ESTAB]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>1</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>F63100</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[FINWAIT1]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>2</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>2774A4</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[FINWAIT2]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>3</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>A54F10</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[LASTACK]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>4</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>FC6EA3</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[LISTEN]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>5</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>6C59DC</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[SYNRECV]</key>  
                        </item>  
                    </graph_item>  
                    <graph_item>  
                        <sortorder>6</sortorder>  
                        <drawtype>0</drawtype>  
                        <color>AC8C14</color>  
                        <yaxisside>0</yaxisside>  
                        <calc_fnc>2</calc_fnc>  
                        <type>0</type>  
                        <item>  
                            <host>Templates tcp status ss</host>  
                            <key>tcp[TIMEWAIT]</key>  
                        </item>  
                    </graph_item>  
                </graph_items>  
            </graph>  
        </graphs>  
    </zabbix_export>  
    View Code

     实现方式: 通过ansible-playbook完成,一下是代码

    代码目录结构;

    .
    ├── add_tcp_readme
    ├── dba_hosts
    ├── do_add_tcp.yml
    ├── roles
    │   └── add_tcp_monitor
    │       ├── files
    │       │   ├── tcp_status_ss.conf
    │       │   └── tcp_status_ss.sh
    │       └── tasks
    │           └── main.yml
    └── zbx_tcp_status.xml
    
    4 directories, 7 files

    dba_hosts:

    [all]
    0.0.0.0

    do_add_tcp.yml

    ---
    
    - name: "add tcp monitor to remote server ..."
      hosts: "all"
      remote_user: devops 
      become: yes
    
    
      roles:
        - add_tcp_monitor

    tcp_status_ss.conf

    #monitor tcp UserParameter=tcp[*],/etc/zabbix/tcp_status_ss.sh $1

    tcp_status_ss.sh

    #!/bin/bash
    #scripts for tcp status
    
    function SYNRECV {   
    /usr/sbin/ss -s | grep 'synrecv' | awk '{print $2}' 
    }   
    function ESTAB {   
    /usr/sbin/ss -s | grep 'estab' | awk '{print $2}'  
    }   
    function FINWAIT1 {   
    /usr/sbin/ss -o |  grep 'FIN-WAIT-1'|wc -l  
    }   
    function FINWAIT2 {   
    /usr/sbin/ss -ant| grep 'FIN-WAIT-2' | wc -l  
    }   
    function TIMEWAIT {   
    /usr/sbin/ss -ant | grep 'TIME-WAIT' | wc -l  
    }   
    function LASTACK {   
    /usr/sbin/ss -ant | grep 'LAST-ACK' | wc -l  
    }   
    function LISTEN {   
    /usr/sbin/ss -ant | grep 'LISTEN' | wc -l  
    }   
    $1 

    main.yml

    ---
    
    
    - name: "copy tcp conf to remote ..."
      copy:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
        mode: "{{ item.mode }}"
        owner: "zabbix"
        group: "zabbix"
      with_items:
          - {'src':'tcp_status_ss.conf','dest':'/etc/zabbix/zabbix_agentd.d/','mode':'0644'}
          - {'src':'tcp_status_ss.sh','dest':'/etc/zabbix/','mode':'0775'}
    
    - name: "update zabbix agent conf ..."
      lineinfile:
        dest: "/etc/zabbix/zabbix_agentd.conf"
        state: present
        regexp: "^EnableRemoteCommands=1"
        line: "EnableRemoteCommands=1"
    
    - name: "restart zabbix agent ..."
      shell: "service zabbix-agent restart"

    执行命令:

    ansible-playbook -i dba_hosts do_add_tcp.yml 
    在尝试学习新的语言之前先理解这门语言的设计原理能够让你在探索这门新语言时保持一个清醒而且开发的状态。
  • 相关阅读:
    2.SpringMVC入门
    1.SpringMVC回顾MVC
    10.spring声明式事务
    9.spring整合Mybatis
    maven项目的classpath路径对应的文件目录
    8.spring中的AOP
    Java通过反射破解单例模式和防止反射破解单例模式案例
    7.代理模式
    让Java项目默认使用jdk8等级进行编译
    return false取消手机移动端的默认设置
  • 原文地址:https://www.cnblogs.com/jackchen001/p/7204258.html
Copyright © 2020-2023  润新知