docker部署elk
时间: 2023-09-12 11:10:00 浏览: 86
docker 搭建 ELK
要在 Docker 上部署 ELK,需要分别部署以下三个容器:
1. Elasticsearch 容器:用于存储和查询日志数据。
2. Logstash 容器:用于收集、过滤和转换日志数据。
3. Kibana 容器:用于可视化 Elasticsearch 存储的数据。
以下是一个简单的示例 Docker Compose 文件:
```
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
container_name: elasticsearch
environment:
- discovery.type=single-node
ports:
- 9200:9200
- 9300:9300
volumes:
- esdata:/usr/share/elasticsearch/data
logstash:
image: docker.elastic.co/logstash/logstash:7.10.1
container_name: logstash
volumes:
- ./logstash/config:/usr/share/logstash/pipeline/
ports:
- "5000:5000"
- "9600:9600"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
kibana:
image: docker.elastic.co/kibana/kibana:7.10.1
container_name: kibana
ports:
- 5601:5601
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
volumes:
esdata:
driver: local
```
在这个示例中,我们使用了 Elasticsearch、Logstash 和 Kibana 的官方 Docker 镜像,并通过 Docker Compose 文件配置了三个服务。我们将 Elasticsearch 暴露在主机的 9200 和 9300 端口上,将 Logstash 暴露在主机的 5000 和 9600 端口上,将 Kibana 暴露在主机的 5601 端口上。
我们还配置了 Elasticsearch 的数据存储卷 esdata,以便数据持久化。注意,这里我们使用了单节点的 Elasticsearch,因此设置了 `discovery.type=single-node`。
在运行 Docker Compose 文件之前,需要将配置文件放在 `./logstash/config` 目录下。配置文件可以根据需求进行编写,具体可参考 Logstash 的官方文档。在示例中,我们将 Logstash 的输入端口设置为 5000,输出端口默认为 Elasticsearch。
最后,我们使用以下命令来启动服务:
```
docker-compose up -d
```
等待一段时间,服务启动后,即可通过浏览器访问 Kibana 的 Web 界面,开始浏览和分析日志数据。
阅读全文