docker-compose 启动ELK
时间: 2023-09-10 17:10:44 浏览: 128
要使用 Docker Compose 启动 ELK,需要编写一个 `docker-compose.yml` 文件,文件内容如下:
```
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.2
container_name: elasticsearch
environment:
- discovery.type=single-node
ports:
- 9200:9200
- 9300:9300
networks:
- elk
kibana:
image: docker.elastic.co/kibana/kibana:7.11.2
container_name: kibana
ports:
- 5601:5601
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
depends_on:
- elasticsearch
networks:
- elk
logstash:
image: docker.elastic.co/logstash/logstash:7.11.2
container_name: logstash
volumes:
- ./logstash/config:/usr/share/logstash/config
- ./logstash/pipeline:/usr/share/logstash/pipeline
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- 5000:5000
- 9600:9600
depends_on:
- elasticsearch
networks:
- elk
networks:
elk:
driver: bridge
```
在上述 `docker-compose.yml` 文件中,我们定义了三个服务:
- `elasticsearch`:Elasticsearch 服务,使用 Elastic 官方提供的镜像,监听 9200 和 9300 端口,这是 Elasticsearch 的默认端口;
- `kibana`:Kibana 服务,同样使用 Elastic 官方提供的镜像,监听 5601 端口,这是 Kibana 的默认端口;
- `logstash`:Logstash 服务,使用 Elastic 官方提供的镜像,监听 5000 和 9600 端口,这是 Logstash 的默认端口。
在 `docker-compose.yml` 文件中,我们还定义了一个名为 `elk` 的网络,以供三个服务使用。同时,我们还把 `logstash` 服务的配置文件和 pipeline 配置文件挂载到了本地的 `./logstash/config` 和 `./logstash/pipeline` 目录,以便于我们自定义 Logstash 的配置。
启动 ELK,只需要在终端中进入 `docker-compose.yml` 文件所在目录,然后执行以下命令:
```
docker-compose up -d
```
这个命令会下载所需要的镜像,然后启动三个服务,启动完成后,可以通过浏览器访问 `http://localhost:5601`,来访问 Kibana 界面。
阅读全文