【问题标题】:Measure traffic from apache access log测量来自 apache 访问日志的流量
【发布时间】:2011-11-05 11:00:17
【问题描述】:

有什么方法可以测量一个 Apache 日志文件中使用了多少流量?

格式:

66.249.72.214 - - [05/Nov/2011:12:47:37 +0200] "GET /produktas/565638 HTTP/1.1" 200 4699 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

我如何理解4699 是传输的字节,不包括标头。

我需要一个简单的解决方案(可能是一个小 bash 脚本)来汇总每个日志行中的字节数。

【问题讨论】:

    标签: linux apache logging


    【解决方案1】:

    试试这个。我在本地文件上对其进行了测试,但无法判断它是否适用于所有配置/语言环境/...

    cat apache.log | perl -e 'my $sum=0; while(<>) { my ($traffic) = m/\[.+\] ".+" \d+ (\d+)/; $sum += $traffic}; print "$sum\n"'
    

    2017 年 1 月更新:与此同时,我学到了更多 Perl,这就是我今天要做的事情:

    cat apache.log | perl -nE '/\[.+\] ".+" \d+ (\d+)/; $sum += $1; END {say $sum}'
    

    【讨论】:

    • 谢谢!我对其进行了一些修改,以 GB 为单位显示:[code]cat access.log | perl -e '我的 $sum=0; while() { 我的 ($traffic) = m/[.+] ".+" \d+ (\d+)/; $sum += $交通}; printf("%.3f/1024/1024/1024); print "GB\n"'[/code]
    【解决方案2】:

    Apache 访问日志 - 全球带宽使用情况:

    awk '{ s += $10 } END { print "Total ", s/1024/1024 " Mo", "- Moyenne ", s/NR/1024/1024 " Mo", "- Accès ", NR }' access.log
    

    对于文件:

    grep NAME_OF_RESOURCE_HERE /var/log/apache2/access.log* | awk '{ s += $10 } END { print "Total ", s/1024/1024 " Mo", "- Moyenne ", s/NR/1024/1024 " Mo", "- Accès ", NR }'
    


    你会得到这样的结果: Total 301.985 Mo - Moyenne 0.0430055 Mo - Accès 7022

    【讨论】:

      【解决方案3】:

      有关详细的日志文件监控和实际带宽使用情况,请访问AWStats

      它将 Apache 日志文件作为输入,并通过图表为您提供非常详细的访问者和带宽分析。

      你也可以试试GoAccess

      【讨论】:

        【解决方案4】:

        我认为您需要使用apachetop 实用程序,尝试使用下一条命令从 APT 安装:

        sudo apt-get install apachetop
        

        然后用命令运行它:

        sudo apachetop -f /path/to/access.log
        

        你是摇滚! :)

        【讨论】:

          【解决方案5】:

          我们需要获取过去 X 天的流量。我真的不喜欢 perl,所以我所做的是:

          zcat $(find -name yourvhost_access.log*.gz -mtime -3 2>/dev/null| xargs ) \ 
          | awk '$10 ~ /^[0-9]+$/ {print $10}' \
          | paste -sd+ \
          | bc 
          

          步骤:

          1. 查找最近 3 个获得的访问日志
          2. 如果是数字,则打印位置 10 - 有效负载应在此处
          3. 与“+”放在一起
          4. 计算

          【讨论】:

            猜你喜欢
            • 2018-01-14
            • 2015-10-18
            • 1970-01-01
            • 2019-10-13
            • 2012-03-23
            • 1970-01-01
            • 1970-01-01
            • 2012-03-03
            • 1970-01-01
            相关资源
            最近更新 更多