我可以使用什么来监视和记录与远程主机之间的传入/传出流量?


13

我运行一个Web服务器(VPS上为Debian Squeeze),托管公司提供的图表始终显示出,流入服务器的流量大约是流出流量的两倍。我对此感到有些困惑,因此我想在计算机上运行某种日志记录实用程序,该实用程序不仅可以确认上传/下载数据,还可以将它们拆分为所涉及的远程主机,因此我可以查看是否很大一部分传入流量来自一个特定来源。

我怀疑大部分传出流量都是通过Apache进行的,但是传入流量可能主要是通过Apache进行的,或者可能是由其他脚本和cron作业控制的,所以我宁愿选择一种在接口级别监视流量的工具,而不是在Apache中进行监控的工具。 。

理想情况下,我希望该工具可以保持运行几天,然后返回并获得“传入和传出流量”的“每个远程主机的字节数”输出。

使用标准的Linux工具和一些配置(如果可以,怎么办?)或专业程序(如果可以的话,哪个?)可以做到吗?

Answers:


11

ntop可能是您执行此操作的最佳解决方案。它旨在长期运行并准确捕获您要查找的内容。
它可以显示使用最多的远程目标,发送/发送的流量,使用的协议和端口的流量等。如果在路由器上运行源主机,它可以对源主机执行相同的操作,从而可以看到本地客户的统计数据也是如此。
然后,它使用Web GUI导航和显示此信息。

顶


哇 这些年来,我一直在使用ntoplike top,我不知道它具有守护程序模式和内置的Web界面!@ckhan的建议没有任何问题,但我会接受这一建议,因为我觉得ntop内置的Web界面比tcpdumpWireshark 易于使用。
伊恩·伦顿

9

如果您具有root用户,则可以使用tcpdump并掌握所有内容。然后,您可以将其拉到Wireshark中并分析您的内心状况。

$ sudo tcpdump -i <interface> -w mycapture.tcpdump  

...,然后在您受够后按ctrl-c。screen如果需要分离等,请在会话中运行。

默认情况下,它将仅捕获每个数据包的第一部分,但是由于您最感兴趣的是原始分析,所以应该没问题。如果您喜欢冒险,可以使用tcpdump的其他选项

编辑:实际上,一旦加载到Wireshark中,您就可以使用菜单选项“ 统计 | IP地址...并按计数/速率/百分比获得良好的流量摘要:

在此处输入图片说明


谢谢,这似乎是一个合理的方法。您是否知道Wireshark是否可以自动产生我想要的输出类型(例如“到serverA的1000个连接,到serverB的967个连接...”),还是我必须编写一个脚本来从TCP转储中构建该信息?我?
伊恩·伦顿

@IanRenton-我认为它将完全按照您的要求进行操作,请参见修改后的答案。我相信tcpdump也可以吐出包的摘要,你可以很容易地grepwc等等
ckhan

4

对于更高级的指标,您可以使用诸如monitorix之类的东西,它具有适用于大多数常见服务的模块,这很简单:

apt-get install monitorix

你也有仙人掌一个完整的GUI RDDtool,但不是实时的。

对我而言,前1名是可配置的grafana。它的安装和配置有些困难,但它非常完美,您可以详细,实时地测量所有内容。它需要一些依赖关系JVM,石墨,耳语,...关于JSON的一些知识,但是像一个魅力我真的推荐它!

也许适合您的情况的配置应该是:

collectd + graphite + whisper + grafana

实际上grafana改变了我在办公室的生活。


Whisper带来了很多成功,但似乎都没有意义。除了适用于Android的防火墙外,您能否提供网址?也许您的安装有github存储库。
oligofren 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.