You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes的Logstash/ECK中配置ssl_certificate_authorities参数?

解决Elasticsearch Operator生成的自签名证书在Logstash中配置ssl_certificate_authorities的问题

步骤1:定位Elasticsearch CA证书对应的Secret

Elastic Operator部署时,会自动将自签名CA证书存储在Kubernetes Secret中,默认命名规则为 <your-es-cluster-name>-es-ca(比如集群名为my-es-cluster,则Secret名为my-es-cluster-es-ca)。

先用命令确认Secret存在:

kubectl get secrets | grep es-ca

步骤2:提取CA证书内容

从Secret中导出明文的CA证书:

kubectl get secret <your-es-cluster-name>-es-ca -o jsonpath='{.data.ca\.crt}' | base64 -d

将输出的证书内容保存为一个文件(比如es-ca.crt),确保Logstash进程能访问到该文件的路径。

步骤3:配置Logstash的ssl_certificate_authorities

在Logstash的Elasticsearch输出配置块中,指定证书文件路径:

output {
  elasticsearch {
    hosts => ["https://<es-service-name>:9200"] # 替换为你的ES服务地址
    ssl => true
    ssl_certificate_authorities => ["/path/to/es-ca.crt"] # 替换为实际证书路径
    user => "elastic" # 默认用户名,可根据实际情况修改
    password => "<your-elastic-password>" # 从ES的secret中获取,命令示例:kubectl get secret <cluster>-es-elastic-user -o jsonpath='{.data.elastic}' | base64 -d
  }
}

步骤4:Kubernetes环境下部署Logstash的优化方案

如果Logstash也部署在K8s集群中,直接挂载Secret更方便,无需手动复制证书:

  1. 在Logstash的Deployment配置中添加Volume:
volumes:
  - name: es-ca-cert
    secret:
      secretName: <your-es-cluster-name>-es-ca
  1. 在容器配置中挂载该Volume到指定路径:
volumeMounts:
  - name: es-ca-cert
    mountPath: /usr/share/logstash/config/certs
    readOnly: true
  1. 此时Logstash配置中的证书路径应为:
ssl_certificate_authorities => ["/usr/share/logstash/config/certs/ca.crt"]

内容的提问来源于stack exchange,提问作者Swpnil Pawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:06:05