我不知道,这是否有帮助,但是......无论如何......让我们举一个非常愚蠢的例子:我想对我附近的松鼠进行统计。每只松鼠都有一个名字,我们知道它们长什么样。每当看到松鼠吃坚果时,每个邻居都会记录一个日志。
ElasticSearch 是一个文档数据库,它在所谓的索引中构造数据。它能够将这些索引的片段(碎片)冗余地保存在多个服务器上,并为您提供出色的搜索功能。因此您可以非常快速地访问大量数据。
在这里,我们可能已经完成了如下所示的事件:
{
"_index": "squirrels-2018",
"_id": "zr7zejfhs7fzfud",
"_version": 1,
"_source": {
"squirrel": "Bethany",
"neighbor": "A",
"@timestamp": "2018-10-26T15:22:35.613Z",
"meal": "hazelnut",
}
}
Logstash 是数据收集器和转换器。它能够通过其输入插件接受来自许多不同来源(文件、数据库、传输协议等)的数据。使用其中一个输入插件后,所有数据都存储在一个 Event 对象中,该对象可以使用过滤器进行操作(添加数据、删除数据、从其他来源加载其他数据)。当数据具有所需的格式时,可以将其分发到许多不同的输出。
如果邻居 A 提供的 MySQL 数据库包含 'squirrel'、'time' 和 'ate' 列,但邻居 B 喜欢使用列 'name'、'nut' 和 'when' 编写 CSV,我们可以使用Logstash 接受两个输入。然后我们重命名这些字段并解析这些邻居可能使用的不同日期时间格式。如果其中一位喜欢称 Bethany 为“Beth”,我们可以在此处更改数据以使其保持一致。最终我们将结果发送到 ElasticSearch(可能还有其他输出)。
Kibana 是一个可视化工具。它使您可以概览您的索引结构和服务器状态,并为您的 ElasticSearch 数据创建图表
在这里我们可以制作有趣的图表,例如“每分钟的松鼠目击数”或“最胖的松鼠(基于坚果摄入量)”