2014-12-04 73 views
0

如何监控Apache上单个虚拟站点的带宽使用情况? (Ubuntu 14)。监控Apache个人虚拟网站上的带宽(MRTG?)

在我们的IIS服务器上,我们使用性能监视器,保存到csv文件并让MRTG解析数据并将其显示为图形。

我可以用MRTG做这个吗?我读到了一些不支持的Apache模块(mod_monitor ??),有些人试图使用它,但真的不想使用不受支持的软件。

回答

0

简短的回答是,如果没有一点额外的工作,你可能无法做到。

较长的答案是,尽管MRTG可以在理论上绘制任何图形,但您必须提供一种获取数据的方法。网络接口的吞吐量已经通过SNMP提供,但每个虚拟服务器的网络流量有点难以实现,您需要说服Apache将这些数据以您可以使用的格式传递。

很明显,您已经意识到了这一点,因为在IIS下,您使用性能监视器从perfstats获取数据。实际上,使用IIS,不是将统计信息转储到文件并解析它,而是使用像mrtg-nsclient这样的插件通过Nagios nsclient ++代理直接查询perfstats。但是,您正在使用Apache ...

实现它的一种方法是在单独的TCP端口上运行每个虚拟服务器,然后使用iptables logging规则计算传递的字节数。然后可以通过MRTG分析iptables -L的输出以获得计数器。

但是,如果您想使用名称虚拟主机,只有Apache的内部具有相关数据。

我有一个MRTG数据收集插件,通过mod_status URL获取总流量计数。这允许绘制活动的Apache线程数量和总流量。但是它不会被虚拟服务器分割,所以您无法获得单个统计信息。即使在ExtendedStatus打开的情况下,您也只能看到当前线程的活动,而不是通过虚拟主机进行计数。 ExtendedStatus将允许您查看每个虚拟主机有多少个线程处于活动状态,但不是每个虚拟主机传输的总字节数。

您想要的输出似乎存在于mod_watch中,它将在URL /watch-list上为每个虚拟主机输出一行统计信息。但是,这是一个较旧的模块,可能需要进行修改才能针对Apache 2.4进行编译。作者显然试图埋葬它也很难。它曾经是GitHub上,但在2012年

消失试一下:https://github.com/pld-linux/apache-mod_watch为源, 试一下:http://fossies.org/windows/www/httpd-modules-2.4-win64-VC11.zip/index_o.html为Windows二进制的Apache 2.4

+0

哇,谢谢你的详细解答,史蒂夫。从某种意义上说,它似乎证实了我的怀疑,即目前对这一挑战没有快速的回答。不幸的是,我目前还没有能力修改apache模块中的代码!根据我的理解你的回答,问题不在于MRTG或其他显示数据的工具,因为它正在从Apache获取所需的数据。 – 2014-12-05 14:53:38

+0

是的,问题是从Apache获得每个虚拟主机的故障。然而,mod_watch模块似乎给你想要的东西;我添加的最后两个链接似乎转到Windows下的Apache 2.4的有效编译模块(它们也具有用于win32的单独编译) – 2014-12-06 21:25:31

+0

mod_watch for Windows Apache 2.4.17 https://www.apachelounge.com/download/ – 2015-12-09 02:22:06