Linux具有使用netstat -s显示协议统计信息的能力。输出看起来类似于:
节选:
7487 times unabled to send RST due to no memory
TCPDSACKIgnoredOld: 817
TCPDSACKIgnoredNoUndo: 7246527
TCPSpuriousRTOs: 4583587
TCPSackShifted: 15825
TCPSackMerged: 455582
但是这些都是在所有的网络接口上积累的。有办法在每个接口上查看这些统计数据吗?我知道/sys/class/net/$INTERFACE/statistics中有数据包级
我有一个linux盒作为许多客户端和互联网之间的路由器,我需要获取一些关于使用情况的统计数据:我需要记录哪些内部IP访问外部地址。
我使用它来检查哪些内部IP访问哪个外部IP:
tcpdump -n -i any port 80 or port 443 and src net 192.168.101.0/24
(我使用-n,稍后进行查找)
然而,这也向我展示了许多与TCP握手和窗口有关的附加内容。是否可以只显示实际的HTTP请求?
我已经找到了一些方法,其中大多数涉及到grepping for GET\|POST,但是去掉了is,这是我关心的主要问题。
编辑:
除了使用tcp +标准linux
我可以使用sar命令获取昨天的统计数据吗?我现在已经安装了sar,那么我会得到昨天的sa日志吗?如果是,那怎么做?
我可以看到今天的日志:
# sar -f /var/log/sa/sa12
Linux 3.14.19-17.43.amzn1.x86_64 (ip-10-179-219-78) 02/12/2016 _x86_64_ (16 CPU)
06:30:01 AM CPU %user %nice %system %iowait %steal %idle
06:40:01 AM all 2