首页 > 解决方案 > ELK-Stack 中未使用/处理的索引模板

问题描述

我的 ELK 堆栈有一些问题。我已经使用 Winlogbeat(用于读取 EVTX 文件)、Elasticsearch 和 Kibana 建立了一个 ELK 堆栈。在 Winlogbeat 中可以定义模板或使用通用模板 ECS。fields.yml 文件已经实现。当我处理我的数据时,一切都很顺利。数据也出现在 elasticsearch/kibana 中。问题是,winlog.record_id 或 winlog.channel 等典型字段的类型在 kibana 中以文本形式出现,而不是作为关键字定义。

我尝试了许多不同的组合来处理 Winlogbeat 中的数据,但我不确定 Winlogbeat 是否真的是问题所在。

我当前的 Winlogbeat 配置如下所示:

winlogbeat.event_logs:
  - name: 'c:\path\to\evtx\file.evtx'

setup.template.enabled: true
setup.template.fields: "c:/path/to/fields.yml"
setup.template:
  name: "test_"
  pattern: "test_*"
  overwrite: true
  settings:
    index.number_of_shards: 1

setup.ilm.enabled: false

output.elasticsearch:
  enabled: true
  hosts: ["localhost:9200"]
  index: "test_evtx"

processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - add_docker_metadata: ~

我为 Elasticsearch、Kibana 和 Winlogbeat 使用 7.5.2 版本。

根据我目前的知识,配置是正确的。困扰我的是,在“管理 > 索引管理 > 索引模板”菜单中,我可以看到我的测试索引使用的当前模板。那里的映射设置是正确的,类似于fields.yml中的设置,但是如果我不参考Winlogbeat配置文件中的fields.yml,它们也是这样的。另一方面,如果设置了模板,Kibana 应该在使用创建的索引模式发布数据时使用它,对吧?但是这里的字段类型对于 90% 的情况是文本类型,而不是索引模板中推荐的类型。

因此,要么我误解了索引(模板/模式)的整个概念,要么出现了其他任何问题。有人有建议吗?

标签: elasticsearchconfigurationkibanaelastic-stackelk

解决方案


推荐阅读