1、阿里云的服务器配置:
CPU 信息: 4 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
CPU 核数: 4
内存信息: 8G
2、最开始使用获取tcp状态的命令:
/bin/netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn|grep ESTABLISHED|awk '{print $1}'|| echo 0 |
3、使用zabbix_get,显示执行时间过长:
[root@ ~]# /data/soft/zabbix/bin/zabbix_get -s 192.168.1.102 -k net.stablished ZBX_NOTSUPPORTED: Timeout while executing a shell script. |
4、使用netstat查看状态,响应均是很慢:
[root@ alertscripts]$time netstat -nat |awk '{print $6}'|grep -v 'established)'|sort|uniq -c|sort -rn real 0m7.627s real 0m8.056s |
5、最后使用 /proc/net/tcp的数据,进行统计,基本耗时在2s左右:
[root@ alertscripts]$time cat /proc/net/tcp |awk '{print $4}'|grep '01'|wc -l || echo 0 real 0m2.048s #zabbix_get正常 [root@ ~]# /data/soft/zabbix/bin/zabbix_get -s 192.168.1.102 -k net.stablished |
6、/proc/net/tcp的数据,第四列是表示tcp状态的:
状态码对应如下:
00 "ERROR_STATUS", 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", 09 "TCP_LAST_ACK", 0A "TCP_LISTEN", 0B "TCP_CLOSING", |