web_log_analyseWeb 故障排除与性能优化工具

联合创作 · 2023-09-27 03:43

web_log_analyse 是一个旨在基于 Web 日志进行故障排除和性能优化的工具,这不是一般所说的日志分析/统计解决方案,它不侧重于通常的 PV、UV 等展示,而是在指定时间段内提供细粒度(最小分钟级别)的异常定位和性能分析。

环境依赖:

    Python 3.4+

    pymongo-3.7.2+

    MongoDB-server 3.4+

功能

  1. 提供统一的日志分析入口:经由此入口,可查看站点在所有server上产生的日志的汇总分析;亦可根据时间段server两个维度进行过滤
  2. 支持对 request_uriipresponse_code 三大类进行分析;每一类又基于请求数响应大小响应时间三个维度进行分析。另外不同子项又各有特点
  3. request_uri 分析能直观展示哪类请求数量多、哪类请求耗时多、哪类请求占流量;另外可展示某一类请求在不同时间粒度里(minute, ten_min, hour, day)各指标随时间的分布变化;也可以针对某一 uri_abs 分析其不同 args_abs 各指标的分布
  4. IP 分析将所有请求分为3种来源(from_cdn/proxy, from_reverse_proxy, from_client_directly),三种来源各自展示其访问量前 N 的 IP 地址;并且可展示某一 IP 访问的各指标随时间的分布;也可针对某一 IP 分析其产生的不同 uri_abs 各指标的分布

特点

  1. 核心思想: 对request_uri进行抽象归类,将其中变化的部分以 “*” 表示,这样留下不变的部分就能代表具体的一类请求。实际上是换一种方式看待日志,从 “以具体的一行日志文本作为最小分析单位” 抽象上升到 “以某一功能点,某一接口或某一模块最为最小分析单位”
  2. 兼容plaintext和json格式的日志内容
  3. 配置方便,不需要写正则。只要将nginx中定义的log_format复制到config文件中即可
  4. 通过4分位数概念以实现对响应时间响应大小更准确的描述,因为对于日志中的响应时间,算数平均值的参考意义不大
  5. 支持定制抽象规则,可灵活指定请求中的某些部分是否要抽象处理以及该如何抽象处理
  6. 高效,本着谁产生的日志谁处理的思想,日志分析脚本log_analyse要在web服务器上定时运行(有点类似分布式),因而log_analyse的高效率低资源也是重中之重。经测试,在笔者的服务器上(磁盘:3*7200rpm RAID5,千兆局域网),处理速度在20000行/s~30000行/s之间
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报