在具有http代理的企业networking上运行docker filebeat

我试图通过docker为我的办公室运行一个麋鹿堆栈和filebeat [即。 在http代理到位的企业networking内部]工作。 即使我可以访问[使用从我的主机系统curl] kibana,elasticsearch端点,我的filebeat [在同一networking中作为docker容器运行]实例无法。 任何帮助正确的方向将是有益的。

我的docker-compose.yml如下:

version: '2' services: elasticsearch.local: build: elasticsearch/ volumes: - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ports: - "9200:9200" - "9300:9300" environment: ES_JAVA_OPTS: "-Xmx512m -Xms256m" networks: - elk logstash.local: build: logstash/ volumes: - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml - ./logstash/pipeline:/usr/share/logstash/pipeline ports: - "5000:5000" environment: ES_JAVA_OPTS: "-Xmx512m -Xms256m" networks: - elk depends_on: - elasticsearch.local kibana.local: build: kibana/ volumes: - ./kibana/config/:/usr/share/kibana/config ports: - "5601:5601" networks: - elk depends_on: - elasticsearch.local filebeat.local: build: filebeat/ volumes: - ./filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml - ${filebeat_log_dir}:/mnt/log networks: - elk depends_on: - elasticsearch.local networks: elk: driver: bridge 

麋鹿堆栈的启发是https://github.com/deviantony/docker-elk 。 我只改变了服务的名称,以追加.local,否则这些主机名将通过http代理进行路由。 .local目前在没有代理中设置。

filebeat docker是基于官方cent-os的映像,位于https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html 。

我使用sshlogin到filebeat docker容器,并用nslookuptesting了名称服务器。 nslookup是返回elasticesearch.local的正确IP地址。 但是,当我试图从filebeat docker执行curl到elasticsearch本地端点时,代理进入之间而不检查docker维护的resolve.conf。

任何帮助正确的方向将不胜感激。