假设有一个集群/一组进程通过 REST/HTTP 进行通信(现在可以描述很多产品)。有什么好的、简单的方法可以通过某种不错的可视化工具来查看它们之间的通信?它们可能是动物园管理员精心策划的,但也不一定。 (此外,如果它们在同一台机器上,理想情况下我可以使用 netstat 来发现谁调用了谁 - 如果这一切都以某种方式可用,那就太好了)。必须在 Linux 上工作。
是的,我知道我可以使用代理等,但这需要大量的手动工作。 Wireshark 及相关产品的工作量更大。我想知道是否有针对此类问题的更多交钥匙解决方案。
一种方法只是基于 Wireshark,但旨在仅显示具有某些已经有效的标准的 HTTP 流量。
提到 Zookeeper 的原因可能是另一种方式,即询问 Zookeeper,并用代理端口替换其中的端口,并通过它们路由所有流量 - 但同样,我想要一些已经可以工作的东西。
答案1
如果您只需要知道谁打电话给谁(而不是所说内容的详细信息),您可以通过 iptables 增加网络级别的日志记录,然后集中收集系统日志,并将它们解析为您需要的任何形式。或者,您可以使用 ntop/nprobe 之类的工具来收集每个主机上的汇总连接数据,然后将其提供给中央 NetFlow 报告工具。根据您的环境,您甚至可以从网络硬件收集该数据。
如果您需要更多地了解所说的内容,则需要代理,尽管它们可以是在同一服务器上运行的简单代理,将其日志提供给中央服务器进行分析。
最好的解决方案是修改您的软件以包含其自己的日志记录功能,即使它只发生在“调试模式”下,这样您也可以在将来使用它来解决问题。
也可以看看: http://www.tokiwinter.com/adding-logging-to-iptables-under-centos/