【问题标题】:Why doesn't Logstash consume logs from gelf?为什么 Logstash 不使用 gelf 的日志?
【发布时间】:2019-04-10 13:24:26
【问题描述】:

我正在尝试在运行的 Docker 容器的日志和 Logstash 之间建立交互。

我使用以下命令运行我的 Docker 容器:

docker run --log-driver gelf --log-opt gelf-address=udp://127.0.0.1:12201 nfrankel/simplelog:1

Logstash config.json 是:

input {
  gelf {}
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
  }
  stdout {}
}

Logstash 日志很好,我明白了

New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://localhost:9200"]}
Starting gelf listener (udp) ... {:address=>"0.0.0.0:12201"}
Successfully started Logstash API endpoint {:port=>9600}

然而,它不起作用。我没有在 Logstash 控制台中看到日志,也没有看到 Elasticsearch 索引已创建。

您能帮我解决我的问题吗?

值得一提的是,正在运行的 Docker 容器会生成日志,我在启动它的 Cygwin 中看到了它们。

【问题讨论】:

    标签: docker logging logstash elastic-stack gelf


    【解决方案1】:

    也许可以尝试将 gelf 输入配置为在端口 12201 上接受 udp,例如

    input {
       gelf {
          use_udp => true
          port_udp => 12201
       }
    }
    

    【讨论】:

    • 不幸的是,这没有帮助,Logstash 日志中的启动 gelf 侦听器 (udp) 仍然是相同的 ... {:address=>"0.0.0.0:12201"}
    • logstash 容器是否有适当的端口绑定?例如12201:12201/udp
    • 我不是从 Docker 运行 Logstash
    猜你喜欢
    • 2017-08-02
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    相关资源
    最近更新 更多