
Elasticsearch & Kibana & Filebeat开启SSL通信
a.、新建
b. 新建
c. 新建
3. 创建
a. 修改
发布日期:2025-03-29 16:50:29
浏览次数:5
分类:精选文章
本文共 4071 字,大约阅读时间需要 13 分钟。
EFK 搭建并开启 TLS 通信
Elasticsearch 与 Kibana 搭建指南
1. 安装 Docker
安装 Docker 和 Docker Compose 是quisites 的前提条件,安装方法请参考标准文档或之前的相关文章。
2. 配置文件准备
a.、新建 instances.yml
instances: - name: es01 dns: ["es01", "localhost"] ip: ["127.0.0.1"] - name: kib01 dns: ["kib01", "localhost"]
b. 新建 .env
配置文件
COMPOSE_PROJECT_NAME=esCERTS_DIR=/usr/share/elasticsearch/config/certificatesVERSION=7.8.0
c. 新建 create-certs.yml
适用
version: '2.2'services: create_certs: image: elasticsearch:${VERSION} container_name: create_certs command: - bash -c 'yum install -y -q -e 0 unzip; if [[ ! -f /certs/bundle.zip ]]; then bin/elasticsearch-certutil cert --silent --pem --in config/certificates/instances.yml -out /certs/bundle.zip; unzip /certs/bundle.zip -d /certs; fi; chown -R 1000:0 /certs' working_dir: /usr/share/elasticsearch volumes: - certs:/certs - .:/usr/share/elasticsearch/config/certificates networks: - elasticvolumes: certs:
3. 创建 elastic-docker-tls.yml
配置文件
version: '2.2'services: es01: image: elasticsearch:${VERSION} container_name: es01 environment: - node.name=es01 - cluster.name=es-docker - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - xpack.license.self_generated.type=trial - xpack.security.enabled=true - xpack.security.http.ssl.enabled=true - xpack.security.http.ssl.key=$CERTS_DIR/es01/es01.key - xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt - xpack.security.http.ssl.certificate=$CERTS_DIR/es01/es01.crt - xpack.security.transport.ssl.enabled=true - xpack.security.transport.ssl.verification_mode=certificate - xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt - xpack.security.transport.ssl.certificate=$CERTS_DIR/es01/es01.crt - xpack.security.transport.ssl.key=$CERTS_DIR/es01/es01.key ulimits: memlock: soft: -1 hard: -1 volumes: - data01:/usr/share/elasticsearch/data - certs:$CERTS_DIR ports: - 9200:9200 networks: - elastic healthcheck: test: curl --cacert $CERTS_DIR/ca/ca.crt -s https://localhost:9200 interval: 30s timeout: 10s retries: 5 kib01: image: kibana:${VERSION} container_name: kib01 depends_on: {"es01": {"condition": "service_healthy"}} ports: - 5601:5601 environment: SERVERNAME: localhost ELASTICSEARCH_URL: https://es01:9200 ELASTICSEARCH_HOSTS: https://es01:9200 ELASTICSEARCH_USERNAME: kibana_system ELASTICSEARCH_PASSWORD: CHANGEME ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES: $CERTS_DIR/ca/ca.crt SERVER_SSL_ENABLED: "true" SERVER_SSL_KEY: $CERTS_DIR/kib01/kib01.key SERVER_SSL_CERTIFICATE: $CERTS_DIR/kib01/kib01.crt volumes: - certs:$CERTS_DIR networks: - elasticvolumes: data01: certs:
4. 执行操作步骤
a. 第一次运行创建证书
docker-compose -f create-certs.yml run --rm create_certs
b. 查看证书目录
此时应生成 /var/lib/docker/volumes/es_certs/_data
目录下的证书文件,如 bundle.zip
、ca
、es01
、kib01
等。
c. 启动 Elasticsearch 和 Kibana
docker-compose -f elastic-docker-tls.yml up -d
d. Elasticsearch 集群完成后,生成默认用户密码
docker exec es01 /bin/bash -c \"bin/elasticsearch-setup-passwords auto --batch --url https://es01:9200"
请记录生成的密码以供后续使用。
5. 修改配置文件
a. 修改 elastic-docker-tls.yml
中的 Kibana 密码
Kibana 部分添加以下内容:
- ELASTICSEARCH_PASSWORD: your_kibana_password
确保将密码替换为安全的强密码。
b. 重启服务
docker-compose -f elastic-docker-tls.yml stopdocker-compose -f elastic-docker-tls.yml up -d
6. 验证 Kibana 登录
访问 https://<hostname>:5601
,即可进入 Kibana界面。
Filebeat 配置
Filebeat 可以通过多种方式安装,这里采用 tar 包安装方式,并进行相关配置,确保 SSL 通信支持。
# 输出到 Elasticsearch 的配置output.elasticsearch: hosts: ["https://127.0.0.1:9200"] protocol: "https" username: elastic password: rMesfHfEETESJEliJSIv ssl.certificate_authorities: /root/filebeat/ca.crt ssl.certificate: /root/filebeat/es01.crt ssl.key: /root/filebeat/es01.key index: "tiktok-%{+yyyy.MM.dd}"
以上配置为 Filebeat 与 Elasticsearch 的通信提供了必要的 SSL 信息。完成配置后,Filebeat 支持通过 HTTPS 收集日志并写入 Elasticsearch。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月25日 22时47分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
计算机网络基础:VLAN(虚拟局域网)
2023-01-23
计算机网络基础:文件共享服务器(注册表更改)
2023-01-23
计算机网络基础:用户和组管理
2023-01-23
基于Arduino的ESP32-S3 + OLED(4pin)的文字取模
2023-01-23
乒乓球问题
2023-01-23
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
PHP实现异步定时多任务消息推送
2023-01-23
回溯法介绍
2023-01-23
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
Servlet的三个基本方法
2023-01-23
反 TypeScript
2023-01-23
数据分析与处理方法
2023-01-23
打开有惊喜
2023-01-23