我正在尝试在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不会决定在哪里安装容器,所以我有点卡在这里...
任何想法???
答案 0 :(得分:2)
在群集模式中,发现适用于ne --name
参数。因此,当您使用--name logstash
部署logstash时,其他服务可以通过调用名称logstash
来访问它。但请记住,他们需要处于不进入的同一网络中。如果您还没有完成覆盖网络,请创建一个新的覆盖网络并将所有服务分配给该网络。