Skip to content

Instantly share code, notes, and snippets.

@rockysays
Forked from andreipak/tcpstats.sh
Created October 28, 2015 07:10
Show Gist options
  • Select an option

  • Save rockysays/eed59b933d9b307bca9e to your computer and use it in GitHub Desktop.

Select an option

Save rockysays/eed59b933d9b307bca9e to your computer and use it in GitHub Desktop.

Revisions

  1. @andreipak andreipak created this gist Aug 2, 2013.
    10 changes: 10 additions & 0 deletions tcpstats.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    #!/bin/bash

    /sbin/ss -ant | awk "{if (NR>1) {state[\$1]++}} END {host = \"-\"; \
    for (i in state) {s=i; \
    sub (/ESTAB/, \"establ\", s); sub (/LISTEN/, \"listen\", s); sub (/SYN-SENT/, \"synsent\", s); \
    sub (/SYN-RECV/, \"synrecv\", s); sub (/FIN-WAIT-1/, \"finw1\", s); sub (/FIN-WAIT-2/, \"finw2\", s); \
    sub (/CLOSE-WAIT/, \"closew\", s); sub (/TIME-WAIT/, \"timew\", s); print host, \"tcp.\"s, state[i]}}" \
    | /usr/bin/zabbix_sender -vv -c /etc/zabbix/zabbix_agentd.conf -i - 2>&1
    echo "1"
    exit 0
    436 changes: 436 additions & 0 deletions template_unix_tcpstats.xml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,436 @@
    <?xml version="1.0" encoding="UTF-8"?>
    <zabbix_export version="1.0" date="11.09.10" time="15.14">
    <hosts>
    <host name="Template_UnixTcp">
    <proxy_hostid>0</proxy_hostid>
    <useip>1</useip>
    <dns></dns>
    <ip>127.0.0.1</ip>
    <port>10050</port>
    <status>3</status>
    <useipmi>0</useipmi>
    <ipmi_ip>127.0.0.1</ipmi_ip>
    <ipmi_port>623</ipmi_port>
    <ipmi_authtype>0</ipmi_authtype>
    <ipmi_privilege>2</ipmi_privilege>
    <ipmi_username></ipmi_username>
    <ipmi_password></ipmi_password>
    <groups>
    <group>Linux servers</group>
    </groups>
    <triggers>
    <trigger>
    <description>ESTABLISHED</description>
    <type>0</type>
    <expression>{Template_UnixTcp:tcp.establ.last(0)}&gt;200</expression>
    <url></url>
    <status>0</status>
    <priority>3</priority>
    <comments></comments>
    </trigger>
    <trigger>
    <description>TIME_WAIT</description>
    <type>0</type>
    <expression>{Template_UnixTcp:tcp.timew.last(0)}&gt;300</expression>
    <url></url>
    <status>0</status>
    <priority>3</priority>
    <comments></comments>
    </trigger>
    </triggers>
    <items>
    <item type="0" key="tcp.all" value_type="3">
    <description>Controller</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.closew" value_type="3">
    <description>CLOSE_WAIT</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.establ" value_type="3">
    <description>ESTABLISHED</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.finw1" value_type="3">
    <description>FIN_WAIT1</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.finw2" value_type="3">
    <description>FIN_WAIT2</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.listen" value_type="3">
    <description>LISTEN</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.synrecv" value_type="3">
    <description>SYN_RECV</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.synsent" value_type="3">
    <description>SYN_SENT</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    <item type="2" key="tcp.timew" value_type="3">
    <description>TIME_WAIT</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>60</delay>
    <history>90</history>
    <trends>365</trends>
    <status>0</status>
    <data_type>0</data_type>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula>0</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <authtype>0</authtype>
    <username></username>
    <password></password>
    <publickey></publickey>
    <privatekey></privatekey>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community></snmp_community>
    <snmp_oid></snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>TCP</application>
    </applications>
    </item>
    </items>
    <templates/>
    <graphs>
    <graph name="TCP Connections" width="900" height="200">
    <ymin_type>0</ymin_type>
    <ymax_type>0</ymax_type>
    <ymin_item_key></ymin_item_key>
    <ymax_item_key></ymax_item_key>
    <show_work_period>1</show_work_period>
    <show_triggers>1</show_triggers>
    <graphtype>1</graphtype>
    <yaxismin>0.0000</yaxismin>
    <yaxismax>100.0000</yaxismax>
    <show_legend>0</show_legend>
    <show_3d>0</show_3d>
    <percent_left>0.0000</percent_left>
    <percent_right>0.0000</percent_right>
    <graph_elements>
    <graph_element item="Template_UnixTcp:tcp.timew">
    <drawtype>1</drawtype>
    <sortorder>0</sortorder>
    <color>3333FF</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.listen">
    <drawtype>1</drawtype>
    <sortorder>1</sortorder>
    <color>FFFF66</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.finw2">
    <drawtype>1</drawtype>
    <sortorder>1</sortorder>
    <color>CCCCCC</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.finw1">
    <drawtype>1</drawtype>
    <sortorder>2</sortorder>
    <color>DDDDDD</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.closew">
    <drawtype>1</drawtype>
    <sortorder>3</sortorder>
    <color>9999FF</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.synsent">
    <drawtype>1</drawtype>
    <sortorder>4</sortorder>
    <color>BBBB00</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.synrecv">
    <drawtype>1</drawtype>
    <sortorder>5</sortorder>
    <color>DDDD00</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="Template_UnixTcp:tcp.establ">
    <drawtype>1</drawtype>
    <sortorder>6</sortorder>
    <color>009900</color>
    <yaxisside>0</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    </graph_elements>
    </graph>
    </graphs>
    <macros/>
    </host>
    </hosts>
    <dependencies/>
    </zabbix_export>
    2 changes: 2 additions & 0 deletions zabbix_agentd.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    #add to /etc/zabbix/zabbix_agentd.conf
    UserParameter=tcp.all, /usr/local/share/zabbix/externalscripts/tcpstats.sh