我正在尝试在运行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 {}
}
日志存储日志很好,我看到
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中看到它们。
也许尝试将 gelf 输入配置为在端口 12201 上接受 udp,例如
input {
gelf {
use_udp => true
port_udp => 12201
}
}