为每个 apache 或 nginx http-log 文件绘制网络使用情况图表

为每个 apache 或 nginx http-log 文件绘制网络使用情况图表

我想监控我的 VPS 上的带宽。我认为最简单的方法是解析 http-logs(%bytes-send%值)。是否有任何脚本或软件(免费软件)可以制作带宽使用图表,例如(例如)cpanel?非常感谢。

PS 当然,我可以写,但我不想发明自行车:)

答案1

我用统计进行一些分析数据,包括数据传输统计信息。对于 Apache,它将开箱即用地支持这些日志。对于 nginx,我不确定,但您始终可以为日志编写自定义规则(例如,我为 HAProxy 日志编写了一个规则)。

我会这样做报告而不是我自己监控。对于监控,我会使用 Monit、Cacti 或 Nagios 等工具来监控/绘制网络使用情况。尽管这也包括其他数据。

答案2

对于监控日志 - Analog:www.analog.cx。设置起来有点麻烦(有很多配置选项),但功能非常强大。您可以将其设置为写入小型、机器可读的文件,这些文件将输入到您的统计服务器(例如 Zabbix 或 Nagios)。

但请记住,您的网络日志可能不会报告所传送的字节数,它们可能只报告所请求文件的大小。(没有使用 nginx,但我知道 apache 会这样做。)如果您提供大量大下载,那么这可能会导致对带宽的严重高估,如果您考虑到许多下载管理器会对同一个文件发出 16 或 32 个请求...

Apache 有一个 logio 模块,它牺牲了一些日志的即时性来获取真实的服务字节数。

答案3

您还可以使用 apache mod_status 模块并使用上面提到的任何工具进行查询,但统计数据非常通用。

答案4

据我所知,Apache 确实记录了部分传输,它将其记录为 206 并给出字节数。几周前我刚刚更新了我的(这个)带宽脚本。

http://crunchtools.com/software/crunchtools/racecar/

这将为您提供快速而粗略的报告,但没有按域细分。我现在正在为此寻找解决方案。这不是一个小问题。我使用 awstats 来分析我的内容表现如何,但没有办法(据我所知)以报告格式计算带宽。

相关内容