AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 14613
Accepted
pkaeding
pkaeding
Asked: 2009-05-30 06:28:55 +0800 CST2009-05-30 06:28:55 +0800 CST 2009-05-30 06:28:55 +0800 CST

如何查看每个 Apache 虚拟主机正在使用多少带宽?

  • 772

我设置了 Apache 来服务多个虚拟主机,我想看看每个站点使用了多少带宽。我可以看到整个服务器使用了多少,但我想要更详细的报告。

我发现的大多数东西都是为了限制虚拟主机的带宽,但我不想这样做;我只想看看哪些网站正在使用多少带宽。

这不是用于计费目的,仅用于信息。

我应该使用 apache 模块吗?还是有其他方法可以做到这一点?

apache-2.2 monitoring virtualhost bandwidth
  • 8 8 个回答
  • 29883 Views

8 个回答

  • Voted
  1. Best Answer
    Xerxes
    2009-05-30T06:47:11+08:002009-05-30T06:47:11+08:00

    您需要的信息都在日志​​中,因此您应该查看日志分析器,例如AStats。另一种选择是使用谷歌分析。

    为了分析日志,这里有一个粗略的例子,你可以用它来告诉你一个日志文件从命令行报告了多少 MB 的流量:

    cat /var/log/apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'
    
    • 25
  2. Oct
    2009-05-30T08:21:10+08:002009-05-30T08:21:10+08:00

    我建议您使用美妙的 apache 日志记录机制及其鲜为人知的%I和%O标志:

    定义格式:

    LogFormat "%t %a %v %U%q %I %O" IOFormat

    在你的主httpd.conf中使用它:

    CustomLog /var/log/apache2/all-bw.log IOFormat

    这些值可能并未考虑所有标头信息,但对于准确了解 VirtualHost 流量而言非常准确。

    使用 perl 脚本扫描日志以每 n 分钟(例如 5 分钟)汇总每个虚拟主机并将其发送到 cacti。

    这些标志由 mod_logio 提供,它可能内置在您的 Apache 中(就像我的 Debian 的 Apache 一样)。

    • 5
  3. Antoine Benkemoun
    2009-05-30T06:34:00+08:002009-05-30T06:34:00+08:00

    Awstats是一种方法,但可能不是最好的

    • 3
  4. user12345
    2011-09-01T14:51:33+08:002011-09-01T14:51:33+08:00

    如果您决定将 awstats 与 Apache 一起使用,那么开箱即用的它将显示您整个服务器的聚合带宽。

    要查看每个虚拟主机的带宽,我建议安装vlogger。

    Vlogger 实际上会为您设置为在单独的目录/文件中执行此操作的每个虚拟主机收集 Apache 访问日志信息。

    例如,如果您的 Apache 日志文件在 /var/log/apache2 中,典型的 vlogger 安装将为您的虚拟主机创建类似这样的内容(例如 vhost1.com vhost2.com):

    /var/log/apache2/vhost1.com/access.log
    /var/log/apache2/vhost2.com/access.log
    

    Vlogger 为您提供了为您轮换这些日志的选项,提供了一种更改访问日志文件命名模板的方法(例如添加日期),并声称它比 Apache 更好地处理大量日志文件。

    这样做的一个缺点是您将不再拥有聚合的服务器视图(您需要单独聚合日志,或者可能使用额外的 apache 设置或其他方法?)。

    我会告诫不要使用谷歌分析(或任何基于 javascript 的跟踪)进行服务器带宽监控,因为您依赖客户端通过 javascript 进行报告。GA 不会向您报告禁用了 javascript 的人以及任何爬虫/蜘蛛/机器人。

    • 2
  5. hjaltij
    2011-01-13T06:38:34+08:002011-01-13T06:38:34+08:00

    这是一些用于解析 Xerxes 提出的日志格式的正则表达式。

    \[([0-9]+)/(\w+)/([0-9]{4})[^\]]+\]\s(\d{1,3}.\d{1, 3}.\d{1,3}.\d{1,3})\s([^/]+)[^\s]+\s(\d+)\s(\d+)

    示例日志:

    [12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12/Jan/2011:14:25:04 +0000] 157.157。 12.206 个文件.hjaltijakobsson.com /icons/compressed.gif 693 188 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 个文件.hjaltijakobsson.com /favicon.ico 592 512

    火柴:

    子模式 1(月中的某天):12
    子模式 2(缩写月):1 月
    子模式 3(年):2011
    子模式 4(访客主机):157.157.12.206
    子模式 5(虚拟主机):files.hjaltijakobsson.com
    子模式 6(传入字节):581
    子模式 7(传出字节):669

    干杯。

    • 1
  6. michael
    2014-04-28T17:13:26+08:002014-04-28T17:13:26+08:00

    假设服务器上实际上有多个虚拟主机(因此有多个 site.com.access_log ),对接受的答案进行轻微调整。这将排序并列出每个虚拟主机

    for f in *.access_log ; do echo `awk '{SUM+=$10}END{print SUM/1024/1024}' $f` $f ; done | sort -rn | more
    

    和一个压缩日志目录

    for f in *.access_log.*.gz ; do echo `zcat $f|awk '{SUM+=$10}END{print SUM/1024/1024}'` $f `stat -c%z $f`; done | sort -rn | more 
    
    • 1
  7. Rob Dudley
    2009-05-30T06:41:15+08:002009-05-30T06:41:15+08:00

    嗯,您可能会使用 IPTables 和字符串匹配来记录数据包以供以后报告。但仅适用于非 SSL 连接。

    或者像 Snort 之类的协议和会话感知可以被鞋拔使用......

    • 0
  8. David
    2013-04-16T12:24:54+08:002013-04-16T12:24:54+08:00

    正确的。过滤日志是个好主意。我还想在下载文件时获得 Apache 服务器的带宽。

    LogFormat "%h %l %t %u \"%r\" %>s %b/%D**" combined
    

    计算%b和%d输出,这将为您提供电流带宽。

    • 0

相关问题

  • 网速慢 - 我应该检查什么?

  • mod_rewrite 不转发 GET 参数

  • 你用什么工具来监控你的服务器?

  • 我应该如何管理每用户带宽?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve