1. 主页 > 好文章

系统管理员必备!lnav工实现多日志文件滚动查看实战

有没有试过凌晨三点被报警电话吵醒,打开服务器发现几十个日志文件在轮番报错?这时候要是只会用tail -f挨个翻文件,怕是咖啡喝到天亮也找不到问题源头。今天咱们就聊聊这个让运维人效率翻倍的??多日志联查神器??——lnav,包你三分钟上手,五分钟精通。


一、为什么传统查日志方式像大海捞针?

先来算笔账:普通服务器每天产生的日志量少说几十MB,高峰期甚至能飙到几个GB。用grep+tail组合拳查错,就像拿着渔网在太平洋捞鱼——效率低不说,还容易漏掉关键线索。

举个例子,当Nginx访问日志和MySQL错误日志同时报错时,传统方法需要:

  1. 开两个终端窗口
  2. 分别执行tail -f命令
  3. 肉眼比对时间戳
  4. 手动拼凑事件链条

而用lnav只需一行命令:

bash复制
lnav /var/log/nginx/access.log /var/log/mysql/error.log

系统自动把两个日志按时间线合并展示,就像把监控录像调成了多机位同步模式。


二、三分钟极速安装手册

别被命令行工具吓到,安装lnav比点外卖还简单:

  1. ??Debian/Ubuntu党??:
bash复制
sudo apt update && sudo apt install lnav -y
  1. ??CentOS/RHEL派??:
bash复制
sudo yum install epel-release && sudo yum install lnav
  1. ??Mac用户??(是的,这货跨平台):
bash复制
brew install lnav

装完敲个lnav -V验证下版本,能看到类似「lnav 0.12.1」就是成功了。要是卡在权限问题,记住万能口诀——??sudo大法好??。


三、六个必杀技玩转多日志

1. ??时空穿梭术??(时间轴整合)

输入lnav /var/log/*瞬间加载所有日志,按T键调出??时间分布直方图??,哪里报错多一目了然。上周帮客户排查性能瓶颈,就是靠这个发现每天14:00的CPU飙高和定时任务强相关。

2. ??错误追踪弹射??

遇到报错别慌,连按两次e键,直接跳到下一个ERROR级别的日志。上次有个诡异的OOM异常,用这招10秒锁定到JVM堆内存泄露的位置,比看悬疑片还带劲。

3. ??SQL查日志??

这才是真·黑科技!按;调出SQL窗口,试试这个统计接口访问次数的操作:

sql复制
SELECT request_uri,COUNT(*) FROM access_log GROUP BY request_uri ORDER BY 2 DESC LIMIT 10

瞬间生成接口调用TOP10榜单,排查慢接口利器。

4. ??多文件彩虹标记??

在配置文件~/.lnav/formats/default/default-formats.json里给不同日志分配颜色。比如把MySQL错误日志设成红色,Nginx访问日志调成蓝色,排查时肉眼就能区分流量异常和数据库故障。

5. ??压缩包直接读??

面对历史日志压缩包不用解压,直接lnav -r /var/log/nginx/access.log.1.gz就能查看。上个月审计时发现某次攻击尝试,就是在半年前的gz包里找到的蛛丝马迹。

6. ??远程日志透视??

通过SSH直连跳板机查日志:

bash复制
lnav ssh://user@prod-server:/var/log/cluster/*.log

疫情期间在家办公全靠这招,比VPN连内网方便十倍。


四、真实翻车拯救案例

去年双十一大促,某电商APP支付接口突然瘫痪。当时日志显示:

  • Nginx返回502错误
  • Java应用抛出数据库连接超时
  • MySQL慢查询激增

用lnav三键操作破局:

  1. lnav /var/log/nginx/* /var/log/app/* /var/log/mysql/* 加载所有日志
  2. /502 搜索关键错误
  3. ;SELECT * FROM mysql_slow WHERE query_time > 5 揪出问题SQL

最终发现是促销开始瞬间,某个未优化的商品查询接口被疯狂调用。从报警到定位问题只用了8分钟,比原计划提前1小时恢复服务。


小编私房经验

用了三年lnav,总结出两条血泪教训:

  1. ??别在跳板机上直接查生产日志??——曾经手滑把测试环境的rm -rf命令粘贴到生产服务器,差点酿成事故。现在固定用lnav -n只读模式查日志。
  2. ??善用书签功能??——按m键标记关键日志行,按'键快速跳转。上次审计时给可疑IP访问记录打书签,后来证实就是攻击源地址。

工具终究是工具,真正值钱的是??通过日志联查培养系统化思维??的能力。就像老司机说的:查日志不是找错误,而是还原事件真相。下次遇到诡异故障,不妨先喝口水,打开lnav让数据自己讲故事。

本文由嘻道妙招独家原创,未经允许,严禁转载