例如我要从 NGINX 日志或者其它业务日志中搜索一个关键字 xxx ,如果你知道这个关键字所在的大致时间区间,例如今天上午的 10 点到今天上午的 11 点 11 分,那么你可以这么搜:
timecat -s "2016-04-05 10:00:00" -e "2016-04-05 11:11:00" access.log | grep "xxx"
-s 和-e 分别是时间区间的起始时间和终止时间,只要是通用的时间日期格式都能识别,例如"2016/Apr/05 10:00:00",或者直接一个时间戳"1459821600"等都可以。
为什么要做这么一个工具呢?配合线上运维工具能够很快地进行日志的关键字搜索,大大降低线上机器消耗的磁盘 IO 以及 CPU ,尤其是对动辄几个 G 的日志文件,定位速度都极其快。
日志搜索的方案很多,统一收集后跑任务去计算,或者用流式处理等都是可选方案。但是这个工具最大的优势在于即拿即用,没有额外的机器资源以及相关的其它运维需求。
对于创业公司早期(其实甚至到中期后期都是很好的选择之一),或者自己做项目有日志定位及搜索需求的,这个工具都十分给力。
唯一要求就是你的环境中装了 Python 2.7+(暂不支持 Python 3 )
地址:
https://github.com/fanfank/timecat
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/268696
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.