我想使用logstash将标准输出从运行中的应用程序发送到logz.io。应用程序和日志存储都是由docker -组合管理的坞映像,它完成设置(拉图、network_mode、日志驱动程序等)。Logstash输入是通过g亲自输入插件处理的。传送到logz.io是通过tcp-输出插件.
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输出插件的代理扩展。有人对这个问题有什么建议吗?
发布于 2017-11-24 11:36:31
logstash的http输出插件具有属性代理。您必须使用logz.io端口发送curl: 8070(http)/8071(https)。
工作配置如下所示:
output { http {
url => "https://listener.logz.io:8071?token=${LOGZIOTOKEN}"
http_method => "post"
format => "json"
content_type => "application/json"
proxy => {
host => "${PROXYHOST}"
port => "${PROXYPORT}"
scheme => 'http'
user => "${PROXYUSER}"
password => "${PROXYPW}"
}}}您不需要过滤器来传送到logz.io,就像tcp-输出插件配置中的那样。只需添加输入,并发送它!
https://stackoverflow.com/questions/47438792
复制相似问题