部署 你们是如何管理生产环境中的 Rails log 信息的?

iamroody · 2013年11月22日 · 最后由 iamroody 回复于 2013年11月25日 · 4739 次阅读

每天会有大量的 Rails log 信息产生出来,有的时候遇到 server 的一些问题,虽然有 newrelic 和 airbrake 的错误提示,但还需要到 log 里面去找问题,在几百 M 或者上 G 的 log 文件中定位问题着实很头疼。并且,有的时候是好几台 server 的日志都要一块看,效率非常差。

大家是如何管理你们的日志信息的?会把这些日志以什么样的形式整理起来方便查询和定位?

#1 楼 @ZombieCoder grep 慢啊,有没有好的方式把这些日志规格化到数据库或者什么系统中,能关键字查询,归类什么的。

shitf + g & hjkl

可以用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 才免费 100M

exception_log

#9 楼 @iamroody 那就只能 grep 了,所以这也是为什么 exception 在 production 环境要在一行显示

papertrail 的搜索不是很好用,而且数据量上去有点贵 尝试过 https://www.splunkstorm.com, 功能很强大但是使用起来有点复杂,最近又免费了,可以尝试一下 现在准备折腾 http://logstash.net,基于 Elasticsearch

不知道 logstash 可以帮忙不 http://logstash.net/

logstash 看上去不错

#11 楼 @allenwei logstash 看着不错,准备尝试一下~

需要 登录 后方可回复, 如果你还没有账号请 注册新账号