lnav, 不需要服务端,不需要设置,仍然功能强大到没有朋友。
速度与性能
lnav是一个可以运行在终端上的日志分析工具。功能非常强大,如果grep和tail等命令无法满足你的需求,或许你可以尝试一下lnav。
lnav的官方仓库是https://github.com/tstack/lnav,在mac上可以使用 brew install lnav
命令安装这个命令。
在我的4C8G的Macbook Pro上,打开一个2.8G的日志文件到渲染出现,需要花费约40s,平均每秒载入超过70MB。载入日志和渲染时,使用了接近100%的CPU。渲染完毕,使用1.2G的内存空间。
总之呢,这个工具载入日志的速度很快。但是最好不要再生产环境上使用这个命令载入过大的日志文件,否则可能造成系统资源消耗太大的问题。
在载入2.8G的日志文件后(3200多万行),过滤时显得非常卡顿,但是查看日志并不卡顿。
在lnav的搜索关键字,下次打开其他日志时,lnav会自动搜索这个关键词。这是它的Session记录功能,可以使用Ctrl+R重置Session。
lnav的特点
- 语法高亮
- 各种过滤条件
- 多关键词过滤
- 各种快捷跳转
- 自带统计和可视化功能,比如使用条形图展示单位时间内的报错和日志数量
- 自动日志格式检查。支持很多种日志格式
- 能够按照时间去过滤日志
- TAB自动补全
- 实时操作
- 支持SQL语法查日志
- 支持文件导出成其他格式
- 支持直接打开tar.gz等压缩后的日志文件
- 支持很多快捷键
x下面是按天的日志统计,灰色是普通日志,黄色是告警日志,红色的错误日志。三种颜色叠加的长度就是总日志。时间跨度单位也是可以调节的。最大跨度是一天,最短跨度是1秒。
仍然是日志格式
自动日志格式检测
- 系统日志
- Web服务器访问日志
- 报错日志
- 等等
过滤
- 可以设置多个过滤规则
时间线过滤
- 精确时间的日志
- 上个小时,下个小时
- 上一分钟,下一分钟
能够按照时间去追踪日志
按照时间周期统计
- 统计每秒出现的错误,告警和总日志的量
语法高亮
Tab键自动补全
参考
- https://lnav.readthedocs.io/en/latest/
- 如果你更喜欢GUI工具,那也可以试试https://github.com/nickbnf/glogg
后记
最近因为工作需要,每天都会去排查很多的日志文件。我也曾想过装ELK之类的工具,但是我收到是文件。日志文件要转存到ELK中也要花功夫。另外ELK也是非常耗费资源的。ELK部署到一半我就果断放弃了。
与其南辕北辙,不如回归本质。找些命令行的小工具直接分析日志文件。