我在一些云提供商中拥有不同的环境,例如Windows服务器,机架空间中的linux服务器,aws ..等等。并且在内部网络和内部网络之间有防火墙。
我需要构建一个实时服务器环境,其中所有新生成的IIS日志,apache日志将同步到内部大数据环境。
我知道像Splunk或Sumologic这样的工具可能有所帮助,但我们需要在开源技术中实现这一逻辑。由于防火墙的存在,我假设我只能从云提供商那里提取日志。
任何人都可以与我分享在NRT(近乎实时)同步大量日志的经验法则或通用架构是什么?我听说过Apache Flume,Kafka并想知道这些是否是必需的,或者只是使用像rsync这样的东西。
答案 0 :(得分:1)
您可以使用rsync获取日志,但无法以Spark Streaming
或Apache Storm
的方式对其进行分析。
您可以继续使用这两个选项中的一个。
Apache Spark Streaming + Kafka
OR
Apache Storm + Kakfa
看看这个article关于这两个选项的集成方法。
查看此presentation,其中包含对Spark Streaming
和Apache Storm
的深入分析。
性能取决于您的使用案例。 Spark Steaming is 40x faster to Storm
处理。但是如果你添加" reliability
"作为关键标准,在Spark Streaming处理之前,应先将数据移入HDFS。它会降低最终吞吐量。
可靠性限制:Apache Storm
可靠性限制:Spark Streaming