kjb文件 解析_在Linux上使用lnav监控和分析Apache日志文件工具

article/2025/10/13 16:44:04

请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

本文主要讲解如何在Linux上使用lnav监控和分析Apache日志文件,

在本文中,我们将解释如何安装和使用lnav,这是一种高级日志文件查看器。使用lnav,您将能够同时观察几种类型的日志。

2. 在Linux中安装和启动lnav

要安装lnav,请使用你的Linux发行版软件包管理器安装。基于Debian发行版

aptitude install lnav

基于红帽发行版

yum install epel-release lnav

安装完成后,启动lnav,后面跟着要检查的日志所在目录的绝对路径。因为这通常是/var/log,我们这样做:

lnav /var/log/httpd

CentOS 7中使用lnav监控Apache日志

d4f3950f322cd8671fc037c0f7f56ae4.png

CentOS 7中使用lnav监控Apache日志

3. 使用选项和热键定制化输出内容

以下是关于lnav命令的快捷操作键,提升工作效率。e 或者 E 跳到下一个或者前一个错误信息。w 或者 W 跳到下一个或者前一个告警信息。b 或者 Backspace移动到前一页。空格移动到下一页。g 或者G 移动顶部或底部。

当日志被轮替时,旧文件可能会被压缩(或不压缩),这取决于在logrotate配置文件中指定的设置。要在输出中包含压缩文件,按如下方式启动lnav:

lnav -r /var/log/httpd

如果你想进一步了解lnav的运行方式,你可以启动程序,在-d选项后面加上一个文件名,调试信息将被写入该文件名,就像这样:

lnav /var/log/httpd -d lnav.txt

在本例中,当lnav启动时生成的调试信息将被写入到当前工作目录中名为lnav.txt的文件中。

该文件的前几行如下图所示:

420d5b1832b49f0ccfd02311ec7cddbe.png

lnav Debug信息

高亮显示的文本表明lnav加载了默认格式文件,更具体地说,加载了用于解析Apache访问日志的access_log格式。此外,lnav允许解析每个输出行,从而使输出信息更容易可视化和理解。

要使用此功能,请启动程序并选择要解析的行。选中的行总是窗口顶部的行。然后按p,你应该会看到以下结果:

17227c1c7ed777655970288ba3dfeee7.png

使用lnav查看Apache日志

要回到正常模式,再次按p。

现在,如果您想按日期和时间查看日志摘要,请按i。例如,高亮的显示的文本表明,在4月10日(周一)晚上10点到11点之间,有37个HTTP请求,其中14个请求导致错误。

3b27977abf0ed8ea89d0103cf5530540.png

高亮显示关键字

或者,您也可以通过输入分号和编写标准查询来使用内置的SQL功能。例如,做:

;.schema

以查看数据库中的可用表。在确定正确的数据库表(在我们的示例中是access_log)之后,我们按q,然后使用以下查询返回关于来自195.154.230.31的请求的所有可用信息:

;SELECT * FROM access_log WHERE c_ip='195.154.230.31'
4b5e9ca1578d9fbdf3374106096312f2.png

查询特定关键字的信息


注意,我们还可以使用log_time来过滤结果。关键是,结合SQL,你就可以用lnav做任何事情。

4. Apache默认日志格式

许多日志格式在默认情况下是用lnav加载的,因此无需我们的干预就可以进行解析。您可以在官方文档的日志格式部分查看该列表。默认的格式在这里指定~/.lnav/formats/default/default-formats.json.sample,其它可以使用.json扩展添加到~/.lnav/formats,

然而,编辑这些文件需要对JSON (Javascript对象表示法)和PCRE(与perl兼容的正则表达式)库有一定的了解。

那么为什么lnav不显示Apache错误日志文件呢?原因是这些日志与现有格式文件中的任何正则表达式不匹配,因此被视为常规文本文件(即没有给定日志格式的文件)。

5. 总结

正如前面提到的,只要您对JSON和PCRE有一定的了解,就可以创建自己的格式。例如,如果您定义了自定义Apache日志,这将非常方便。

尽管我们使用Apache访问日志来演示如何使用lnav,但请记住,还有其他几种类型的日志可以使用这个工具来查看和解析。如果该工具不能识别特定的日志,您可以创建其他格式并按照这里提供的指示安装它们。

如果你有更好的工具分享,请留言。


http://chatgpt.dhexx.cn/article/4OgW2seT.shtml

相关文章

Kettle【实践 02】txt类型文件分类导入后执行SQL进行数据类型转换并入库(完整流程实例云资源分享:包含sql+kjb+ktr+测试文件)

资源链接在文章末尾,包含文件: 1.需求说明 一个与行政区划边界数据相关的应用,行政区划数据从水经微图下载而来,需要把这些数据导入到数据库 GreenPlum,并规范数据格式。源数据包含两类: 区域_点.txt(区域名称和中心点坐标)区域_面.txt(区域名称和区域边界点坐标)…

kjb文件 解析_批量修改MP3文件信息

前两天本人在整理自己的歌单时(题外话,本人是一个热衷音乐的程序员噢,哈哈),发现之前下载的很多MP3文件里的歌手,标题等信息对不上,很多都是错的。对于患有“强迫症”的本人来说,当然…

Kettle【实践 01】Linux环境下使用Azkaban定时调用Kettle的KJB或KTR脚本实现自动化数据处理(完整流程实例分享:包含sql+ktr+shell+flow相关文件云资源)

资源链接在文章末尾,包含文件: 1. 说明 Kettle 的 KJB 或 KTR 调用使用的 shell 脚本,小伙伴可能会想,可以用 Linux 的 crontab 进行任务的调度啊,为什么需要 Azkaban 这个批量工作流任务调度器呢?原因是,如果出现调度任务的依赖关系,比如数据抽取的任务执行结束后调…

linux运行ktr文件,Linux下用命令來執行kettle文件資源庫的文件ktr與kjb的方法

1. 准備工作 一個簡單的job,一個簡單的trans。 trans:讀取download目錄下的所有文件名,輸出為文件。【界面情況下測試成功】 成功生成目標文件: job:創建文件。【界面模式測試執行成功】 執行結果: 把界面執行測試結果文件刪除,以免影響觀察。 2. linux環境以命令行方式…

用window调用kjb和ktr

1. 运行cmd,进入kettle的目录cd C:\soft\kettle\data-integration 2. 运行start pan.bat命令 Pan—转换执行器(命令行方式),一般在自动调度时借助此命令调用调试成功的转换(transform) 3. 弹出新的cmd窗口 4. 运行kitchen.bat,弹…

spring boot 整合kettle调用ktr与kjb文件

前言 在积累的过程中要学会思考,才能成长。 1.导入jar包 新建一个spring boot项目后,为了使整合的项目正常运行需要导入kettle相应的jar包,我所用kettle的版本为8.20。使用的jar包如下图所示(这些jar包可以在kettle的lib目录下…

linux kettle命令,Linux下用命令来执行kettle文件资源库的文件ktr与kjb的方法

1. 准备工作 一个简单的job,一个简单的trans。 trans:读取download目录下的所有文件名,输出为文件。【界面情况下测试成功】 成功生成目标文件: job:创建文件。【界面模式测试执行成功】 执行结果: 把界面执行测试结果文件删除,以免影响观察。 2. linux环境以命令行方式…

Kettle【实践 04】Java环境实现KJB和KTR脚本文件执行v9版本9.0.0.0-423相关依赖说明(云资源分享:依赖包+kjb+ktr+测试源码)

资源链接在文章末尾,包含文件: test.job 和 test.ktr 都是简单的创建一个文件,目的是能够快速看到执行结果: 1.需求说明 Kettle 是用 Java 开发的,有些时候编写的 KJB 或者 KTR 脚本会实现特定的功能,比如从一个表导数据到另一个表等等,如果想要在 Java 项目中使用这些…

实战——Linux定时执行Kettle的kjb文件

公司有很多业务使用了Kettle来抽取数据,Kettle比较强大,它自身就支持定时任务执行,操作步骤如下: 设置kjb文件 使用spoon编写好kettle服务 设置定时任务 设置具体的定时任务 设置完成后,保存即可。 设置定时启动&am…

Spoon-kjb

SQL脚本 如果脚本连接的是Oracle数据库,SQL中就不能使用变量,SQL语句也无需用分号结尾(也不能以分号结尾,否则会报错无效字符)。 如果脚本连接的是Hive数据库,SQL语句可以用分号结尾。SQL中可以使用变量&am…

kjb文件 解析_NVH原始数据文件如何读取 Part2

“前一篇文章介绍了NVH数采系统记录的原始文件常见的几种数据格式。本篇将介绍怎样找到具体的数据位置并还原它,从而实现编程直接读取原始文件的目的。” 01 — 画出整体数据 前一篇文章提到:数采系统记录的原始数据包含两部分:ASCII码明文和…

Java调用kjb文件

目录 一、kjb和ktr文件创建 kjb文件 ktr文件 关联kjb和ktr 变量信息 二、 Java代码调用kjb 引包 放入kjb和ktr文件 三、代码调用 定时任务 一、kjb和ktr文件创建 kjb文件 首先先新建一个Job,如下图所示,这样就新建了一个kjb文件,即…

SpringDataJPA(5)jpql查询

JPQL全称Java Persistence Query Language 这是JPA提供的复杂查询 sql:查询的是表和表中的字段 jpql:查询的是实体类和类中的属性 jpql和sql语句的语法相似 进行sql查询的步骤 1.创建query查询对象 2.对参数进行赋值 3.查询,并得到返回结果…

JPA的查询语言JPQL

JPA的查询语言(JPQL)是一种和SQL非常类似的中间性和对象化查询语言。它可以被编译成不同的底层数据库能接受的SQL,从而屏蔽不同数据库的差异,确保用JPQL查询语言编写的代码可在不同的数据库上运行。比起EJB 2.1的查询语言,EJB3可以运行期构造…

JPQL语句

JPQL语言 JPQL语言,即 Java Persistence Query Language 的简称。JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。 JPQL语言的语句可以是 select 语句、upda…

jpa之jpql查询

JPQL介绍 JPQL语言,即 Java Persistence Query Language 的简称。JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。如果会hibernate的hql查询,那…

SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

上一篇介绍了入门基础篇SpringDataJPA访问数据库。本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询、部分字段映射、分页等。本文尽量以简单的建模与代码进行展示操作,文章比较长,包含查询的方方面面。如果能耐心看完这篇文…

JPA之JPQL

文章目录 什么是JPQL?JPQL怎么用?JPQL的查询demoJPQL的占位符与入参问题修改demo删除demo插入demo 什么是JPQL? 所谓JPQL,就是Java Persistence Query Language的缩写,也就是java持久化查询语言.JPQL是一种可移植的查询语言&am…

JPQL-Query查询实例详解

前面学习了JPQL语言和Query接口。这里学习一下如果通过JPQL和Query接口进行数据的查询、更新和删除。 【1】普通查询 首先说明一下FROM子句和Select…FROM。 from 子句是查询语句的必选子句。 Select 用来指定查询返回的结果实体或实体的某些属性。 From 子句声明查询源实体…

JPQL和SQL的比较

前言 在JAVA EE中,JPQL是专门为Java 应用程序访问和导航实体实例设计的。Java Presistence Query Language(JPQL),java持久性查询语言。它是JPA规范的重要组成部分,其实它就是一种查询语言,语法类似于SQL语法,但是有着…