elk完整的docker-compose.yaml并带有volumes怎么写
时间: 2024-09-19 20:09:42 浏览: 71
Elk Stack(Elasticsearch、Logstash和Kibana的缩写)是一个流行的日志管理和分析堆栈。要在Docker Compose中配置完整的Elk Stack,并包含数据卷(volumes),你需要创建一个`.yaml`文件,下面是一个基本的例子:
```yaml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.0
container_name: es_container
ports:
- "9200:9200"
- "9300:9300"
volumes:
- es_data:/usr/share/elasticsearch/data
environment:
- node.name=es_node1
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
logstash:
image: docker.elastic.co/logstash/logstash:7.16.0
container_name: ls_container
ports:
- "5044:5044"
volumes:
- ./logstash_configs:/etc/logstash/conf.d
- logstash_data:/var/lib/logstash
kibana:
image: docker.elastic.co/kibana/kibana:7.16.0
container_name: kb_container
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
volumes:
- kibana_config:/usr/share/kibana/config/
depends_on:
- elasticsearch
volumes:
es_data:
logstash_data:
kibana_config:
# 示例配置文件路径,实际应替换为你本地的实际配置文件位置
logging:
driver: "json-file"
options:
max-size: "10m"
```
在这个例子中:
- `elasticsearch`服务配置了Elasticsearch容器,设置了端口映射和数据卷用于存储数据。
- `logstash`服务配置了Logstash容器,指定了配置文件目录和数据卷。
- `kibana`服务配置了Kibana容器,依赖于Elasticsearch,设置了环境变量连接到日志库。
记得将`./logstash_configs`和`kibana_config`路径替换为实际的配置文件目录,同时确保你有足够的权限访问这些文件。
阅读全文