ELK堆栈数据映射功能

时间:2018-09-24 01:43:25

标签: elasticsearch mapping logstash tracing

所以currenyly我想知道ELK堆栈中是否有一项功能可以对来自不同来源的数据进行查找和映射。

例如: 我有日志

'computer.log' -> {computer_id: 123456, internet_connected: 345612}
'phone.log' ->    {phone_id: 234561}
'internet.log' -> {internet_id: 345612, phone_push: 234561}

因此,我们有3条日志流被发送到filebeat-> logstash-> elasticsearch-> kibana

当我们需要跟踪哪个电话连接到计算机时,我想搜索“ computer_id:123456”,然后弹出所有这3个日志。我知道我们可以在弹性搜索中搜索数据的特定索引,并在logstash中解析原始日志。但是我想知道如果我们分别(在5毫秒内)收到这3个日志,如何跟踪或进行映射。

logstash将具有这种数据跟踪功能吗?或者我必须编写一个处理映射的程序,然后将转换ID插入特定日志中,然后再流进Logstash?

我不知道此功能的确切名称,您能告诉我ELK堆栈中是否有该功能吗?

1 个答案:

答案 0 :(得分:1)

如果internet.log以至少几秒钟的保证间隔持续到最后,我们可以丰富包含internet.log的索引。

我建议关注

  1. 在索引internet.log的同时,添加 document_id作为uuid - https://www.elastic.co/guide/en/logstash/current/plugins-filters-uuid.html 并添加状态-“未处理”
  2. 添加另一个logstash
    • 输入-使用elasticsearch输入插件查询状态为未处理的internet.log
    • 过滤器1-使用elasticsearch过滤器插件查询computer.log以获得事件中的computer_id和其他字段(如果有)。
    • 过滤器2-使用elasticsearch过滤器插件查询phone.log以获得事件中与电话相关的字段。
    • 如果过滤器1和2成功返回数据,则更新状态为已处理。
    • 输出-使用相同的document_id(uuid)重新索引internet.log文档

您可能会在这里找到一些示例- * https://www.elastic.co/guide/en/logstash/current/lookup-enrichment.html * https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html

现在,您已将所有数据包含在单个索引(index.log)中以进行搜索和查询。