无法为数据流分配弹性搜索索引

Can't assign elastic search index for data stream

我正在尝试使用 index => 选项在 elasticsearch 中为 elasticsearch logstash 输出创建索引 运行 on docker:

output {
    elasticsearch {
        cloud_id => "..."
        data_stream => "true"
        ssl => "true"
        api_key => "..."
        document_id => "%{_log_id}"

        index => "%{target_index}"
    }
}

如果我注释索引行,管道工作并且数据被发送到默认索引。但是,在定义索引(有或没有它是常量字符串)的情况下,在摄取任何数据之前启动时会出现以下错误

elasticsearch - Invalid data stream configuration, following parameters are not supported: {"index"=>"%{target_index}"}

其中 target_index 是过滤器中解析的 JSON 正文中的一个条目。

并以 Could not execute action: PipelineAction::Create<firmware_pipeline> 中断,表示这是在实际触发管道之前。

不确定我是否只是读错了文档,但这似乎也是其他人在做的事情。

Logstash 版本:7.13.2

当您使用数据流时,事件会根据 [data_stream] 字段中的值自动路由到索引。您不能在使用 index => "%{target_index}" 选项的显式路由的同时进行自动路由。这就是

following parameters are not supported: {"index"=>"%{target_index}"}

告诉你。如果要使用数据流,请删除索引选项。如果您想要显式路由,请删除 data_stream 选项。

如果您需要将数据发送到两个目的地,请使用第二个输出。