004 Nginx日志挖掘accessLog

日志模版

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

实际记录的日志

192.168.56.1 - - [23/Dec/2020:23:13:04 +0800] "GET /app/img/ys.jpg HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3823.400 QQBrowser/10.7.4307.400"

192.168.56.1 - - [23/Dec/2020:23:14:54 +0800] "GET /app/img/aa/a.png HTTP/1.1" 200 26578 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3823.400 QQBrowser/10.7.4307.400"

日志解析

$remote_addr  192.168.56.1  对应客户端IP地址
$remote_user - 对应远程用户,没有远程用户,所以用-充填
[$time_local]  [23/Dec/2020:23:13:04 +0800] 访问时间
"$request"   "GET /app/img/ys.jpg HTTP/1.1"  访问HTTP信息
$status 403 访问的状态码
$body_bytes_sent 555 响应的body大小
$http_referer 站点来源 # 可以用于防盗链
$http_user_agent 客户端信息
$http_x_forwarded_for 用户真实IP(代理时候),-/空

accessLog 分析常用命令

样例文件 -> access_temp.log

# 查看访问最频繁的前10个IP

# 打印第一个 | 排序 |  去重统计 | 倒叙排序 |  取前10条
awk '{print $1}' access_temp.log | sort -n | uniq -c | sort -rn | head -n 10

# 统计访问最多的URL 前10
# 这里面有token,正常需要把?后面切走,这里先不管
cat access_temp.log | awk  '{print $7}'  | sort  | uniq -c | sort -rn | head -n 10

接口性能

#  日志 添加变量
$request_time  用户请求响应总耗时
$upstream_response_time 从nginx到服务请求响应时间(排除掉nginx和用户的时间)


cat xxx.log | awk '($NF >2){print $7}' | sort -n | uniq -c | sort -nr | head -5
$NF 表示最后一列
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页