zoukankan      html  css  js  c++  java
  • zabbix (11) 监控TCP连接数

      对TCP的监控可以采用ss、netstat、/proc/net/tcp这三个不同的方案来实现。其中ss是最快的

    (1)ss命令

    [root@manager1 script_py 10:38:44]#time ss state all|awk '{++S[$2]} END{for( i in S) {printf "%-11s %s
    ",i,S[i]} }'
    LISTEN      47
    ESTAB       287
    State       1
    TIME-WAIT   5
    UNCONN      80
    
    real    0m0.036s
    user    0m0.024s
    sys    0m0.011s

    (2)netstat命令

    [root@manager1 script_py 10:42:04]#time netstat -an |awk '/^tcp/{++S[$NF]}END{for(i in S){printf "%-11s %s
    ",i,S[i]}}'
    LISTEN      18
    ESTABLISHED 2
    TIME_WAIT   6
    
    real    0m0.007s
    user    0m0.005s
    sys    0m0.002s

    (3)读取/proc/net/tcp 文件,其中第四列为TCP连接的各个状态,如:

    [root@manager1 script_py 10:44:38]#cat /proc/net/tcp|awk '{++S[$4]} END{for( i in S) {printf "%-11s %s
    ",i,S[i]} }'
    01          2
    0A          12
    st          1
    06          6

      第四列各个状态的意思如下:

    00  "ERROR_STATYS",

    01  "TCP_ESTABLISHED"

    02  "TCP_SYN_SENT"

    03  "TCP_SYN_RECV"

    04  "TCP_FIN_WAIT1"

    05  "TCP_FIN_WAIT2"

    06  "TCP_TIME_WAIT"

    07  "TCP_CLOSE"

    08  "TCP_CLOSE_WAIT"

    0A  "TCP_LISTEN"

    0B  "TCP_CLOSING"

    添加自定义键:

    [root@manager1 script_py 10:51:24]#cat /etc/zabbix/zabbix_agentd.d/tcp_connection.conf

    UserParameter=tcp_connection.errorstatus,awk '($4=="00"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.established,awk '($4=="01"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.synsent,awk '($4=="02"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.synrecv,awk '($4=="03"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.finwait1,awk '($4=="04"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.finwait2,awk '($4=="05"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.timewait,awk '($4=="06"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.close,awk '($4=="07"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.close_wait,awk '($4=="08"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.last_ack,awk '($4=="09"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.listen,awk '($4=="0A"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'
    UserParameter=tcp_connection.closing,awk '($4=="0B"){print $4}' /proc/net/tcp|awk '{++S[$1]}END {for(i in S){print S[i]}}'

     
  • 相关阅读:
    Java工程路径及相对路径(转载)
    webbrowser使用已过期资源的一个报错
    c# xml API操作
    Introduction to SharePoint hierarchy
    Java实现 蓝桥杯 算法训练 出现次数最多的整数
    Java实现 蓝桥杯 算法训练 2的次幂表示
    Java实现 蓝桥杯 算法训练 前缀表达式
    Java实现 蓝桥杯 算法训练 Anagrams问题
    Java实现 蓝桥杯 算法训练 出现次数最多的整数
    Java实现 蓝桥杯 算法训练 2的次幂表示
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10892881.html
Copyright © 2011-2022 走看看