0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

可快速阅读、查看Nginx日志的工具Rhit

Linux爱好者 来源:开源前哨 作者:开源前哨 2021-04-04 18:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【导语】:一个格式化 Nginx 日志,可快速阅读、查看 Nginx 日志的工具。

简介

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

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

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

6d59dc34-8d80-11eb-8b86-12bb97331649.png

安装

直接下载使用编译好的二进制文件,但是需要确保shell能够找到rhit二进制文件,一个比较容易的处理方式就是把它放到/usr/local/bin目录下,并且为它添加可执行权限。

chmod +x rhit

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

6d7a8204-8d80-11eb-8b86-12bb97331649.png

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

6d9fddec-8d80-11eb-8b86-12bb97331649.png

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

6dde7624-8d80-11eb-8b86-12bb97331649.png

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

6e011a94-8d80-11eb-8b86-12bb97331649.png

基于Referer。命令为rhit -f ref

6e3b15aa-8d80-11eb-8b86-12bb97331649.png

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

6e750616-8d80-11eb-8b86-12bb97331649.png

筛选

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

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

6eade396-8d80-11eb-8b86-12bb97331649.png

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

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

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

6ee1c2ba-8d80-11eb-8b86-12bb97331649.png

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

6f16c406-8d80-11eb-8b86-12bb97331649.png

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

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

排序键

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

6f6d39c6-8d80-11eb-8b86-12bb97331649.png

原文标题:Rhit:高效可视化 Nginx 日志查看工具,每秒处理百万行日志数据

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7348

    浏览量

    95016
  • nginx
    +关注

    关注

    0

    文章

    194

    浏览量

    13209

原文标题:Rhit:高效可视化 Nginx 日志查看工具,每秒处理百万行日志数据

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Kubernetes环境下容器日志的正确查看方式

    在容器化环境中,日志收集和查看是运维工程师日常工作中最频繁的操作之一。很多运维工程师习惯性地进入容器内部使用 tail -f 命令查看日志,这种方式在小规模环境下勉强可用,但当容器数量
    的头像 发表于 04-21 11:41 172次阅读

    Nginx日志分析命令实践和常见问题排查思路

    日常运维工作中,日志分析是排查问题最直接的手段。Nginx 作为入口层代理,几乎所有请求都要经过它。当网站出现响应慢、500 错误、502 网关超时、限流失效等问题时,第一反应应该是查 Nginx
    的头像 发表于 04-15 14:12 200次阅读

    NineData 社区版的慢SQL分析,比查看日志+看EXPLAIN适合中小团队

    本文探讨 NineData 社区版在 MySQL 慢 SQL 场景对中小团队的适用性。与 “查看日志 + 看 EXPLAIN” 传统方式不同,它将慢 SQL 按模板聚合,能从大盘、模板、诊断等多维
    的头像 发表于 03-17 14:07 118次阅读
    NineData 社区版的慢SQL分析,比<b class='flag-5'>查看</b><b class='flag-5'>日志</b>+看EXPLAIN适合中小团队

    RT-Thread ULOG: 创建多个文件后端并保存不同日志方法 | 技术集结

    目录前言使用场景实现功能具体操作1前言在项目开发中需要使用到日志功能来调试和查看问题。有些问题并不会在我们实时查看的时候发生,而是在你上个厕所的功夫可能就发生了。如果上位机的缓冲区不够大,可能错误
    的头像 发表于 12-15 19:22 5195次阅读
    RT-Thread ULOG: 创建多个文件后端并保存不同<b class='flag-5'>日志</b>方法 | 技术集结

    jlink连接mcu,查看日志 rtthread运行不正常怎么解决?

    使用jlink连接mcu查看日志,偶发重新初始化,部分线程未退出,变量错位。 串口1的线程是在main最后面。 未见初始化打印,就已经发送数据了。并且发送的数据不对。感觉是重新初始化时,串口1线程未退出
    发表于 09-29 10:38

    电商API日志分析的实用工具

    、优化用户体验、检测异常活动,并提升整体业务效率。然而,海量日志数据的管理和分析需要高效的工具支持。本文将介绍几种实用的电商API日志分析工具,并逐步解释其应用方法,帮助您
    的头像 发表于 07-23 15:50 777次阅读
    电商API<b class='flag-5'>日志</b>分析的实用<b class='flag-5'>工具</b>

    harmony-utils之LogUtil,日志工具

    harmony-utils之LogUtil,日志工具类 harmony-utils 简介与说明 harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具
    的头像 发表于 07-03 18:12 594次阅读

    什么是 K8S,如何使用 K8S

    /RHEL/Ubuntu 等。 硬件:CPU、内存、硬盘需满足最低要求。 网络:节点间互通,访问外网拉取镜像。 部署工具: kubeadm:官方工具,通过 kubeadm init 初始化
    发表于 06-25 06:45

    Nginx配置终极指南

    Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热
    的头像 发表于 06-18 15:56 1201次阅读
    <b class='flag-5'>Nginx</b>配置终极指南

    Nginx性能优化终极指南

    而worker 进程数默认为 1 。单进程最大连接数为1024。如下图(打开Nginx目录下的/conf/nginx.conf 文档),现在我们来对这两个数值进行调优
    的头像 发表于 06-16 13:44 1550次阅读
    <b class='flag-5'>Nginx</b>性能优化终极指南

    请问stm32cubeide中如何查看版本日志

    stm32cubeide中如何查看版本日志?看能支持哪些芯片型号?
    发表于 06-09 07:44

    详解journalctl日志管理

    systemd 提供了自己的日志系统(logging system),称为 journal。使用 systemd 日志,无需额外安装日志服务(syslog)。
    的头像 发表于 06-05 17:22 1922次阅读
    详解journalctl<b class='flag-5'>日志</b>管理

    怎样才能安全地按住ctrc +c日志阅读器然后才能停止并重新启动日志

    的读取过程,我将无法在 FX3 中操作任何东西,所有命令都不起作用,所有控件写入/读取都将不起作用 以下是两个函数 我怎样才能安全地按住 ctrc +c 我的日志阅读器然后才能停止并重新启动日志
    发表于 05-27 07:11

    Nginx核心功能深度解析

    Nginx核心功能深度解析
    的头像 发表于 05-09 10:50 1009次阅读

    请问stm32cubeide中如何查看版本日志

    stm32cubeide中如何查看版本日志?看能支持哪些芯片型号?
    发表于 04-27 08:36