在本文中,我们将探讨如何部署 Elasticsearch 和 Kibana 使用 Docker Compose 。这是 ELK Stack( Elasticsearch 、Logstash、 Kibana )的两个关键组件,可帮助您有效地搜索、分析和可视化数据。以下是详细配置以及每个组件的工作原理。
1. Elasticsearch
a. 基本配置
Elasticsearch 配置为在 Docker 容器中运行,其参数如下:
镜像: 使用 官方 Elasticsearch 镜像,版本 。
8.17.2
单节点模式: 通过环境变量启用
discovery.type=single-node
。安全性: X-Pack 安全性已启用(
xpack.security.enabled=true
),并且用户密码elastic
设置为YVG6PKplG6ugGOw
。网络: Elasticsearch 监听所有网络接口(
network.host=0.0.0.0
)。JVM内存: 配置
-Xms1g
(初始内存)和-Xmx1g
(最大内存)。
乐队 Ports Volumes
Ports: 端口
9200
(HTTP)和9300
(内部通信)从容器映射到主机。Volumes: Elasticsearch 数据存储在该
elasticsearch-data
卷中。
c. 健康检查
设置健康检查,通过用户调用 API 来 监控 Elasticsearch 的状态 。如果 API 无法响应,容器将重新启动。 /_cluster/health
elastic
2. Kibana
a. 基本配置
Kibana Elasticsearch 配置为使用以下参数 连接并在 Docker 容器中运行:
镜像: 使用 官方 Kibana 镜像,版本 。
8.17.2
Elasticsearch 连接: 地址 Elasticsearch 设置为
http://elasticsearch:9200
。身份验证: Kibana 使用
kibana_user
和密码YVG6PKplG6ugGOw
连接到 Elasticsearch。
b. Ports 和网络
Ports: 端口
5601
是从容器映射到主机来访问的 Kibana 接口。网络: Kibana 已连接到
elk-network
。
c. 依赖 Elasticsearch
Kibana 仅在准备就绪后启动 Elasticsearch,确保两个服务之间的连接成功。
3. 数量和网络
a. 音量
elasticsearch-data: 该卷用于存储 Elasticsearch 数据,即使容器被删除,也能保证数据的持久性。
b. 网络
elk-network:
bridge
创建 一个 网络,用于连接 Elasticsearch 和 Kibana 服务。
4. 如何使用
a. 启动服务
要启动 Elasticsearch 和 Kibana,请运行以下命令:
b. 创建 Kibana 用户(如果需要)
如果您想要使用专用用户 Kibana,则可以使用以下命令创建一个:
要使用 token 而不是密码,您可以使用以下命令创建一个:
5. 故障排除
如果遇到错误,可以使用以下命令检查容器日志:
重新启动 Kibana:
Docker Compose 文件 的完整内容
以下是该文件的完整内容 docker-compose-els.yml
:
结论
使用此 Docker Compose 配置,您可以轻松部署 Elasticsearch 并 Kibana 满足您的数据搜索、分析和可视化需求。自定义和扩展此配置以满足您项目的特定要求!