【问题标题】:Logstash pipeline output does not create requested indexLogstash 管道输出未创建请求的索引
【发布时间】:2020-10-28 12:15:45
【问题描述】:

我的输出插件配置如下:

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 版(dockerized)

【问题讨论】:

  • 你能分享你的管道的其余部分和你在logstash之前和之后的文档样本吗?您是否出于任何原因删除了 @timestamp 字段?
  • @leandrojmp,你说得对,我没有删除时间戳,而是将其重命名为 ingestion_timestamp 作为真正的时间戳,我想在 kibana 中用于时间线是日志消息本身的一部分。发表您的建议作为答案,我会接受!非常感谢 。现在按预期创建索引。有没有办法将 xxxx.ww 建立在不同的字段上?
  • 我不这么认为,logstash使用@timestamp字段,所以你需要保留它,但是你可以创建一个名称为ingestion_timestamp的新字段,使用@ 987654328@过滤器。
  • 这就是我要做的。谢谢!

标签: logstash


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2015-05-27
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多