Logstash
Rails
英文原文:
Logstasher - For awesome Rails logging
Rails日志
Rails的日志功能很烂,至少默认的日志是这样。我甚至看到一些gems,谢了很多没有预定义格式的垃圾内容。好的方面是,你可以修正/定制日志。事实上,你可以定义很多,可以有这样的日志:
这些很棒的日志里有什么?
- 超级快速的搜索后端Superfast search backend
- 用户界面更酷
- 可以增加自定义字段,比如用户名和自定义rails机制
- 合并多台服务器的日志
- 意外事件的Email通知
如何工作?
华丽的用户界面,超快的搜索,对于Rails日志变为可能,因为使用了:
Logstasher Gem
我已经在 README at Github 写过。请签出代码来了解使用/安装的细节
Logstash
现在它是日志系统的核心。它收集并存储日志。它对关注点有一个清晰的分离,基本上是:
- 输入 - 日志的源。有很多的元格式选项。我们对本地日志使用 file input,对远程日志使用lumberjack。
- 过滤器 - 你可能有想对输入日志应用的变换。用于消除或追加额外信息。由于logstasher已经发送整洁的日志,我们不适应任何过滤器,因此节省了处理开销。
- 输出 - 输出也有很多选项。我们将使用email和elastic-search输出。
输入、过滤器和输出选项的完整列表,可以在这里查看。
设置logstash
一旦logstash设置完成后,接下来需要做的就是配置输入源。如果rails程序位于同一台机器时,你可以跳过下面的lumberjack章节。
对于输出,我们使用内嵌的弹性搜索(elastic-search),因此不需做额外的设置。
Lumberjack
如果你的程序位于远程的服务器上,或者部署了多个应用服务器时,需要将日志传给logstash。要完成这个工作,lumberjack是个不错的选择,因为它是个非常快速、轻量级的工具并且占用极小的内存。同时还可加密日志,因此是极其的安全。Lumberjack会监视日志的改变,任何的变动,它都会将新的日志发送给logstash。
设置Lumberjack
- 我发现在SUSE上编译lumberjack是比较痛苦的。你自己可以用源代码编译一下试试,需要安装Go语言来编译。在这里有编译好的rpm和deb包,安装用 deb -i debfilename 或rpm -i rpmfilename命令。
- 将它设置为系统服务 - init.d脚本
- 设置配置文件 - sample config。在/etc/default/lumberjack创建配置文件。
当部署或切割日志时,最好重启一下lumberjack。
Lumberjack v2有了一个新的协议,我会对其研究一番并更新这篇文档。
Lumberjack使用私钥和SSL证书
Logstash和lumberjack可以用私钥和证书来加密传输中的日志。生成私钥、证书的命令在这。
Kibana
这是最轻松的部分,请看这。
当设置完所有的配置后,你就可以在Kibana中看到日志了。自己探索使用更强的搜索特性吧。你也可以编写自己的查询语句,例如要得到某个引发异常的IP的所有请求,只需在搜索栏中键入下面的语句:@fields.ip:"157.191.96.84" AND @tags:"exception"
扩展阅读
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
2KB翻译工作遵照
CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务