2014-10-01 109 views
1

我试图运行Logstash通过代理将输出发送到Elasticsearch。据我所知,没有配置可以让我指定代理的输出。目前我使用:为Logstash配置代理

output { 
    elasticsearch { 
    protocol => "http" 
    host => "es-dev.local" 
    port => "9200" 
    index => "logstash-analysis-%{+YYYY.MM.dd}" 
    flush_size => "200" 
    workers => "2" 
    template_name => "logstash_per_index" 
    } 
} 

elasticsearch_http也有,没有的选项。我如何使用代理?

回答

5

事情很简单,一旦你知道,到底这一切都只是普通的Java ...

换句话说Logstash使用Java的系统属性,使这项工作。然后剩下的唯一知识就是知道如何指定它。使用环境变量LS_JAVA_OPTS的伎俩:

SET LS_JAVA_OPTS=-Dhttp.proxyHost=proxy.local -Dhttp.proxyPort=1337 
logstash ... 

这种方法的缺点是只能有所有输出一个代理。无法仅为一个输出使用代理,或者为不同的输出使用不同的代理。