监视Apache单个虚拟网站(MRTG?)上的带宽

监视Apache单个虚拟网站(MRTG?)上的带宽,apache,mrtg,Apache,Mrtg,如何监控Apache上各个虚拟站点的带宽使用情况?Ubuntu 14 在我们的IIS服务器上,我们使用性能监视器,保存到csv文件,让MRTG解析数据并将其显示为图形 我可以用MRTG做这个吗?我听说Apache mod_monitor有一个不受支持的模块??有些人曾尝试使用,但确实不想使用不受支持的软件 简单的回答是,如果没有一点额外的工作,你可能无法做到这一点 较长的答案是,虽然MRTG在理论上可以绘制任何图形,但您必须为其提供获取数据的方法。网络接口的吞吐量已经通过SNMP提供,但是每个虚

如何监控Apache上各个虚拟站点的带宽使用情况?Ubuntu 14

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


我可以用MRTG做这个吗?我听说Apache mod_monitor有一个不受支持的模块??有些人曾尝试使用,但确实不想使用不受支持的软件

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

较长的答案是,虽然MRTG在理论上可以绘制任何图形,但您必须为其提供获取数据的方法。网络接口的吞吐量已经通过SNMP提供,但是每个虚拟服务器的网络通信量更难获得,您需要说服Apache以您可以使用的格式交付这些数据

您显然已经意识到了这一点,因为在IIS下,您使用性能监视器从perfstats获取数据。事实上,使用IIS,您可以使用诸如mrtg nsclient之类的插件直接通过Nagios nsclient++代理查询perfstats,而不是将统计数据转储到文件并对其进行解析。但是,您正在使用Apache

实现这一点的一种方法是在单独的TCP端口上运行每个虚拟服务器,然后使用iptables日志记录规则来计算传递的字节数。然后,MRTG可以解析iptables-L的输出以获得计数器

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

我有一个MRTG数据收集插件,通过mod_status URL获取总流量。这允许绘制活动Apache线程的数量和总流量的图形。但是,它不是按虚拟服务器划分的,因此您无法获取单个统计信息。即使启用ExtendedStatus,您也只能看到当前线程的活动,而不能看到按vhost拆分的计数。ExtendedStatus允许您查看每个vhost有多少线程处于活动状态,但不允许查看每个vhost传输的总字节数

您想要的输出似乎存在于mod_watch中,它将在URL/监视列表中为每个vhost输出一行统计信息。但是,这是一个较旧的模块,可能需要修改才能针对Apache2.4进行编译。这也很难找到,因为作者显然试图将其埋葬。它曾经在github上,但在2012年消失了

试试这里:对于来源,
试试这里:对于适用于Apache2.4的windows二进制文件

Wow,感谢您的详细回答,Steve。从某种意义上说,这似乎证实了我的猜测,即目前没有快速的答案来应对这一挑战。不幸的是,我现在没有能力修改apache模块中的代码!据我所知,问题不在于MRTG或其他显示数据的工具,而在于从Apache获取所需的数据。是的,问题在于从Apache获取每vhost细分。然而,mod_手表模块似乎能满足您的需求;我添加的最后两个链接似乎指向Windows下Apache 2.4的有效编译模块。它们有一个单独的win32编译,并且Mod_ntraffic还可以提供您想要的统计信息