【Nginx学习总结】9.Nginx的日志分析与参数详解

一、Nginx日志记录格式的介绍

Nginx的默认日志路径:/usr/local/nginx/logs/access.log 和 error.log 

日志的格式的配置文件一般在:/usr/local/nginx/conf/nginx.conf  

 

log_format用来设置日志的记录格式:log_format name format

name表示格式名称,format表示等义的格式。

常见格式如下:

log_format  main  '$remote_addr - $remote_user [$time_local] 
                   requesthost:"$http_host"; "$request" requesttime:"$request_time";'

                  '$status $body_bytes_sent "$http_referer" - $request_body'

                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main

 

二、Nginx日志参数详解

参数注释如下:



$remote_addr   #与$http_x_forwarded_for 用以记录客户端的ip地址

$http_x_forwarded_for   #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的http_x_forwarded_for设置


$remote_user   #记录客户端用户名称,一般默认为空


$time_local   #记录访问时间


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


$status   #记录请求状态


$body_bytes_sent   #记录发送给客户端文件内容大小


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


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


$request_time   #处理完请求所花时间,以秒为单位 


$http_host   #请求地址,即浏览器中你输入的地址(IP或域名)


$request_body   #记录POST数据


$request_length   #客户端请求的长度


$upstream_status   #upstream状态,成功是200


$upstream_addr  #后台upstream的地址,即真正提供服务的主机地址


$upstream_response_time    #请求过程中,upstream响应时间

三、Nginx日志常用分析命令

1)总请求数

wc -l  access.log |awk '{print $1}'

 

2)独立IP数

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

 

3)每秒客户端请求数 TOP5

awk '{print $6}' access.log|sort|uniq -c|sort -rn|head -5

 

4)访问最频繁IP Top5

awk '{print $1}' access.log|sort |uniq -c |sort -nr |head -5

 

5)访问最频繁的URL TOP5

awk '{print $7}' access.log|sort |uniq -c |sort -nr |head -5

 

6)响应大于5秒的URL TOP5

awk '{if ($7 > 5){print $6}}' access.log|sort|uniq -c|sort -rn |head -5

 

7)HTTP状态码(非200)统计 Top5

awk '{if ($11 != 200){print $11}}' access.log|sort|uniq -c|sort -rn|head -5

 

拓展:

1.统计访问量最高的前20位IP排名

awk '{print $1}' access_20190307.log|sort|uniq -c|sort -nr|head -20

2.分析9点到12点的总访问量

sed -n "/2019:09:00/,/2019:12:00/"p access_20190307.log|more

拓展:

统计某一分钟或是某一秒的访问量

grep "2019:12:00" access_20190307.log|wc -l

grep "2019:12:00:00" access_20190307.log|wc -l

3.找出当前日志中502 或是 404错误的页面并统计

awk '{print $0}' /usr/local/nginx/logs/access.log|awk '$9==502 || $9==404 {print $1}'

提示:$后面跟的数字具体要看你的业务和你的日志格式,不是固定的!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值