lnav,一个高效软件
它是个啥?
简单说,就是一个专门在终端里看日志的“超级放大镜”。你平时调试程序的时候是不是这样:tail -f 看实时日志,grep 筛关键词,less 翻页看详情,还得同时盯着好几个窗口?lnav 把这堆活儿全包了,而且干得比你都顺手。
它牛在哪儿?
第一,能把不同日志混在一起按时间排好。这是它最骚的功能。你同时看 Nginx 日志、应用日志、系统日志,它会自动识别每条日志的时间戳,然后混在一起排好序。不用你自己切来切去对时间线,一眼就能看清前后因果关系。
第二,自动识别格式。什么 syslog、Apache、nginx、Java 日志、Docker 容器日志,它看一眼就知道怎么高亮。报错标红、警告标黄,一眼扫过去就能抓住重点。
第三,能直接用 SQL 查日志。你没听错,这玩意儿内置了一个 SQL 引擎。你可以敲 SELECT * FROM logs WHERE log_level = 'ERROR' 这种语句来精确筛选,比用 grep 瞎蒙准太多了。
第四,解压透明。压缩成 gz 的日志文件直接打开,不用先解压占空间。
上手难吗?
Mac 用户 brew install lnav,Linux 用包管理器直接装。装完之后,lnav /var/log/ 就进去了。界面是半图形化的,上下键翻页,tab 切窗口,q 退出,基本不用看文档就能用。
适合谁?
运维、后端开发、SRE,或者任何需要天天跟日志打架的人。有了它,排查线上问题至少能省一半时间,关键是能少掉不少头发。
夜雨聆风