共计 1672 个字符,预计需要花费 5 分钟才能阅读完成。
【导语】:一个格式化 Nginx 日志,可疾速浏览、查看 Nginx 日志的工具。
简介
Rhit 能够从规范文件夹中读取 Nginx 的日志文件(gzipped 的压缩文件也能够),并进行剖析统计,在控制台中以可视化的表格模式展现,并且不会产生任何多余的临时文件或数据。
能够依照日期、响应值、申请起源等进行过滤匹配,并进行剖析,Rhit 具备很高的效率,每秒能够解决百万行日志数据。
以下是在一月份的日志中查找状态码为 1xx、2xx 的后果:
我的项目地址是:
https://github.com/Canop/rhit
装置
- 间接下载应用编译好的二进制文件,然而须要确保 shell 可能找到 rhit 二进制文件,一个比拟容易的解决形式就是把它放到 /usr/local/bin 目录下,并且为它增加可执行权限。
chmod +x rhit
// 下载地址
https://dystroy.org/rhit/download
- 从 crates.io 装置,依赖 Rust 环境,应用以下命令装置:
cargo install rhit
- 源码装置,依赖 Rust 环境,将 github 源码 clone 之后,进入到 rhit 文件夹,运行以下命令:
cargo install --path .
显示字段
rhit 能够主动关上默认目录下的 nginx 日志文件,也能够在命令行参数中指定日志门路:
rhit my/archived/logs
nginx 常见的日志行是这样的:
178.133.125.122 - - [21/Jan/2021:05:49:52 +0000] "HEAD /broot/download/x86_64-pc-windows-gnu/broot.exe HTTP/1.1" 200 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
它由几个字段组成:日期、近程 IP 地址、门路、发送的字节等。rhit 能够执行对表格进行排序的字段列表,如果未指定,默认依照日期、状态码、起源和门路来显示,如果要制订多个字段,应用逗号进行宰割,如 -f date,status;显示所有字段,应用 -f all。
- 基于日期。应用 –field date,或者缩写为 -f date。默认状况下,条形图的长度基于命中数量进行统计,也能够批改排序键以基于发送字节数进行统计。
- 基于 IP。默认状况下不显示近程 IP,能够应用 rhit -f ip 进行显示。
- 基于申请办法。默认不显示 HTTP 申请办法,能够应用 rhit -f method 进行显示。
- 基于门路。命令为 rhit -f path
- 基于 Referer。命令为 rhit -f ref
- 基于状态码。命令为 rhit -f status
筛选
Rhit 提供了一些过滤器,用于筛选后果列表,展现本人想看到或者不想看到的一些数据。
- 按日期筛选。准确到天,日期格局是年 / 月 / 日,如筛选 2021/2/15 到 2021/2/20 的数据,也能够筛选大于某个工夫、小于某个工夫或不蕴含某个工夫(应用 ’>’,’\<‘,’\!’ 符号):
- 按近程 IP 筛选。参数为 -i,筛选特定的 IP,或者排除某个特定的 IP(应用 ’\!’ 符号)。
- 按申请办法筛选。参数为 -m,筛选特定办法,或者排除特定的办法。
- 按申请门路筛选,参数为 -p,能够准确匹配,也能够应用正则表达式(例如所有门路均以 ”download” 结尾且以 ”exe”:结尾,参数为 -p ‘download.*exe$’):
- 按 Referer 筛选。参数为 -r,与按门路筛选的语法统一:
- 按状态码筛选。参数为 -s,筛选特定状态码,或者排除特定的状态码。
- 组合筛选。以上形式能够任意组合。
排序键
默认状况下,所有表都依照 hits 进行排序,这就是排序键,排序键的所有值都以粉红色显示,包含直方图。如果对发送字节数更感兴趣,能够将排序键批改为 bytes,应用 -k b 进行更改:
开源前哨
日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。
正文完