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