1.12Nginx WEB日志分析

前言

在企业服务器运维中,当 Nginx 服务器正常运行后,SA 会经常密切关注 Nginx 的访 问日志,发现有异常的日志信息需要进行及时处理。
Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误记录日error.log , 如图查看nginx访问日志:cat /usr/local/nginx/logs/access.log |more,如图所示:
在这里插入图片描述
Nginx 访问日志打印的格式可以自定义,例如 Nginx 日志打印格式配置如下, Log_format 用来设置日志格式,Name(模块名) Type(日志类型),可以配置多个日志模 块,分别供不同的虚拟主机日志记录所调用:

log_format	main	'$remote_addr  -  $remote_user  [$time_local] "$request"  '
'$status  $body_bytes_sent  "$http_referer"  '
'"$http_user_agent"	$request_time';

Nginx 日志格式内部变量及函数参数说明:

$remote_addr 记录客户端IP地址;
$server_name 虚拟主机名称;
$http_x_forwarded_for HTTP的请求端真实的 IP ;
$remote_user 记录客户端用户名称;
$request 记录请求的URL和HTTP协议;
$status 记录返回 HTTP 请求的状态 ;
$uptream_status upstream的状态 ;
$ssl_protocol SSL协议版本 ;
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小;
$bytes_sent 发送给客户端的总字节数 ;
$connection_requests 当前通过一个连接获得的请求数量 ;
$http_referer 记录从哪个页面链接访问过来的 ;
$http_user_agent 记录客户端浏览器相关信息;
$request_length 请求的长度 ,包括请求行,请求头和请求正 文;
$msec 日志写入时间;
$request_time 请求处理时间,单位为秒,精度毫秒, Nginx接受用户请求的第一个字节到发送完响应数据的时间,包括 :接收请求数据时间、程序响应时间、输出、响应数据时间 。
$upstream_response_time 应用程序响应时间 ,Nginx向后端服务建立连接开始到接受完数据然后关闭连接为止的总时间 。

通过 Nginx 日志,可以简单分析 WEB 网站的运行状态、数据报表、IP、UV(unique visitor)、PV(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 访问日志截止目前为止访问量前 20 的 IP 列表。

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

(5) 分析 Nginx 访问日志早上 9 点至中午 12 点的总请求量。

sed	-n	"/2016:09:00/,/2016:12:00/"p  access.log
awk	'/2017:09:00/,/2017:12:00/'  access.log|wc  –l

(6) 分析 Nginx 访问日志总的独立 IP 数。

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

(7) 分析 Nginx 访问日志截止目前为止访问量前 20 的 IP 列表。

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

(8) 分析 Nginx 访问日志截止目前为止访问量前 20 的 IP 列表。

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

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

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

(10) 分析 Nginx 访问日志访问最多的页面。

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

(11) 分析 Nginx 访问日志请求处理时间大于 5 秒的 URL,并打印出时间、URL、访客IP。

awk	'{if  ($NF>5)	print  $NF,$7,$1}'	access.log|sort  -nr|more
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值