docker-compose部署efk
时间: 2023-09-30 07:01:45 浏览: 216
通过docker compose可以一次性部署Elasticsearch、Filebeat和Kibana(EFK)。你需要使用以下镜像:
- docker pull store/elastic/filebeat:7.6.2
- docker pull elasticsearch:7.6.2
- docker pull kibana:7.6.2
在docker compose文件中,你可以创建一个包含两个Elasticsearch节点的集群。其中一个节点(es01)监听本地主机的9200端口,另一个节点(es02)通过Docker网络与es01通信。为了保持数据的一致性,你可以将数据目录(data01和data02)挂载到Docker存储节点上。如果目录不存在,docker compose会在启动集群时自动创建它们(默认位置为/var/lib/docker/volumes/)。
在Filebeat和Kibana的配置中,你需要将Elasticsearch的主机地址改为集群中监听9200端口的es01节点。
以下是一个示例的docker compose文件部分内容(假设为filebeat.docker-compose.yml):
```
version: '3'
services:
elasticsearch:
image: elasticsearch:7.6.2
ports:
- 9200:9200
volumes:
- data01:/path/to/data01
filebeat:
image: store/elastic/filebeat:7.6.2
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/containers:/var/lib/docker/containers
configs:
- source: filebeat-config
target: /usr/share/filebeat/filebeat.yml
kibana:
image: kibana:7.6.2
environment:
- ELASTICSEARCH_HOSTS=es01:9200
ports:
- 5601:5601
volumes:
data01:
configs:
filebeat-config:
file: ./filebeat.yml
```
请注意,以上仅为示例,你可能需要根据实际情况进行调整。另外,为了解决一些常见问题,你可能需要确保正确设置了vm.max_map_count,并了解如何手动创建Kibana节点并加入集群。
阅读全文