access_log 分析

<?php
<<<EOF
log_format combinedio  '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent" $request_length $request_time $upstream_response_time ssl:$https';

EOF;



$fh = fopen('php://stdin','r');  
$regx = '/^(.*?) .*? .*? \[(.*?) (.*?)\] "(.*?) (.*?) (.*?)" (.*?) (.*?) "(.*?)" "(.*?)" (.*?) (.*?) (.*?) (.*?)$/';

while ($str = fgets($fh)) {
    if (preg_match($regx, $str, $m)) {
        $pos = strpos($m[5], '?');
        $url = $m[5];
        if ($pos !== false) {
            $url = substr($m[5], 0, $pos);
        }
        unset($m[0]);
        echo $m[2].' '.$url.' '.$m[8].' '.$m[11].' '.$m[12].' '.$m[13]."\n";
    } else {
        echo "fail\n";
    }
}


用正则处理access_log日志得到结构化的字段,就能很方便做相关的统计和监控了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值