Linux:可监控networkingstream量和连接数

我需要每分钟收集一些监控数据并将其发送到监控服务器。 数据的来源必须使用标准的Linux工具parsing。 例如,要每分钟监视一次当前连接的数量,我使用netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n ,然后再用awk提取必要的数字。

现在我也需要监视:

  • networkingstream量(每分钟发送/接收的数据)
  • 最近一分钟build立的连接数

请给我一些可以产生grep -able和awk -able的工具的提示。

注意:测量是在专用的机器上完成的,所以如果我得到一个接口(eth0)的数据或整个主机的数据并不重要。

注意:我只需要TCP连接。

iptables规则设置为接受所有stream量,所有的SYN数据包(新连接)都可以用作计数器

 iptables -A INPUT -j ACCEPT iptables -A INPUT --protocol tcp --syn -j ACCEPT 

然后运行

 iptables --list -v -n -Z 

并通过尽可能多的切割猫sortinggrep awk sed perl ruby​​和类似的命令来获得你的号码。 每次运行时,-Z都会自动将计数器清零,因此在计数过程中不会出现竞争情况,即丢失了几个数据包。

对于networkingstream量: netstat -in或深入了解由ethtool -S IFACE提供的统计计数器。

在这两种情况下,你必须build立两个测量之间的三angular洲。

新build立的……似乎与“当前连接”增量或差异与先前的值有关。

顺便说一句 – 你提到了一个监控服务器。 只要查看SNMP数据,监控服务器就可以自己做所有的事情。 活跃snmpd和享受…

在别人的帮助下,混杂着自己的想法,我现在做下面的事情来定期监视当前的连接数量和stream量。 (可惜的是,还没有实现新build立的连接数量。)

连接(当前)

 OUTPUT=`netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n` ESTABLISHED=`echo "${OUTPUT}" | grep ESTABLISHED | awk '{print $1}'` LISTEN=`echo "${OUTPUT}" | grep LISTEN | awk '{print $1}'` 

交通(每分钟)

 OUTPUT=`(LANG='' && ifstat -i eth0 60 1 | sed '3!d')` IN=`echo "${OUTPUT}" | awk '{print $1}'` OUT=`echo "${OUTPUT}" | awk '{print $2}'`