我想为我正在考虑的集中式日志记录项目提供一些设计建议。我有许多组件在各种服务器上生成日志。Apache Flume 看起来像是流式传输到中央日志服务器的明智选择,最有可能进入弹性搜索实例以进行查询和分析。
这是我的问题:我想提供一个脚本引擎来监听到达中央服务器的日志事件流。作为 Flume 中的拦截器,或者作为 elasticsearch 的插件,或者完全其他的东西,这样做是否有意义?
我想为我正在考虑的集中式日志记录项目提供一些设计建议。我有许多组件在各种服务器上生成日志。Apache Flume 看起来像是流式传输到中央日志服务器的明智选择,最有可能进入弹性搜索实例以进行查询和分析。
这是我的问题:我想提供一个脚本引擎来监听到达中央服务器的日志事件流。作为 Flume 中的拦截器,或者作为 elasticsearch 的插件,或者完全其他的东西,这样做是否有意义?
Flume 最初为 Hadoop/HBase 提供了管道,它允许您在到达最终存储之前进行几乎所有类型的修饰、转换和拦截。因此,水槽是进行预处理(在您的情况下发出警报)的理想场所。水槽接收器可以是 Elastic Search,这意味着日志最终将在 Elastic Search 中结束。为了回答您的问题,在日志进入最终目的地之前,在管道中触发所有警报/警报/通知是非常有意义的,旧的 flume 和 flume-ng 架构在这方面都是可定制的并且功能强大。
另一件要提的是,Elastic Search 非常适合全文搜索,但在分析方面,它无法与 Hadoop 生态系统竞争。Cloudera CDH4.3 将 Solr 云添加到 Hadoop 中,这给组合带来了优势:flume + HDFS 或 HBase + Solr。看看这个组合也是值得的。