作为一名IT运维人员,你是否经历过以下场景?
传统工具(如 grep
、cat
、tail
)虽能完成基础操作,但缺乏智能化分析和交互式体验。今天,我们将聚焦一款专为运维设计的开源日志分析神器——lnav,并通过CentOS系统实战部署,助你高效解决日志分析难题!
1.1 lnav简介
lnav
(Log File Navigator)是一款开源命令行日志分析工具,由C++编写,支持跨平台(Linux/macOS)。它专为运维人员设计,可实时解析、查询和可视化日志文件,尤其擅长处理结构化日志(如JSON、Apache日志、syslog)。
官网:https://github.com/tstack/lnav
1.2 核心优势
tail -f
),即时发现异常。 通过 lnav /var/log/*.log
命令,可同时监控多个日志文件,新增内容会自动刷新显示。
过滤关键字:输入 /error
即可筛选包含 "error" 的行。
SQL-like查询:输入 select * where thread = 'main'
,精准定位特定线程日志。
字段提取:对JSON日志,直接通过 .field_name
访问字段值。
自动识别IP地址、HTTP状态码、Java异常栈等,并高亮显示。
支持正则表达式定义自定义模式(如匹配特定业务ID)。
直方图:统计日志中HTTP状态码分布(例如:404、500错误占比)。
时间线:以时间轴形式展示日志事件密度,快速定位异常时段。
本次安装基于Centos7进行安装演示,Centos7系统安装Inav非常简单只需要简单两个步骤就可以轻松搞定。
安装 EPEL 仓库
sudo yum install epel-release
执行安装Inav
sudo yum install lnav
然后输入y执行安装动作,安装成功之后效果如下:
安装过程非常快大概半分钟内就可以安装成功。
验证安装
确认是否安装成功可以直接执行lnav命令,如果执行该命令后会显示一个使用帮助或让你选择要查看的日志文件。
lnav
目前lnav安装工作已经完成了。
日志浏览快捷键
【?】 查看帮助信息
【g】 快速跳到文件的顶部
【G】 快速跳到文件的尾部
【i】 统计当前日志有多少数量的ERROR和WARNING,按【q】退出统计
【e】 快速跳到下一个ERROR行
【E】 快速跳到上一个ERROR行
【w】 快速跳到下一个WARNING行
【W】 快速跳到上一个WARNING行
【n】 快速跳到下一个搜索命中关键行
【N】 快速跳到上一个搜索命中关键行
【f】 快速跳到下一个文件
【F】 快速跳到上一个文件
【空格】 翻到下一页
【b】 翻到上一页
【向上箭头】 上一行翻页
【向下箭头】 下一行翻页
【p】 结构化日志行
假设 /var/log/nginx/access.log
中存在大量404错误:
启动lnav:
lnav /var/log/nginx/access.log
输入查询:
首先输入 / 进入搜索模式,然后这里执行搜索
这里输入 min.css 输入后系统会进行高亮显示
输入"i"进入直方图效果
springboot应用nohup.out日志分析,首先进入主界面
lnav /mnt/markdown/nohup.out
接着输入“i”进入直方图视图效果如下:
查看压缩日志文件
可以直接查看压缩日志文件,这个非常方便省去了解压后的麻烦。具体操作如下:
执行命令:
lnav /var/log/nginx/access.log-20250730.gz
一次性查询多个日志文件
直接使用空格符号分割就行了。具体执行命令如下:
lnav /var/log/messages /var/log/nginx/access.log-20250730.gz
以上内容是关于Lnav日志分析工具的介绍,另外还有很多更加使用的用法,大家感兴趣可以自行研究。如果对大家使用过程中有问题的话,欢迎评论区沟通交流!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。