我想尝试使用apache flink,hadoop和solr进行非侵入性摄取日志,以便处理和索引它们并进行一些分析和查询。 我正在考虑使用 flink 对多个应用程序的应用程序日志进行数据处理,然后将它们放在 hadoop 上,然后使用 solr 查询它们。 问题是:这真的是非侵入性的吗?Flink 的行为类似于 flume,因为代理是在我喜欢监控的服务器中安装和配置的?Hadoop和solr是否是索引大量日志然后以sql风格查询以深入了解数据并进行一些预测的良好组合,这对于创建警报很有用?
谢谢。
我建议在这里使用 ELK 堆栈。ELK堆栈是Elasticsearch,Logstash和Kibana。
Logstash
:将数据从任何来源摄取到 Elasticsearch。源可以是RDBMS,File,MQ等任何内容。将目标视为 Elasticsearch。
在 logstach 中,您可以通过提及输入和输出在 conf 文件中配置相同的内容。您可以过滤 logstash conf 文件中的数据。
Elasticsearch
:Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 界面和无架构的 JSON 文档。 一旦数据在 Elasticsearch 上被索引。您可以通过 Rest 调用获取数据。您可以使用 Elasticsearch 的观察器功能,并在某些特定条件下获取警报/通知。
Kibana
:Kibana 是 Elasticsearch 的开源数据可视化插件。它在 Elasticsearch 集群上索引的内容之上提供可视化功能。用户可以在大量数据之上创建条形图、折线图和散点图,或饼图和地图。
您可以使用 Apache Flink 而不是 Logstash 来摄取数据。 Apache flink 可以将数据摄取到 Elasticsearch 中。 这是它的例子。
Apache Flink to Elasticsearch
我建议你看看 Flink 的 SQL 支持。一些公司正在使用它来做警报和预测。这将具有显着简化堆栈的优点,因为您不需要Hadoop或solr(或ELK堆栈)。