使用docker安装配置 elasticsearch + kibana
使用docker安装配置 elasticsearch8.18.0 + kibana8.18.0
使用docker-compose文件安装步骤如下:
- 当 compose 文件名为 docker-compose.yaml 时,可以省略 -f 参数。否则所有执行 docker-compose 命令时都需要指定 -f 参数。
- 这是基于Linux系统的操作,Windows用户的操作有所区别。
- windows用户可以通过创建挂载卷的方式来管理相关配置文件和数据。
docker volume create <volume-name>。 - 必须先创建挂在卷,然后在docker-compose.yaml文件中配置挂载卷,最后可以一次性的启动成功,无需经过复制配置文件的步骤。
- windows用户可以通过创建挂载卷的方式来管理相关配置文件和数据。
- Linux用户将配置文件复制到宿主机,然后启动容器,容器会自动读取配置文件,无需挂载卷。宿主机内的文件更方便管理。
1、创建如下的docker-compose.yaml文件
name: local-dev
services:
elasticsearch:
image: elasticsearch:8.18.0
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- xpack.security.enabled=true # 开启安全认证,但是禁用 SSL
- xpack.security.http.ssl.enabled=false
- xpack.security.transport.ssl.enabled=false
- ES_JAVA_OPTS=-Xms1g -Xmx3g
- ELASTIC_PASSWORD=my_elastic_password # 设置 elastic 用户的密码
networks: # 配置网络【可忽略该配置】
- my-network
# 数据持久化、配置文件、插件
volumes:
- /data/elasticsearch/data:/usr/share/elasticsearch/data # 数据持久化
# 如需放ik分词器插件,记得配置上停止词字典
# - /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
restart: unless-stopped # 容器退出时总是重启,除非手动停止【可忽略该配置】
kibana:
image: kibana:8.18.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system # 设置 kibana_system 用户的用户名【kibana需要在后台连接es,需要es提供一个账号】
- ELASTICSEARCH_PASSWORD=your_kibana_system_password # 此行的密码可以为任意值,下面的操作将会设置成这个密码
networks:
- my-network
depends_on:
- elasticsearch # kibana 依赖 elasticsearch
restart: unless-stopped
networks:
my-network:
driver: bridge
2. 先启动es,并将es的配置文件复制到宿主机
mkdir -p /data/elasticsearch/data # 递归创建数据持久化目录
docker compose up elasticsearch -d
docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch/
# docker cp <elasticsearch的容器名>:/usr/share/elasticsearch/config /data/elasticsearch/
3. 在es中生成kibana所需的账号密码
# 配置一下 kibana_system 这个账户的自定义密码
# 输入此命令后,需要输入y后,再输入两次yaml文件中配置的密码
# 需要将这个 账号+密码 配置到kibana的yaml中
docker exec -it elasticsearch bin/elasticsearch-reset-password -u kibana_system -i
# [-u, --username] 该参数指定用户名,必须携带此参数
# [-i, --interactive] 该参数指定交互式输入密码。不携带此参数时,将会生成一个随机密码
4. 启动kibana,并将kibana的配置文件复制到宿主机
docker compose up kibana -d
mkdir -p /data/kibana
docker cp kibana:/usr/share/kibana/config /data/kibana/
5. 在kibana中生成一组用于存储对象、会话信息和报告数据的加密密钥
docker exec -it kibana kibana-encryption-keys generate
# docker exec -it <kibana的容器名> kibana-encryption-keys generate
生成的密钥如下,密钥可以多次生成:
xpack.encryptedSavedObjects.encryptionKey: 9f51f0ca45e26dffbac3b335b57736c6
xpack.reporting.encryptionKey: cbedf2f1e115ecbc29186065288cb1e6
xpack.security.encryptionKey: f9d61ebab8e544ff397ac271b3feea08
6. 修改kibana的配置文件 kibana.yml ,配置中文语言及密钥
vim /data/kibana/kibana.yml
# 在打开的文件中增加如下配置:
i18n.locale: "zh-CN"
xpack.encryptedSavedObjects.encryptionKey: xxx-上一步生成的密钥
xpack.reporting.encryptionKey: xxx-上一步生成的密钥
xpack.security.encryptionKey: xxx-上一步生成的密钥
7. 下线es和kibana,修改docker-compose.yaml文件后重新启动
下线操作如下:
docker compose down elasticsearch
docker compose down kibana
yaml文件如下:
name: local-dev
services:
elasticsearch:
image: elasticsearch:8.18.0
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false
- xpack.security.transport.ssl.enabled=false
- ES_JAVA_OPTS=-Xms1g -Xmx3g
- ELASTIC_PASSWORD=my_elastic_password
networks:
- my-network
volumes:
- /data/elasticsearch/data:/usr/share/elasticsearch/data
- /data/elasticsearch/config:/usr/share/elasticsearch/config # 此行有改动
- es8.18-config:/usr/share/elasticsearch/config
restart: unless-stopped
kibana:
image: kibana:8.18.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=your_kibana_system_password
networks:
- my-network
depends_on:
- elasticsearch
volumes:
- /data/kibana/config:/usr/share/kibana/config # 此行有改动
restart: unless-stopped
networks:
my-network:
driver: bridge
上线
docker compose up -d
浙公网安备 33010602011771号