bloglogobloglogobloglogobloglogo
  • 首页
  • 营销&建站
    • SEO
    • PHP
    • wordpress
    • 自媒体
    • 前端开发
    • 网站建设
    • 网络营销推广
  • 运维&系统
    • mysql
    • Linux
    • 系统运维
    • 运维技术
    • 网络安全
  • 资源&工具
    • 资源
    • 工具
    • 前端工具
    • 搜索方法/工具
    • app打包开发
  • 生活
  • 首页
  • 营销&建站
    • SEO
    • PHP
    • wordpress
    • 自媒体
    • 前端开发
    • 网站建设
    • 网络营销推广
  • 运维&系统
    • mysql
    • Linux
    • 系统运维
    • 运维技术
    • 网络安全
  • 资源&工具
    • 资源
    • 工具
    • 前端工具
    • 搜索方法/工具
    • app打包开发
  • 生活

纯手工玩转 Nginx 日志

  • 首页
  • 系统运维
  • 纯手工玩转 Nginx 日志
Linux下用于匿名Web浏览的终极浏览器
2015年9月10日
使用Hexo在Github上搭建自己的博客
2015年9月16日
2015年9月13日
分类
  • 系统运维
  • 网站建设
标签
  • Nginx
  • 日志

Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式。

104609em3wkgugwpwipsss

Nginx 日志相关配置有 2 个地方:access_log 和 log_format 。

默认的格式:

  1. access_log /data/logs/nginx-access.log;
  2. log_format old '$remote_addr [$time_local] $status $request_time $body_bytes_sent '
  3. '"$request" "$http_referer" "$http_user_agent"';

相信大部分用过 Nginx 的人对默认 Nginx 日志格式配置都很熟悉,对日志的内容也很熟悉。但是默认配置和格式虽然可读,但是难以计算。

Nginx 日志刷盘相关策略可配置:

比如,设置 buffer,buffer 满 32k 才刷盘;假如 buffer 不满 5s 钟强制刷盘的配置如下:

  1. access_log /data/logs/nginx-access.log buffer=32k flush=5s;

这决定了是否实时看到日志以及日志对磁盘 IO 的影响。

Nginx 日志能够记录的变量还有很多没出现在默认配置中:

比如:

  • 请求数据大小:$request_length
  • 返回数据大小:$bytes_sent
  • 请求耗时:$request_time
  • 所用连接序号:$connection
  • 当前连接发生请求数:$connection_requests

Nginx 的默认格式不可计算,需要想办法转换成可计算格式,比如用控制字符 ^A (Mac 下 ctrl+v ctrl+a 打出)分割每个字段。

log_format 的格式可以变成这样:

  1. log_format new '$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A'
  2. '$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent';

这样之后就通过常见的 Linux 命令行工具进行分析了:

  • 查找访问频率最高的 URL 和次数:
    1. cat access.log | awk -F ‘^A’ ‘{print $10}’ | sort | uniq -c
  • 查找当前日志文件 500 错误的访问:
    1. cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’
  • 查找当前日志文件 500 错误的数量:
    1. cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | wc -l
  • 查找某一分钟内 500 错误访问的数量:
    1. cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | grep ’09:00’ | wc-l
  • 查找耗时超过 1s 的慢请求:
    1. tail -f access.log | awk -F ‘^A’ ‘{if($6>1) print $0}’
  • 假如只想查看某些位:
    1. tail -f access.log | awk -F ‘^A’ ‘{if($6>1) print $3″|”$4}’
  • 查找 502 错误最多的 URL:
    1. cat access.log | awk -F ‘^A’ ‘{if($5==502) print $11}’ | sort | uniq -c
  • 查找 200 空白页
    1. cat access.log | awk -F ‘^A’ ‘{if($5==200 && $8 < 100) print $3″|”$4″|”$11″|”$6}’
  • 查看实时日志数据流
    1. tail -f access.log | cat -e

    或者

    1. tail -f access.log | tr ‘^A’ ‘|’

总结

照着这个思路可以做很多其他分析,比如 UA 最多的访问;访问频率最高的 IP;请求耗时分析;请求返回包大小分析;等等。

这就是一个大型 Web 日志分析系统的原型,这样的格式也是非常方便进行后续大规模 batching 和 streaming 计算。

王金阁
王金阁
王金阁,7年网络营销运营推广经验。网络新闻媒体资源欢迎采购,云服务器、虚拟主机、独享虚拟主机、企业邮箱、成品小程序也接定制欢迎详聊。托管代运营带维护多种合作方式总有你满意的,欢迎合作。QQ:909580330(微信同号)

相关文章

2021年2月1日

为dede增加安卓客户端接口的基本流程

2021年2月1日

php生成xml写好header避免乱码的要点

2021年2月1日

dede助手小工具helper是如何载入的?

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

感谢支持 QQ909580330

网络媒体发稿找我,成品小程序价格优惠性价比高(预约、商城、点餐、外卖、展示、票务)
企业邮箱定制搭建

无需写代码建站 智能建站 智能站群

国内 香港 CN2 163 BGP云服务器

找博主更优惠QQ微信 909580330

最新文章

  • 0
    谁来关注可降解塑料废弃物回收与环保处置
    2021年3月3日
  • 0
    为dede增加安卓客户端接口的基本流程
    2021年2月1日
  • 0
    php生成xml写好header避免乱码的要点
    2021年2月1日
  • 0
    dede助手小工具helper是如何载入的?
    2021年2月1日
  • 0
    dedecms 评论引用的标签替换{quote}
    2021年2月1日

文章分类

  • app打包开发
  • Linux
  • mysql
  • PHP
  • SEO
  • wordpress
  • 前端工具
  • 前端开发
  • 小说大全
  • 工具
  • 未分类
  • 生活点滴
  • 系统运维
  • 网站建设
  • 网络安全
  • 网络宣发服务
  • 网络营销推广
  • 自媒体
  • 资源共享
  • 运维技术
  • 运营

最新标签

  • 黑马程序员
  • 黑链
  • 黑猫SEO
  • 黑帽SEO
  • 黑帽
  • 黑客分类
  • 黑客
  • 页面跳转
  • 页面类型
  • 页面
  • 韩剧
  • 降权
  • 长尾词
  • 锚文本
  • 锚
  • 链轮
  • 重复
  • 采集
  • 配置
  • 邮箱
  • 邮件
  • 逐浪CMS
  • 远程访问
  • 远程执行代码
  • 进程
  • 运营
  • 软文推广
  • 软件开发
  • 跳转适配
  • 路由器防蹭网
  • 路由器设置
  • 路由
  • 超级签名
  • 负载均衡
  • 谷歌
  • 诊断
  • 评论
  • 解密
  • 融资
  • 虚拟机
  • 虚拟内存
  • 虚拟主机
  • 营销
  • 自适应
  • 自定义字段

有料标签

Android apache backtrack CentOS css DDOS dedecms docker FFmpeg Google htaccess html html5 iOS JavaScript jquery linux MariaDB MySQL Nginx ONLYOFFICE PHP PR Python seo SQL Sublime URL wdcp WEB wordpress wordpress优化 Wordpress加速 人人商城 外链 安全 招聘 搜狗微信搜索 标签 深入浅出Docker 猎头 百度 百度算法 运营 黑客
©2013-2020 王金阁博客. 网络营销推广工作者的博客网站(SEO SEM ASO 信息流)备案号:皖ICP备19015551号-1
  • 王金阁博客
  • 云服务器
  • 虚拟主机
  • 小程序
  • 独立云虚拟主机
  • 软著办理快速下证
  • 小说家-小说txt分享