我们的服务器负载很重,我们想看看一天中 Apache 连接数最多的前 50 位是谁。问题是,这台服务器在 Apache 中加载了多个 IP 地址,每个 IP 上托管了多个主机名(附加域),并且每个域都有日志。
我可以临时添加到 Apache 配置中的技巧是什么,以便无论我们在给定服务器上托管的 IP 或主机是什么,我们都可以跟踪给定一天的前 50 个传入 Apache 连接?
我们使用的 Apache 2 支持 FastCGI。
(我算是替代了另一个系统操作员。我的工作主要是 PHP 程序员。我现在正在即兴发挥。)
编辑:似乎有很多正确答案。因此,我将其切换到社区 wiki。
答案1
Apache 的服务器状态是一个不错的选择。你可以查看有多少个连接处于打开状态,使用的带宽,以及一堆其他的统计数据,下面是一个演示。
答案2
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|head -n 50
可能需要根据您的 netstat 版本调整列截断
答案3
如果你想要更多视觉效果,访客日志分析器具有“实时模式”,它会跟踪访问日志并在 X 时间过去后更新统计数据。
而且已经提到的 Apachetop 也非常好。