CentOS 系统使用 Docker 安装 Elasticsearch 和 Kibana 详细教程
本教程将指导你在 CentOS 系统上使用 Docker 部署 Elasticsearch 7.17.28 和 Kibana 7.17.28,并安装中文分词插件 IK Analysis。
1. 准备工作
1.1 安装 Docker
如果你的系统尚未安装 Docker,请先执行以下命令安装:
1 2 3 4 5 6 7 8 9 10
| # 卸载旧版本(如有) yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-selinux
|
首先要安装一个yum工具
1
| sudo yum install -y yum-utils device-mapper-persistent-data lvm2
|
安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):
1 2 3
| sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
|
更新yum,建立缓存
最后,执行命令,安装Docker
1
| yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
启动和校验
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl enable docker
docker ps
|
2. 部署 Elasticsearch
2.1 运行 Elasticsearch 容器
1 2 3 4 5 6 7 8 9 10
| docker run -d \ --name es \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -e "discovery.type=single-node" \ -v es-data:/usr/share/elasticsearch/data \ -v es-plugins:/usr/share/elasticsearch/plugins \ --privileged \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.17.28
|
参数解释
| 参数 |
说明 |
-d |
后台运行容器 |
--name es |
容器命名为 es |
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" |
设置 JVM 堆内存为 512MB |
-e "discovery.type=single-node" |
单节点模式(适合开发环境) |
-v es-data:/usr/share/elasticsearch/data |
挂载数据卷,持久化存储数据 |
-v es-plugins:/usr/share/elasticsearch/plugins |
挂载插件目录 |
--privileged |
授予容器特权模式(某些插件需要) |
-p 9200:9200 |
暴露 REST API 端口(HTTP) |
-p 9300:9300 |
暴露集群通信端口(TCP) |
elasticsearch:7.17.28 |
指定 Elasticsearch 版本 |
3. 部署 Kibana
3.1 运行 Kibana 容器
1 2 3 4 5
| docker run -d \ --name kibana \ -e ELASTICSEARCH_HOSTS=http://{ip}:9200 \ -p 5601:5601 \ kibana:7.17.28
|
参数解释
| 参数 |
说明 |
-d |
后台运行容器 |
--name kibana |
容器命名为 kibana |
-e ELASTICSEARCH_HOSTS=http://es:9200 |
连接 Elasticsearch 服务(es 是容器名) |
-p 5601:5601 |
暴露 Kibana Web 界面端口 |
kibana:7.17.28 |
指定 Kibana 版本(与 Elasticsearch 版本一致) |
4. 安装 IK 中文分词插件
4.1 进入 Elasticsearch 容器
4.2 安装 IK 插件
1
| ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.28/elasticsearch-analysis-ik-7.17.28.zip
|
上述这个方式安装不成功的则需要去GitHub上手动安装 地址:https://release.infinilabs.com/analysis-ik/stable/
找到对应版本下载到本地,解压后,然后使用可视化工具finalshell直接将文件拖拽到 服务器的虚拟机的/var/lib/docker/volumes/es-plugins/_data这个目录下,然后使用docker restart es这个命令重新启动即可
参数解释
| 命令 |
说明 |
docker exec -it es bash |
进入 Elasticsearch 容器的 shell |
./bin/elasticsearch-plugin install |
安装 Elasticsearch 插件 |
https://...ik-7.17.28.zip |
IK 分词器插件下载地址(版本必须匹配) |
4.3 重启 Elasticsearch
5. 验证安装
5.1 检查 Elasticsearch
1
| curl http://localhost:9200
|
正常输出示例:
1 2 3 4 5 6 7 8 9 10
| { "name" : "node-1", "cluster_name" : "elasticsearch", "version" : { "number" : "7.17.28", "build_flavor" : "default", "build_type" : "docker", "lucene_version" : "8.11.1" } }
|
5.2 检查 Kibana
访问 http://<服务器IP>:5601,如果看到 Kibana 界面,说明安装成功。
5.3 验证 IK 分词器
1 2 3 4 5
| curl -X POST "http://localhost:9200/_analyze" -H 'Content-Type: application/json' -d' { "analyzer": "ik_max_word", "text": "你好世界" }'
|
输出示例(正确分词):
1 2 3 4 5 6
| { "tokens" : [ { "token" : "你好", "start_offset" : 0, "end_offset" : 2 }, { "token" : "世界", "start_offset" : 2, "end_offset" : 4 } ] }
|
6. 常见问题
Q1: 无法访问 Elasticsearch/Kibana?
检查防火墙是否开放端口:
1 2 3
| sudo firewall-cmd --add-port=9200/tcp --permanent sudo firewall-cmd --add-port=5601/tcp --permanent sudo firewall-cmd --reload
|
Q2: IK 插件安装失败?
- 确保下载的插件版本与 Elasticsearch 版本完全一致(这里是
7.17.28)。
- 如果网络问题,可以手动下载 ZIP 文件后复制到容器内安装。
Q3: 如何卸载?
1 2 3 4 5 6 7 8 9
| # 删除容器 docker stop es kibana docker rm es kibana
# 删除数据卷 docker volume rm es-data es-plugins
# 删除镜像 docker rmi elasticsearch:7.17.28 kibana:7.17.28
|
7. 总结
| 组件 |
关键配置 |
访问方式 |
| Elasticsearch |
单节点模式,512MB 堆内存 |
http://IP:9200 |
| Kibana |
连接 Elasticsearch |
http://IP:5601 |
| IK 分词器 |
版本必须匹配 |
通过 _analyze API 测试 |
🎉 现在你已成功搭建 Elasticsearch + Kibana 环境,并支持中文分词! 🚀