ElasticSearch 与 Kibana 的版本对应关系:
docker-compose.yml
services:
elasticsearch:
container_name: elastic_search_container
image: elasticsearch:8.17.2
restart: on-failure:3
environment:
- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
- "TZ=Asia/Shanghai"
- "discovery.type=single-node"
# ElasticSearch 的密码,默认账号是 elastic
- "ELASTIC_PASSWORD=123456"
# 关闭https证书校验,只对内网开放所以懒得配SSL证书
- "xpack.security.enabled=false"
ports:
- "9200:9200"
- "9300:9300"
volumes:
# 配置都在 docker-compose 中进行,这里就不映射配置文件了,有需要可以映射出来
# - ./elastic_search/config:/usr/share/elasticsearch/config
- ./elastic_search/data:/usr/share/elasticsearch/data
- ./elastic_search/plugins:/usr/share/elasticsearch/plugins
networks:
- elastic_net
kibana:
container_name: kibana_container
image: kibana:8.17.2
restart: on-failure:3
environment:
- "TZ=Asia/Shanghai"
- "I18N_LOCALE=zh-CN"
# 配置了 ElasticSearch 和 Kibana 在同一个虚拟网络中,可以直接使用 elasticsearch 访问
- "ELASTICSEARCH_HOSTS=http://elasticsearch:9200"
# Kibana 的用户名
- "ELASTICSEARCH_USERNAME=root"
# Kibana 的密码
- "ELASTICSEARCH_PASSWORD=123456"
# 关闭 SSL 校验
- "ELASTICSEARCH_SSL_VERIFICATIONMODE=none"
ports:
- "5601:5601"
# 配置都在 docker-compose 中进行,这里就不映射配置文件了,有需要可以映射出来
# volumes:
# - ./kibana/config:/usr/share/kibana/config
networks:
- elastic_net
depends_on:
- elasticsearch
networks:
elastic_net:
driver: bridge
启动容器
docker compose up -d
进入 Elastic Search 容器,配置账号供 Kibana 使用
Elastic Search 不允许使用默认账号进行外部连接
docker exec -it elastic_search_container /bin/bash
#创建新账户
elasticsearch-users useradd root
#给账户授权
elasticsearch-users roles -a superuser root
elasticsearch-users roles -a kibana_system root
安装 IK 分词器
IK 分词器仓库:
docker exec -it elastic_search_container /bin/bash
#在线安装
./bin/elasticsearch-plugin install https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.17.2.zip
#或者通过本地安装
./bin/elasticsearch-plugin install /YOUR_PATH/elasticsearch-analysis-ik-8.17.2.zip
注意!安装时不会自动导入配置文件,需要手动把压缩包内的文件夹 /config
复制到 /usr/share/elasticsearch/plugins/analysis-ik/
下
重启容器,完成安装
docker restart elastic_search_container