Docker安装Elasticsearch 7.17.0和Kibana 7.17.0并配置基础安全
1. 准备工作
- 确保已安装Docker并启动服务
- 创建必要的目录结构:
mkdir -p /opt/es/{config,data,plugins} mkdir -p /opt/kibana/config chmod -R 777 /opt/es /opt/kibana
2. 安装Elasticsearch
-
拉取镜像:
docker pull elasticsearch:7.17.0
-
创建配置文件
/opt/es/config/elasticsearch.yml
:cluster.name: "docker-cluster" network.host: 0.0.0.0 http.cors.enabled: true http.cors.allow-origin: "*" xpack.security.enabled: true discovery.type: single-node
-
启动容器:
docker run --name es7.17.0 -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /opt/es/data:/usr/share/elasticsearch/data \ -v /opt/es/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.17.0
-
设置密码:
docker exec -it es7.17.0 /bin/bash ./bin/elasticsearch-setup-passwords auto
记录生成的密码,特别是elastic用户的密码
3. 安装Kibana
-
拉取镜像:
docker pull kibana:7.17.0
-
创建配置文件
/opt/kibana/config/kibana.yml
:server.host: "0.0.0.0" elasticsearch.hosts: ["http://<ES_IP>:9200"] elasticsearch.username: "kibana_system" elasticsearch.password: "<KIBANA_SYSTEM_PASSWORD>" xpack.security.enabled: true
-
启动容器:
docker run --name kibana7.17.0 -p 5601:5601 \ -v /opt/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \ -d kibana:7.17.0
4. 验证安装
- Elasticsearch: 访问
http://<IP>:9200
,使用elastic用户和密码登录 - Kibana: 访问
http://<IP>:5601
,使用elastic用户和密码登录
5. 基础安全配置
-
修改默认密码:
curl -u elastic:<password> -X POST "localhost:9200/_security/user/elastic/_password" -H "Content-Type: application/json" -d'{"password":"新密码"}'
-
启用HTTPS(可选):
- 生成证书:
docker exec -it es7.17.0 /bin/bash ./bin/elasticsearch-certutil ca ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 配置elasticsearch.yml:
xpack.security.transport.ssl.enabled: true xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
- 生成证书: