假设我有连续的日志条目流(例如防火墙日志),我需要一个能够处理事件流并对其进行实时计算的工具(例如,计算来自不同IP的访问次数)在一个时间窗口(例如10分钟)上的地址并在满足某些条件时触发警报(例如,访问次数> 100)。
我知道Storm Project,InfluxDB,OpenTSDB,KairosDB,但除了Strom之外,它们看起来不像是为这种处理而设计的工具。我的问题是,是否有人知道更适合此类工作的工具。
答案 0 :(得分:3)
你可以将你的消息(日志条目)提供给Kafka队列并将风暴与它集成在一起,风暴和kafka之间有一个很好的集成,名为KafkaSpout,这是一个从Kafka读取的鲸鱼喷水簇。
要在一段时间内进行实时处理,您可以检查Esper,这通常是一个复杂的事件处理单元(CEP)。如上所述,对于进行事件流处理非常有用。
答案 1 :(得分:1)
我们正在使用Storm(与Kafka结合)进行类似的工作,并且喜欢使用它。该工具生成的错误总是像人们希望的那样有用和具有描述性,但总的来说,一旦克服了这些错误,它就会提供一个非常可靠和强大的基础架构。
如果警报要求足够简单(无需关联事件,从其他资源获取数据等),甚至可以直接使用Kafka(或其他消息传递系统)。
在检查替代方案时,我们也对S4(http://incubator.apache.org/s4/)进行了调查,但似乎没有像Storm那样获得足够的动力。
Spark(https://amplab.cs.berkeley.edu/projects/spark-lightning-fast-cluster-computing/)主要针对hadoop进行批处理,但也有一个针对流处理的计划。
答案 2 :(得分:1)
值得一看 Splunk 。使用Splunk,您可以实时监控和提醒。它还支持实时搜索和分析功能。 Splunk基本上捕获,索引和关联可搜索存储库中的实时数据,用户可以从中生成图形,报告,警报,仪表板和可视化,从最终用户的角度来看,这将更容易。
答案 3 :(得分:0)
对于更具操作性的解决方案,您可以查看graylog。缺点是你没有像Storm这样的无限可能性,所以你不能做的就是你不能编码(至少不容易,但它是开源的)。
此外,您可以使用Centreon来获得更完整的解决方案。这完全取决于你的例子是一个随机的,还是你的实际用例(如果是这种情况,请查看ops工具,而不是编程一个。那里有大量的监控工具。)。
答案 4 :(得分:0)
您可以查看EVAM。它具有基于场景的设计器,并且可以为同一个流运行并行或顺序的多个场景。事件和动作生成一次完成,然后GUI拖放方法可用于创建许多场景..