首页 > 解决方案 > Logstash 管道输出未创建请求的索引

问题描述

我的输出插件配置如下:

output {
  stdout { codec => rubydebug { metadata => true } }
  elasticsearch {
    hosts => ["elasticsearch:443"]
    ssl => true
    cacert => 'cacert.crt'
    user => "logstash_internal"
    password => "x-pack-test-password"
    index => "logstash-ddo-%{+xxxx.ww}"
  }
}

当我查询弹性时:

GET /_cat/indices/logstash-*?v&s=index

我得到以下信息:

health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   logstash-ddo- oyMaZ1jeQPCOhI8YDXnbxw   1   1      78687            0     64.8mb         32.2mb

我希望它是例如:

logstash-ddo-2020-44

我已经检查并重新检查了管道配置文件,但我没有想法。你们有看到什么吗?

Logstash 不报告任何错误。我在 7.9.2 版(码头化)

标签: logstash

解决方案


要根据事件的日期创建索引,logstash 使用@timestamp字段中的日期。

由于您的索引名称没有获取年份和周数,因此您要么删除或重命名该@timestamp字段。

您需要@timestamp在文档中保留该字段,如果要更改其名称,可以从中创建一个新字段,但 logstash 需要该@timestamp字段来创建基于时间的索引。


推荐阅读