Nginx 访问日志分析

Posted YSHY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 访问日志分析相关的知识,希望对你有一定的参考价值。

0:nginx日志格式配置

# vim nginx.conf
##
        # Logging Settings
        ##
        log_format  access  \'$remote_addr - $remote_user [$time_local] "$request" \'
                          \'$status $body_bytes_sent $request_body "$http_referer" \'
                          \'"$http_user_agent" "$http_x_forwarded_for" "$request_time"\';

        access_log /var/log/nginx/access.log access;

1:统计PV数

(1)统计所有的PV数

cat access.log | wc –l

(2)统计当天的PV数

cat access.log | sed -n /`date "+%d\\/%b\\/%Y"`/p |wc -l

(3)统计指定某一天的PV数

cat access.log | sed -n \'/20\\/Aug\\/2017/p\' | wc -l

如果要是获取某一天的则修改日期即可。

2:获取访问IP数

cat access.log | awk \'{print $1}\' | sort -k1 -r | uniq | wc -l

3:获取每分钟的请求数量

通过cat、awk等Linux脚本工具,输出成csv文件,然后用excel打开,生成柱状图。

cat access.log | awk \'{print substr($4,14,5)}\' | uniq -c | awk \'{print $2","$1}\' | sort -k1 | awk \'{print $2","$1}\' > access.csv

4:查看日志中访问次数最多的前10个IP

cat access.log.1 |cut -d \' \' -f 1 | sort |uniq -c | sort -nr | awk \'{print $0 }\' | head -n 10

5:查看日志中访问次数超过1000次的前10个IP

 cat access.log.1 |cut -d \' \' -f 1 | sort |uniq -c | sort -nr | awk \'{if($1>1000) print $0 }\' | head -n 10 

 

以上是关于Nginx 访问日志分析的主要内容,如果未能解决你的问题,请参考以下文章

采集并分析Nginx访问日志

Nginx日志分析

基于hadoop的nginx访问日志分析---计算日pv

基于hadoop的nginx访问日志分析--计算时刻pv

基于hadoop的nginx访问日志分析--userAgent和spider

命令分析nginx访问日志的用法