Elastic stack启用安全认证,启用https

本文详细介绍了如何在Elastic Stack中启用HTTPS和安全认证,包括生成证书、配置各组件(Elasticsearch, Kibana, Logstash, Metricbeat)以及解决在连接过程中遇到的证书验证、授权等问题。通过这些步骤,确保了Elastic Stack在安全的环境下运行。" 107788999,9953860,看病预约信息管理系统设计与实现,"['后端开发', '数据库管理', '系统架构', 'PHP', 'Java', 'NET', 'Python']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备

Elasticsearch集群搭建好;我使用的docker方式部署;

二、生成证书

1、进入ES主节点容器,在${ES_HOME}/bin 下执行:
./elasticsearch-certutil ca		#创建一个证书颁发机构

再执行:

./elasticsearch-certutil cert --ca elastic-stack-ca.p12

elastic-stack-ca.p12 就是上一步生成的(默认就在当前目录中)
此时在当前目录生成名为 elastic-certificates.p12 的文件,它是单个PKCS#12密钥存储库,其中包括节点证书、节点密钥和CA证书。默认情况下,elasticsearch-certutil 生成没有主机名信息的证书(也就是说,它们没有任何主题可选名称字段)。这意味着可以对集群中的每个节点使用此证书,但您必须关闭主机名验证。
将其从容器中拷贝出来。

备注:elasticsearch-certutil 的更多用法和参数,请参照:https://www.cnblogs.com/sanduzxcvbnm/p/12053850.html

2、生成PKI客户端证书,供KIbana等组件到ES的校验使用

PKI身份验证的证书必须由与用于加密HTTP通信的证书相同的CA进行签名。因此我们直接使用拷贝出的 elastic-certificates.p12,在主机上执行:

# Private Key 私钥
openssl pkcs12 -in elastic-certificates.p12 -nocerts -nodes > client.key
# Public Certificate 公共证书
openssl pkcs12 -in elastic-certificates.p12 -clcerts -nokeys  > client.cer
# CA Certificate 签署公共证书的CA
openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -chain > client-ca.cer
3、分发证书文件

将生成的 client.key、client.cer、client-ca.cer 以及 elastic-certificates.p12文件拷贝进(或者另起容器-v挂载进)各个ES节点的${ES_HOME}/config/目录下;
也要拷贝进 kibana 容器的${KIBANA_HOME}/config/certs/目录下;
也要拷贝进logstash容器的${LOGSTASH_HOME}/config/目录下
其实可以拷贝进任意目录,只要后面配置文件中指定正确就行

注意,在这之前先将这些文件 chmod 777

三、各组件配置文件详情

1、elasticsearch.yml
# 集群配置-主节点
cluster.name: "hnjt-es-cluster"
node.name: esm1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.10.180
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: false
discovery.zen.ping.unicast.hosts: ["192.168.10.180:9301"]
discovery.zen.minimum_master_nodes: 1

# 加密节点间通信-每个节点容器都要添加
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate		#只验证证书是否受信任,不执行主机名验证。还可以设置成 full(还要验证主机名)、none(不验证证书)
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12		#指定证书
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12		#将密钥存储库也用做信任存储库

# 加密http通信-每个节点容器都要添加
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12		#指定使用的证书
xpack.security.http.ssl.truststore.path: elastic-certificates.p12		#密钥存储库包含CA证书,因此也可以用作信任存储库
### Elastic Stack 日志管理、搜索和数据分析使用指南 #### 访问 Kibana 用户界面 为了开始使用 Kibana,通常需要访问 `http://localhost:5601` 开始操作[^1]。 #### 配置日志收集与传输 对于日志管理而言,可以采用多种方式将日志数据输入至Elasticsearch中。一种常见的方式是利用Logstash作为中间件,从不同的源(比如服务器上的日志文件)获取数据并经由配置好的pipeline传递给Elasticsearch进行存储;另一种则是直接运用Beats系列工具中的Filebeat来完成这一过程,它能够更高效地读取本地文件并将之转发出去[^2]。 #### 实施日志结构化处理 为了让非结构化的原始日志变得易于查询分析,在将其送入Elasticsearch前应当先对其进行必要的预处理工作。这可以通过两种主要途径达成——一是借助于Logstash强大的插件机制来进行复杂的转换逻辑定义;二是启用Elasticsearch自身的ingest节点特性,从而实现较为简单的字段映射或是轻度清洗任务[^3]。 #### 构建可视化面板展示关键指标 一旦完成了上述准备工作之后,则可以在Kibana里创建各类图表组件构成综合性的仪表板(Dashboard),用来直观呈现所关心的各项业务统计信息或者是系统运行状态概览图谱。例如针对Web服务性能监测场景下可设计出反映响应时间分布情况直方图以及错误率趋势折线图等元素组成的视图页面。 #### 性能调优建议 考虑到长期积累下来的历史记录可能会占用大量磁盘空间进而影响整体效率表现,因此有必要建立合理的生命周期管理制度定期清除过期无价值保留的信息条目。另外适当调整集群内部各节点资源配置比例同样有助于提升整个平台的服务质量水平[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值