zabbix如何监控tcp连接数

参考http://john88wang.blog.51cto.com/2165294/1586234/

tcp各个状态的意思:

ESTABLISHED       socket已经建立连接

CLOSED            socket没有被使用,无连接

CLOSING           服务器端和客户端都同时关闭连接

CLOSE_WAIT        等待关闭连接

TIME_WAIT         The socket is waiting after close to handle packets still in the network. 表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态

LAST_ACK          The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 远端关闭,当前socket被动关闭后发送FIN报文,等待对方ACK报文

LISTEN            监听状态

SYN_RECV          接收到SYN报文

SYN_SENT          已经发送SYN报文

FIN_WAIT1         The socket is closed, and the connection is shutting down

FIN_WAIT2          Connection is closed, and the socket is waiting for a shutdown from the remote end.

1 搭建环境:

zabbix server :centos 6  ip 192.168.234.134

zabbix client (nginx) :centos 7  ip:192.168.234.133

2 监控方法:

第一种监控方法用ss

/usr/sbin/ss state all | awk ‘{++S[$1]} END {for (a in S) {printf "%11-s %s\n",a,S[a]}}‘
LISTEN      9
ESTAB       1
State       1
TIME-WAIT   110

第二种监控方法用netstat

/bin/netstat -an|awk ‘/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}‘
LISTEN 9
ESTABLISHED 1
SYN_SENT 1
TIME_WAIT 126

3 监控脚本编写

vi /usr/local/zabbix/scripts/tcp.sh

#!/bin/bash
#this script is used to get tcp and udp connetion status
#tcp status
metric=$1
tmp_file=/tmp/tcp_status.txt
/bin/netstat -an|awk ‘/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}‘ > $tmp_file
case $metric in
   closed)
          output=$(awk ‘/CLOSED/{print $2}‘ $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   listen)
          output=$(awk ‘/LISTEN/{print $2}‘ $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   synrecv)
          output=$(awk ‘/SYN_RECV/{print $2}‘ $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   synsent)
          output=$(awk ‘/SYN_SENT/{print $2}‘ $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   established)
          output=$(awk ‘/ESTABLISHED/{print $2}‘ $tmp_file)
          if [ "$output" == "" ];then
             echo 0
          else
             echo $output
          fi
        ;;
   timewait)

4添加zabbix客户端配置文件

vi /usr/local/zabbix/etc/zabbix_agentd.conf 添加
UserParameter=tcp.status[*],/usr/local/zabbix/scripts/tcp.sh $1

然后重启agentd服务

5 测试链接

zabbix_get -s 192.168.234.133 -p 10055 -k tcp.status[timewait]

6 倒入模板,确认出图

时间: 2024-09-28 18:26:44

zabbix如何监控tcp连接数的相关文章

zabbix自定义监控tcp连接数

首先在客户端修改配置文件 # vim /usr/local/zabbix/etc/zabbix_agentd.conf UnsafeUserParameters=1 UserParameter=tcpconnect,/usr/local/zabbix/bin/zabbix_tcp.sh           ------>tcpconnect为item key 然后增加脚本 # vim /usr/local/zabbix/bin/zabbix_tcp.sh #!/bin/bashnetstat -

python监控TCP连接数

python监控TCP连接数 先来了解下/proc/net/tcp这个文件,这里记录的是ipv4下所有tcp连接的情况,包括下列数值 sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 备注:文件中都是用的16进制 我们关注st这列, 状态码对照表 code 状态码 描述 00 ERROR_STATUS 01 TCP_ESTABLISHED 代表一个打开的连接 02 TC

在zabbix上添加tcp连接数的监控项

搭建一个zabbix监控服务,但是zabbix上没有默认的模板对tcp连接数的监控.后去网上搜索好多文章都没有一个完成的操作步骤,可能本人还是小白吧. 以下详细写下本人的操作步骤. 1.检查安装包和了解zabbix对tcp连接数的监控配置过程. zabbix的服务器端和客户端的安装就不再累述了,直接说本次操作过程(该过程以RPM为例,源码包更简单). a.客户端上必须的安装包:zabbix-agent.zabbix-sender.zabbix-get和zabbix-web可以不用安装. b.了解

zabbix监控tcp连接数

1.监控tcp状态脚本文件如下 # cat tcp_connections.sh  #!/bin/bash #scripts for tcp status  function SYNRECV {  /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}' }  function ESTAB {  /usr/sbin/ss -ant | awk '{

监控案例之监控TCP连接数

五.监控案例之监控TCP 1. 安装agent,过程略 (下面是apt安装,如果是编译安装,请注意路径) 2.监控脚本 cd /etc/zabbix/zabbix_agentd.conf.d/ vim check_tcp.sh #!/bin/bash tcp_conn_status(){ TCP_STAT=$1 ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/tcp_conn.txt TCP_STAT_V

Zabbix企业级监控之监控TCP连接数

1.获取TCP连接状态? ss.netstat都可以获取到连接状态 2.shell脚本中获取连接数 vim /etc/zabbix/shell/monitor_tcp.sh #!/bin/bash   #被动打开 LISTEN() {       ss -an | grep '^tcp' | grep 'LISTEN' | wc -l } #服务器接收到了客户端的请求 SYN_RECV () {       ss -an | grep '^tcp' | grep 'SYN-RECV' | wc 

利用zabbix监控tcp连接数

一.客户端执行 cd /usr/local/zabbix/conf/ wget http://img006.com/badusoft/zabbix/tcp.sh chmod +x tcp.sh sed -i 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/g' /usr/local/zabbix/conf/zabbix_agentd.conf sed -i '$a UserParameter=tcp[*],sh /usr/local/zabb

zabbix监控linux和windows的tcp连接数

linux: 在linux上手动获得tcp连接数的命令为: netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' #ESTABLISHED       socket已经建立连接   #CLOSED            socket没有被使用,无连接   #CLOSING           服务器端和客户端都同时关闭连接   #CLOSE_WAIT        等待关闭连接   #TIME_WAIT         表

zabbix监控windows tcp连接数

windows: 监控windows tcp的连接数有两种方式,一种是利用性能监视器,另一种方式是写个脚本. 在windows server2008上查看性能监视器: 利用下面这些做zabbix的监控项: 在zabbix页面添加监控项.注意key是从上面获取的. perf_counter["\TCPv4\Connections Established"] perf_counter["\TCPv4\Connections Active"] 用脚本监控windows t