每天会有大量的 Rails log 信息产生出来,有的时候遇到 server 的一些问题,虽然有 newrelic 和 airbrake 的错误提示,但还需要到 log 里面去找问题,在几百 M 或者上 G 的 log 文件中定位问题着实很头疼。并且,有的时候是好几台 server 的日志都要一块看,效率非常差。
大家是如何管理你们的日志信息的?会把这些日志以什么样的形式整理起来方便查询和定位?
可以用dd
实现快速查找,先根据故障发生的时间定位关键的日志在整个日志文件中的大致位置,然后用 dd
输出这部分的日志再 grep 即可:
# 显示一个文件中从第 50G 个字节开始的长度为 1K 字节的内容
offset=$((50*1024*1024*1024-1))
length=1024
dd if=file_name bs=1 skip="$offset" count="$length" | grep regex
papertrail 的搜索不是很好用,而且数据量上去有点贵 尝试过 https://www.splunkstorm.com, 功能很强大但是使用起来有点复杂,最近又免费了,可以尝试一下 现在准备折腾 http://logstash.net,基于 Elasticsearch