我应该如何在Docker Swarm中替换对IP的引用

时间:2017-12-05 17:25:25

标签: docker elasticsearch docker-swarm

我正在尝试在Docker Swarm模式下安装ELK。

然后,我需要告诉filebeat将日志发送到logstash。

这是我的文件配置文件:

#=========================== Filebeat prospectors =============================
## Each - is a prospector. Most options can be set at the prospector level, so
## you can use different prospectors for various configurations.
## Below are the prospector specific configurations.
filebeat.prospectors:
- input_type: log
  enabled: true
  paths:
{% for log in in_filebeat_dict.filebeat.logs | default([]) %}
    - {{ log }}
{% endfor %}

#================================ Outputs =====================================
# Configure what output to use when sending the data collected by the beat.
output.logstash:
  hosts: ["{{ in_filebeat_dict.filebeat.output.logstash }}:{{ in_filebeat_dict.filebeat.output.port}}"]

in_filebeat_dict.filebeat.output.logstash是一个IP,在Swarm模式下,Swarm不会决定在哪里安装容器,所以我有点卡在这里...

任何想法???

1 个答案:

答案 0 :(得分:2)

在群集模式中,发现适用于ne --name参数。因此,当您使用--name logstash部署logstash时,其他服务可以通过调用名称logstash来访问它。但请记住,他们需要处于不进入的同一网络中。如果您还没有完成覆盖网络,请创建一个新的覆盖网络并将所有服务分配给该网络。