为Logstash配置代理服务器

sjn*_*ngm 1 proxy elasticsearch logstash

我正在尝试运行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"
  }
}
Run Code Online (Sandbox Code Playgroud)

elasticsearch_http也没有选择权.我如何使用代理?

sjn*_*ngm 6

一旦你知道最终它只是普通的Java,事情就很简单......

换句话说,Logstash使用Java的系统属性来实现这一目的.然后唯一剩下的就是知道如何指定它.使用环境变量LS_JAVA_OPTS可以解决问题:

SET LS_JAVA_OPTS=-Dhttp.proxyHost=proxy.local -Dhttp.proxyPort=1337
logstash ...
Run Code Online (Sandbox Code Playgroud)

这种方法的缺点是所有输出只能有一个代理.不能仅将代理用于一个输出,或者对不同的输出使用不同的代理.