如何监控 Apache 上各个虚拟站点的带宽使用情况?(乌班图14(。
在我们的 IIS 服务器上,我们使用性能监视器,保存到 csv 文件,并让 MRTG 解析数据并将其显示为图形。
我可以使用 MRTG 执行此操作吗?我读到一个不支持的Apache模块(mod_monitor??(,有些人试图使用,但真的不想使用不受支持的软件。
简短的回答是,如果没有一点额外的工作,您可能无法做到这一点。
更长的答案是,虽然 MRTG 理论上可以绘制任何内容,但您必须为其提供一种获取数据的方法。 网络接口的吞吐量已经通过 SNMP 提供,但每个虚拟服务器的网络流量有点难获得,您需要说服 Apache 以您可以使用的格式移交这些数据。
您显然已经意识到这一点,因为在 IIS 下,您使用性能监视器从性能统计信息中获取数据。 事实上,使用 IIS,您可以使用像 mrtg-nsclient 这样的插件直接通过 Nagios nsclient++ 代理查询性能统计信息,而不是将统计信息转储到文件中并进行解析。 但是,您正在使用Apache...
实现此目的的一种方法是在单独的TCP端口上运行每个虚拟服务器,然后使用iptables日志记录规则来计算传递的字节数。 然后,MRTG 可以分析iptables -L
的输出以获取计数器。
但是,如果要使用名称虚拟主机,则只有Apache的内部具有相关数据。
我有一个 MRTG 数据收集插件,它通过 mod_status URL 获取总流量计数。 这允许绘制活动 Apache 线程数和总流量的图形。 但是,它不按虚拟服务器拆分,因此您无法获取单个统计信息。 即使打开了扩展状态,也只能看到当前线程的活动,而看不到按虚拟主机拆分的计数。 ExtendedStatus 允许您查看每个虚拟主机处于活动状态的线程数,但不能查看每个虚拟主机传输的总字节数。
所需的输出似乎存在于 mod_watch
中,这将在 URL /watch-list
上为每个虚拟主机输出一行统计信息。 但是,这是一个较旧的模块,可能需要修改才能针对 Apache 2.4 进行编译。 它也很难找到,因为作者显然试图埋葬它。 它曾经在github上,但在2012年消失了。
在这里尝试:https://github.com/pld-linux/apache-mod_watch 源,在这里尝试: Apache 2.4 的 Windows 二进制文件 http://fossies.org/windows/www/httpd-modules-2.4-win64-VC11.zip/index_o.html