这是我的logstash conf
input {
kafka {
bootstrap_servers => "127.0.0.1:9092"
topics => ["filebeat", "access"]
group_id => "test-consumer-group"
consumer_threads => 1
decorate_events => true
}
}
我有两个主题,但我想对不同的主题使用不同的编解码器。我该怎么办?
我尝试添加
if ([topic] == "filebeat") {
codec => "json"
}
在kafka输入conf中,logstash返回错误。
Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #, => at line 6, column 8 (byte 143) after input {\n kafka {\n bootstrap_servers => \"127.0.0.1:9092\"\n topics => [\"filebeat\", \"access\"]\n group_id => \"test-consumer-group\"\n if "
答案 0 :(得分:1)
您可以使用每个不同的编解码器创建2个独立的kafka输入。
另一个选择是添加一个过滤器,该过滤器根据主题
来解析json对象。filter {
if([topic] == "filebeat") {
json {
source => "message"
}
}
}
有关更多信息,请检查: https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html