我正在尝试运行Logstash以通过代理将输出发送到Elasticsearch.据我所知,输出没有配置允许我指定代理.目前我使用:
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
也没有选择权.我如何使用代理?
一旦你知道最终它只是普通的Java,事情就很简单......
换句话说,Logstash使用Java的系统属性来实现这一目的.然后唯一剩下的就是知道如何指定它.使用环境变量LS_JAVA_OPTS
可以解决问题:
SET LS_JAVA_OPTS=-Dhttp.proxyHost=proxy.local -Dhttp.proxyPort=1337 logstash ...
这种方法的缺点是所有输出只能有一个代理.不能仅将代理用于一个输出,或者对不同的输出使用不同的代理.