首页 > 解决方案 > Kafka / Logstash 输出到 Elasticsearch

问题描述

我有一个 Logstash 6.2x 设置,我在其中读取 Kafka 输入并将输出写入 Elasticsearch 实例,并且在使用 if/else 时遇到问题

Logstash 配置看起来像

input {
  kafka {
    bootstrap_servers => '192.168.2.66:9092,192.168.2.67:9092,192.168.2.68:9092'
    topics => ["linum", "newdata"]
    codec => "json"
    type => "kafka"
    tags => ["linumsrvr1"]
    decorate_events => true
    }
}
output {
    if [topic] == "linum" {
        elasticsearch {
        hosts => ["192.168.2.32:9200"]
        action => "index"
        index => "linum-%{+YYYY.MM.dd}"
          }
   stdout {codec => rubydebug}
     } else {
     [kafka][topic_id] == "newdata" {
        elasticsearch {
        hosts => ["192.168.2.32:9200"]
        index => "newdata-%{+YYYY.MM.dd}"
          }
   stdout {codec => rubydebug}
     }
   }
}

当输出包含以“elasticsearch { ..... / dd}”开头/结尾的 4 行时,我能够将数据导入 Elasticsearch

由于某种原因,当我使用“IF”或“IF”+“ELSE”语句时,我似乎没有将任何数据发送到 Elasticsearch。

我想为这两个主题创建两个单独的索引。

我会感谢一些关于我做错了什么的指导。

谢谢

标签: elasticsearchapache-kafkalogstash

解决方案


推荐阅读