Nginx基础篇-Nginx的日志模块~日志分析
常用字段
$remote_addr $1----远程客户端地址
$time_local $4-----本机时间
$request $7-----请求URL
$status $9-----状态码
$body_bytes_sent $10----请求体积
- 统计2017年9月5日 PV量
grep '05/Sep/2017' cd.mobiletrain.org.log | wc -l
2.统计8点到9点之间得
grep '05/Sep/2017:08' cd.mobiletrain.org.log | wc -l
awk '$4>="[05/Sep/2017:08:00:00" && $4<="[05/Sep/2017:08:00:00" {print $0}' cd.mobiletrain.org.log | wc -l
- 统计2017年9月5日 一天内访问最多的10个IP(ip top10)
grep '05/Sep/2017' cd.mobiletrain.org.log | awk '{ ips[$1]++ } END { for(i in ips) { print i ,ips[i] } }' | sort -k2 -rn | head -n10
- 统计2017年9月5日 访问大于100次的IP
grep '05/Sep/2017' cd.mobiletrain.org.log | awk '{ ips[$1++] } END {for (i in ips) {if (ips[i] > 100) {print i ,ips[i] } }}' | sort -k2 -rn | head -n10
- 统计2017年9月5日 访问最多的10个页面($request top 10)
grep '05/Sep/2017' cd.mobiletrain.org.log |awk '{urls[$7]++} END{for(i in urls){print urls[i],i}}' |sort -k1 -rn |head -n10
- 统计2017年9月5日 每个URL访问内容总大小($body_bytes_sent)
grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{ urls[$7]++; size[$7]+=$10} END{for(i in urls){print urls[i],size[i],i}}'| sort -k1 -rn | head -n10
- 统计2017年9月5日 每个IP访问状态码数量($status)
grep '05/Sep/2017' cd.mobiletrain.org.log | awk '{ ip_code[$1" "$9]++}END{ for(i in ip_code){print i,ip_code[i]} }' | sort -k1 -rn | head -n10
- 统计2017年9月5日 IP访问状态码为404及出现次数($status)
grep '05/Sep/2017' cd.mobiletrain.org.log | awk '$9=="404"{ccc[$1" "$9]++} END{for(i in ccc){print i,ccc[i]}}' | sort -k3 -rn
grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{if($9="404"){ip_code[$1" "$9]++}} END{for(i in ip_code){print i,ip_code[i]}}'
- 统计前一分钟的PV量
date=$(date -d '-1 minute' +%d/%b/%Y:%H:%M);awk -v date=$date '$0 ~ date {i++} END{print i}' sz.mobiletrain.org.log
- 统计2017年9月5日 8:30-9:00,每个IP,出现404状态码的数量
awk '$4>="[05/Sep/2017:08:30:00" && $4<="[05/Sep/2017:09:00:00" {if($9="404"){ip_code[$1" "$9]++}}END{for(i in ip_code){print i,ip_code[i]}}' sz.mobiletrain.org.log
- 统计2017年9月5日 各种状态码数量
grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{code[$9]++} END{for(i in code){print i,code[i]}}'