elk完整的docker-compose.yaml怎么写
时间: 2024-09-19 19:09:39 浏览: 42
在使用Docker Compose部署ELK Stack(Elasticsearch、Logstash 和 Kibana)时,你需要创建一个名为 `docker-compose.yml` 的文件,该文件会描述所有服务的配置、依赖以及网络设置。以下是一个基本的示例:
```yaml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.2
container_name: elk_elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
- "discovery.type=single-node"
# 更多自定义环境变量如内存大小
logstash:
image: docker.elastic.co/logstash/logstash:7.14.2
container_name: elk_logstash
networks:
- elk_stack
depends_on:
- elasticsearch
env_file:
- ./logstash-env.conf
restart: always
kibana:
image: docker.elastic.co/kibana/kibana:7.14.2
container_name: elk_kibana
ports:
- "5601:5601"
networks:
- elk_stack
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- KIBANA_INDEX_PATTERN=kibana-int*
networks:
elk_stack:
driver: bridge
```
在这个例子中:
- `version` 指定的是Compose文件的版本。
- `services` 区域定义了三个服务:Elasticsearch、Logstash 和 Kibana。
- `ports` 设置了每个服务对外暴露的端口。
- `environment` 可以配置环境变量,如Elasticsearch的单节点模式。
- `depends_on` 确保Logstash在Elasticsearch启动后运行。
- `env_file` 引入外部环境变量文件。
- `networks` 创建了一个内部网络,方便服务间通信。
- `restart` 规定了容器重启策略。
记得替换`image`版本和自定义的环境变量值。将此文件保存到项目根目录,并在命令行中运行 `docker-compose up -d` 来启动堆栈。
阅读全文