Rhit高效可视化Nginx日志查看工具


Posted in Servers onNovember 01, 2021

简介

Rhit 可以从标准文件夹中读取 Nginx 的日志文件(gzipped 的压缩文件也可以),并进行分析统计,在控制台中以可视化的表格形式展示,并且不会产生任何多余的临时文件或数据。

可以按照日期、响应值、请求来源等进行过滤匹配,并进行分析,Rhit 具有很高的效率,每秒可以处理百万行日志数据。

以下是在一月份的日志中查找状态码为 1xx、2xx 的结果:

Rhit高效可视化Nginx日志查看工具

项目地址是:

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。默认情况下,条形图的长度基于命中数量进行统计,也可以修改排序键以基于发送字节数进行统计。

Rhit高效可视化Nginx日志查看工具

基于IP。默认情况下不显示远程IP,可以使用rhit -f ip进行显示。

Rhit高效可视化Nginx日志查看工具

基于请求方法。默认不显示HTTP请求方法,可以使用rhit -f method进行显示。

Rhit高效可视化Nginx日志查看工具

基于路径。命令为rhit -f path

Rhit高效可视化Nginx日志查看工具

基于Referer。命令为rhit -f ref

Rhit高效可视化Nginx日志查看工具

基于状态码。命令为rhit -f status

Rhit高效可视化Nginx日志查看工具

筛选

Rhit提供了一些过滤器,用于筛选结果列表,展示自己想看到或者不想看到的一些数据。

按日期筛选。精确到天,日期格式是年/月/日,如筛选2021/2/15到2021/2/20的数据,也可以筛选大于某个时间、小于某个时间或不包含某个时间(使用'>','<','!'符号):

Rhit高效可视化Nginx日志查看工具

按远程IP筛选。参数为-i,筛选特定的IP,或者排除某个特定的IP(使用'!'符号)。

按请求方法筛选。参数为-m,筛选特定方法,或者排除特定的方法。

按请求路径筛选,参数为-p,可以精确匹配,也可以使用正则表达式(例如所有路径均以"download"开头且以"exe":结尾,参数为 -p 'download.*exe$'):

Rhit高效可视化Nginx日志查看工具

按Referer筛选。参数为-r,与按路径筛选的语法一致:

Rhit高效可视化Nginx日志查看工具

按状态码筛选。参数为-s,筛选特定状态码,或者排除特定的状态码。

组合筛选。以上方式可以任意组合。

排序键

默认情况下,所有表都按照hits进行排序,这就是排序键,排序键的所有值都以粉红色显示,包括直方图。如果对发送字节数更感兴趣,可以将排序键修改为bytes,使用-k b进行更改:

Rhit高效可视化Nginx日志查看工具

到此这篇关于Rhit高效可视化Nginx日志查看工具的文章就介绍到这了,更多相关Rhit Nginx日志查看工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的rewrite模块详解
Mar 31 Servers
Nginx配置SSL证书出错解决方案
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
nginx简单配置多个server的方法
Mar 31 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
May 11 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
Nginx反向代理、重定向
Apr 13 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
Aug 14 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 Servers
源码安装apache脚本部署过程详解
Sep 23 Servers
Nginx+Tomcat负载均衡集群的实现示例
Nginx反向代理学习实例教程
使用Nginx搭载rtmp直播服务器的方法
Oct 16 #Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 #Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 #Servers
Nginx进程调度问题详解
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 #Servers
You might like
PHP 面向对象详解
2012/09/13 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php显示页码分页类的封装
2017/06/08 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
javascript实用方法总结
2015/02/06 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
纯javascript版日历控件
2016/11/24 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
python实现名片管理器的示例代码
2019/12/17 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
np.random.seed() 的使用详解
2020/01/14 Python
Python关于反射的实例代码分享
2020/02/20 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
文员自我评价怎么写
2013/09/19 职场文书
英语硕士生求职简历的自我评价
2013/10/15 职场文书
党风廉设责任书
2014/04/16 职场文书
大学英语专业求职信
2014/06/21 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
庆七一主持词
2015/06/29 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js