我安装了Nagios和Centreon,想监控Apache服务器中每个VirtualHost的带宽和访问量,我找到了check_http,但是它只检查virtualHost是否在线。
谢谢
答案1
提出这个问题很容易,但答案却有些棘手,而实施起来则更加困难。
拥有虚拟主机的主要原因之一是您可以让多个站点使用同一个 IP 地址 - 因此为了测量实际带宽,您需要一个像 PasTMon 这样的状态数据包监控系统 - 其设置/集成相当复杂。
一个更简单的解决方案是将值与虚拟主机(%v)一起写入 Apache 日志文件(%I,%O)。
要计算访客数量,您需要 mod_usertrack - 并记录 usertrack cookie 的值(默认情况下为 %{Apache})。请注意,浏览器是否接受/显示 cookie 是可选的。当通过负载平衡代理连接时,单个用户的会话可能会出现在多个远程主机上,而多个用户可能通过同一个代理访问站点 - 因此远程主机(%h)不是准确的指标 - 但您可以考虑在报告的 cookie 始终为空的情况下使用它。
您还需要一些工具来解析日志并将原始数据转换为更有意义的内容。但用 perl 或 awk(或……?)实现这一点很简单。您可以配置 Apache 将日志直接传送到程序或写入文件,然后跟踪文件以提供给转换器。
Nagios 是一个实时系统监视器 - 不太适合监控/报告此类数据。您可能想看看 AWStats - 虽然它实际上只适用于离线数据。
也可以看看