Nginx Web的日志分析

      Nginx默认日志路径/usr/local/nginx/logs/,其中包含访问日志accesss.log和错误记录日志error. log,查看Nginx请访问日志cat  /usr/local/nginx/logs/access. log。

     Nginx访问日志打印的格式可以自定义,例如 Nginx日志打印格式配置, log_format用来设置日志格式,name为模块名,type为日志类型,可以配置多个日志模块,分别供不同的虚拟主机日志记录所调用。

一、内部变量和参数介绍

       $remote_addr:  记录客户端IP地址

       $server_name:  虚拟主机名称

       $http_x_forward_for : Http请求端真实的IP

       $remote_user:  记录客户端用户名称

       $request:  记录请求的URL和HTTP协议

       $status:  记录返回HTTP请求的状态

       $uptream_status: upstream的状态

       $body_bytes_sent: 发送给客户端的字节数,不包括响应头的大小

       $connection_requests:  当前通过一个连接获得的请求数量

       $http_referer:  记录从哪个页面链接访问过来的

       $http_user_agent: 记录客户端浏览器相关信息

       $msec;日志写入时间

       $request_length请求的长度,包括请求行、请求头和请求正文

       $request_time:  请求处理时间,单位为s,精度为ms, Nginx接受用户请求的第一个字节到发送完响应数据的时间,包括接收请求数据时间、程序响应时间,输出、响应数据时间

       $upstream_response_time:应用程序响应时间, Nginx向后端服务建立连接开始到接受完数据然后关闭连接为止的总时间

二、对日志的分析

       通过 Nginx日志,可以简单分析Web网站的运行状态、数据报表,IP,UV( uniquePV(page view)访问量等需求。

(1) 统计Nginx服务器独立IP数,指令如下:awk '{print $1}' access.log | sort -r | uniq -c | wc -l

(2)统计 Nginx服务器总PV量,指令如下:awk '{print $7}' access.log | wc -l

(3)Nginx服务器UV统计,指令如下:awk '{print $11}' access.log | sort -r | uniq -c | wc -l

(4)分析 Nginx访问日志截至目前为止访问量前n列的IP,指令如下:awk ‘{print s1}' access.log | sort luniq-c | sort -nr | head-20

(5)分析 Nginx访问日志早上8点至中午12点的总请求量,指令如下:awk '/08:00/,/12:00/' test.log | wc -l

(6)分析 Nginx访问日志总的独立IP数,指令如下:awk '{print $1}' access.log | sort | uniq -c | wc -l

(7)分析 Nginx访问日志状态码404、502、503、500、499等错误信息页面,打印错误出现次数大于20的IP地址,指令如下:

     awk ' {if ($9~/404|499|500|502|403/) print $1, $9)' , access.log | sort | uniq -c | sort -nr | awk '{if($1>20) print $2}'

(8)分析 Nginx访问日志访问最多的页面,指令如下:awk '{print $7}'   test.log | sort | uniq -c | sort -nr

(9)分析 Nginx访问日志请求处理时间大于5s的URL,并打印出时间、URL、访客IP,指令如下:

     awk  '{if ($NF> 5)  print  $NF, $7, $1}'  access.log | sort -nr | more

 

 

 

      

   

 

你可能感兴趣的:(Nginx Web的日志分析)