Logstash 配置错误

Logstash Config Error

我是 ELK 堆栈的新手。想要使用从 filebeat 到 logstash 的管道推送数据,这会将数据推送到弹性。我的配置如下:

input {
beats {
    port => "5043"
  }
}

filter {
  grok {
match => { "message" => "\A%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:var0}%{SPACE}%{NOTSPACE}%{SPACE}(?<searchinfo>[^#]*)#(?<username>[^#]*)#(?<searchQuery>[^#]*)#(?<latitude>[^#]*)#(?<longitude>[^#]*)#(?<client_ip>[^#]*)#(?<responseTime>[^#]*)" }
  }
}


output {
     stdout { codec => rubydebug }
        elasticsearch {
            index => "logstash_logs"
            document_type => "logs"
            hosts => [ "localhost:9200" ]
}

问题出在我执行 bin/logstash -f first-pipeline.conf --config.test_and_exit 时。它抛出一个错误说明:

17:55:37.691 [LogStash::Runner] FATAL logstash.runner - The given configuration is invalid. Reason: Expected one of #, if, ", ', } at line 22, column 1 (byte 487) after output {
stdout { codec => rubydebug }
    elasticsearch {
        index => "logstash_logs"
        document_type => "logs"
        hosts => [ "localhost:9200" ]
}

谁能指出我哪里错了?

您的 elasticsearch 输出中缺少右花括号

output {
  stdout { codec => rubydebug }
  elasticsearch {
     index => "logstash_logs"
     document_type => "logs"
     hosts => [ "localhost:9200" ]
  }     <--- this is missing
}