docker-compose安装ElasticSearch,ik分词器插件,kibana【超详细】
1. 准备工作
确保你已经安装好了docker,docker-compose
2. 安装过程
- 创建docker-compose配置文件docker-compose-es-kibana-new.yml,确保yml格式,文件名称可任意修改,根据硬件配置修改参数
"ES_JAVA_OPTS=-Xms512m -Xmx512m"
version: '3'
services:# Elasticsearch服务elasticsearch:image: elasticsearch:7.17.10container_name: elasticsearchenvironment:- discovery.type=single-node- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- bootstrap.memory_lock=trueulimits:memlock:soft: -1hard: -1volumes:- ./elasticsearch/data:/usr/share/elasticsearch/data- ./elasticsearch/plugins:/usr/share/elasticsearch/plugins- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlports:- 9200:9200- 9300:9300networks:- elastic-netrestart: always# Kibana服务kibana:image: kibana:7.17.10container_name: kibanaenvironment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200ports:- 5601:5601depends_on:- elasticsearchnetworks:- elastic-netrestart: alwaysnetworks:elastic-net:driver: bridge
- 创建配置目录和配置文件
# 创建配置目录
mkdir elastic
cd elastic
# 创建docker挂载目录
mkdir -p elasticsearch/config
mkdir -p elasticsearch/data
mkdir -p elasticsearch/plugins
# 创建配置文件
cd elasticsearch/config/
vim elasticsearch.yml
2.1 配置文件内容
cluster.name: "docker-cluster" # 集群名称,单节点时随意设置,但要唯一
network.host: 0.0.0.0 # 监听所有 IP 地址,允许外部访问# 允许跨域访问(CORS),如果你的应用需要从浏览器直接访问 ES
http.cors.enabled: true
http.cors.allow-origin: "*"
#
# # X-Pack 配置(Elasticsearch 的扩展功能)
xpack.license.self_generated.type: basic # 使用基本许可证(免费版)
xpack.security.enabled: false # 禁用安全功能(生产环境建议启用并配置密码)
xpack.monitoring.collection.enabled: true # 启用监控数据收集
3. 安装ik分词器
- 浏览器访问 https://get.infini.cloud/elasticsearch/analysis-ik/7.17.10,下载后需要修改文件名,添加zip文件类型后缀,便于后续解压。
- 如果下载不成功,请参考github官网 https://github.com/infinilabs/analysis-ik/releases/,可能是下载的url发生了变化。
- 将分词插件压缩包上传到Linux系统中的elastic/elasticsearch/plugins路径下,该目录在第二步安装过程中已经创建,执行解压缩到ik目录下,并删除安装包。
unzip 7.17.10.zip -d ik/
rm 7.17.10.zip
4. 启动容器
- 将docker-compose-es-kibana-new.yml上传至Linux系统中的elastic目录下,该目录在第2步中已创建,和elasticsearch目录平级
- 授予挂载目录data,config,plugins目录权限777
- 启动容器
docker-compose -f docker-compose-es-kibana-new.yml up -d
# 查看结果
docker ps
# 查看日志
docker-compose -f docker-compose-es-kibana-new.yml logs elasticsearch
5. 测试
- 验证Elasticsearch是否安装成功, 访问 http://你的服务器ip:9200 ,浏览器中显示Elasticsearch的基本信息。
- 验证Kibana是否安装成功, 访问 http://你的服务器ip:5601 ,显示Kibana页面。
- 验证分词器插件是否安装成功,Linux控制台中输入curl -X POST “localhost:9200/_analyze” -H “Content-Type: application/json” -d’{“analyzer”: “ik_smart”, “text”: “今天的天气真好”}’
结果显示:
{"tokens":[{"token":"今天","start_offset":0,"end_offset":2,"type":"CN_WORD","position":0},{"token":"的","start_offset":2,"end_offset":3,"type":"CN_CHAR","position":1},{"token":"天气","start_offset":3,"end_offset":5,"type":"CN_WORD","position":2},{"token":"真好","start_offset":5,"end_offset":7,"type":"CN_WORD","position":3}]}