首页 > 解决方案 > Logstash 7 未向索引名称添加日期戳

问题描述

我刚刚从 ELK 6.7.0 更新到 7.4.0(通过 6.8.0)。在我启动 7.4.0 实例后,logstash 开始将数据放入名为“logstash”的索引中,而不是像以前那样将“logstash-2019.10.24”放入索引中。

我更新了我的输出插件看起来像

output {
  elasticsearch {
    hosts => ["localhost"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

我以前没有“索引”部分,但我尝试了它是否有帮助,重新启动了logstash,它仍在将数据放入“logstash”索引中。

如何让 logstash 再次使用带日期戳的索引?

(我在 docker 中只运行一个单节点:https ://github.com/kenwdelong/elk-docker/tree/ELK-7.4.0 )

奇怪的是,如果我在干净的机器上启动相同的标记 docker 图像,并使用我的 github 页面上的测试脚本将一些数据推入其中,它工作正常,并且我在索引名称中得到日期。

标签: logstashlogstash-configuration

解决方案


我终于想通了。我安装了一个名为“logstash”的模板,其索引模式为“logstash-*”。这个模板是很久以前的,在“mappings”下面仍然有“ defaults ”键。显然这阻止了 ES 7 创建索引,所以 Logstash 不知何故退回到“logstash”索引。我不得不删除 logstash 模板,然后在没有“ defaults ”键的情况下重新创建它。此外,我遇到了一些问题,因为 ECS 导致记录没有被索引 - ES 假设某些字段(如 userAgent)是一种类型,而实际上我所拥有的所有内容都设置为不同的类型。所以我也必须解决这些问题。


推荐阅读