我想使用logstash将标准输出从正在运行的应用程序发送到logz.io。应用程序和 logstash 都是由 docker-compose 管理的 docker 镜像,它负责设置(拉取镜像、network_mode、日志驱动程序等)。Logstash 输入通过 gelf-input-plugin 处理。发送到 logz.io 是通过 tcp-output-plugin 处理的。
logstash.conf:
input { gelf {
type => docker
port => 12201 } }
filter { mutate { add_field => { "token" => "${LOGZIOTOKEN}" } } }
output { tcp {
host => "listener.logz.io"
port => 5050
codec => json_lines } }
摘自 docker-compose.yml:
application:
...
logging:
driver: "gelf"
options:
gelf-address: "udp://0.0.0.0:12201"
这按预期工作。
现在我需要使用一个 TCP 代理服务器,将日志从主机(运行 logstash 实例)发送到 logz.io。不幸的是,我没有找到 logstashs tcp-output-plugin 的代理扩展。有人对这个问题有建议吗?