希望有人能指出我试图与 Amazon ELB 生成的访问日志一起使用的 LogFormat 有什么问题。
ServerFault 可读性的多行:
%time5 %elb %host %host_port %host_r %host_r_port %request_processing_time
%backend_processing_time %response_processing_time %code
%backend_status_code %received_bytes %bytesd %methodurl
示例日志条目(清理后):
2014-08-28T17:59:14 awseb-e-2-AWSEBLoa-AAAAAAAA 123.123.123.123 44153 10.123.123.123 80 0.000046 0.536613 0.000045 200 200 0 13129 "GET /path/to/web/app HTTP/1.1"
日志在发送到 AWStats 之前被清理。我使用以下替换:
cat ${s3_logs_dir}/* \
| sed -e "s/\(\.[0-9]\{1,3\}\):\([0-9]\{2,5\}\)/\1 \2/g" \
| sed -e "s/\(:[0-9]\{2\}\)\(\.[0-9]\{6\}Z\)/\1/g" \
| sed -e "s/http:\/\/www\.example\.com:80//g" \
> ${combined_log} 2>>${log_file}
首先我从端口中分离主机,其次我从 %time5 ISO 日期中删除微秒,最后我尝试从请求中删除绝对 URL。