ECK集群Filebeat无法连接Elasticsearch服务问题排查咨询
问题根因定位
你手动curl ES根路径正常但Filebeat连接报master_not_discovered_exception的核心差异是:ES根路径请求由接收请求的节点本地直接响应,不需要访问集群master节点;而Filebeat初始化连接时需要拉取集群版本、索引模板等元数据,这类请求必须走master节点,只要集群master选举异常就会返回503,和你猜测的凭证、SSL证书无关。
排查解决步骤
- 首先验证ES集群真实健康状态,在Filebeat Pod内执行以下命令:
curl -k -u "user:$PASSWORD" https://quickstart-es-http.quickstart.svc:9200/_cluster/health?pretty
查看返回结果的status字段,如果是yellow/red,且number_of_master_nodes为0,可确认集群出现master选举故障。
- 排查ES节点状态:
- 查看所有ES Pod运行状态:
kubectl get pods -l elasticsearch.k8s.elastic.co/cluster-name=quickstart -n quickstart,确认是否有master eligible节点异常退出 - 查看ES Pod日志,排查选举失败原因:常见原因包括集群网络不通、master eligible节点数量不足无法达到法定票数、节点磁盘使用率超过95%被自动熔断踢出集群
- 查看所有ES Pod运行状态:
- 修复ES主节点故障后,执行以下操作重启Filebeat触发重连:
kubectl rollout restart beat/quickstart -n quickstart
额外配置修复
你提供的Filebeat YAML存在语法错误,会导致GCP模块凭证挂载异常,需修改volumes配置段:
# 错误配置 - name: credentials secret: defaultMode: 420 items: secretName: elastic-service-account # 修正后配置(不需要空的items字段) - name: credentials secret: defaultMode: 420 secretName: elastic-service-account
内容的提问来源于stack exchange,提问作者bugcat
相关产品推荐
相关产品推荐

