【ES & Kibana】Kibana 启动 statusCode: 429 报错

ES 活着,Kibana 死了?报错 cluster_block_exception;真相:根目录磁盘超95%,ES触发保护性只读锁定,Kibana 写不进 .kibana 索引。

1、现象

bash 复制代码
# es 可以正常访问,kibana 服务无法正常启动
# 查看 kibana 启动日志(此处为 systemctl 方式启动的 kibana)
journalctl -u kibana -f
# kibana 报错
Apr 24 15:29:43 efk kibana[1226976]: FATAL Error: Unable to complete saved object migrations for the [.kibana] index. Please check the health of your Elasticsearch cluster and try again. Unexpected Elasticsearch ResponseError: statusCode: 429, method: PUT, url: /.kibana_7.17.22_001/_mapping?timeout=60s error: [cluster_block_exception]: index [.kibana_7.17.22_001] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];,  

2、问题原因

  • **问题根因:**Elasticsearch 磁盘空间不足,而非 Kibana 本身故障

  • **关键错误日志:**index .kibana_7.17.22_001 blocked by: TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block

  • **原因解析:**Elasticsearch节点触发了磁盘使用率警戒水位线(默认≥95%);为保护集群稳定,ES自动将所有相关索引设为read-only-allow-delete(只读状态);Kibana 启动时需要创建/写入.kibana索引来保存配置,因此被阻塞而退出

3、解决办法

bash 复制代码
# 手动清理磁盘空间(删除不必要的文件)
# (可选)删除 es 不必要索引
curl -X DELETE "http://x.x.x.x:9200/your_old_index_name" -u elastic:your_password
# 解除 es 的只读锁定
curl -X PUT "http://x.x.x.x:9200/_all/_settings" -H 'Content-Type: application/json' -u elastic:your_password -d '{
  "index.blocks.read_only_allow_delete": null
}'
# 重启 kibana
systemctl restart kibana
ssytemctl status kibana

4、其他

4.1、es 启动参数分析

bash 复制代码
# 查看 es 的启动参数
ps -ef |grep elastic

# 配置文件目录是 /etc/elasticsearch
-Des.path.conf=/etc/elasticsearch
# 配置文件
elasticsearch.yml      # 核心配置文件,网络、端口、集群名等重要配置
jvm.options            # JVM(Java虚拟机)参数配置文件,用于设置JVM堆内存大小(-Xms, -Xmx)等

# elasticsearch.yml
http.port:HTTP端口,用于API调用,默认 9200-9300
transport.port:TCP传输端口,用于集群内部节点之间的通信,默认 9300-9400
network.host:服务绑定的IP地址,若未配置,可能会绑定在 127.0.0.1(仅本地访问)或 0.0.0.0(允许外部访问)
cluster.name::elasticsearch	集群名称,用于节点发现
node.name:主机名,节点名称(与主机名一致)
path.data:数据存储目录
path.logs:日志存储目录(排查问题时非常重要)

4.2、使用命令重置 es 密码

bash 复制代码
# 为内置用户设置密码(交互式)
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
# 或者自动生成随机密码
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
# 重置 es 用户密码
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

# 默认用户名
elastic:超级管理员
kibana:Kibana系统用户
logstash_system:Logstash系统用户
beats_system:Beats系统用户

# 使用elastic用户访问
curl -u elastic:your_password http://x.x.x.x:9200
# 查看集群健康状态
curl -u elastic:your_password http://x.x.x.x:9200/_cluster/health
相关推荐
ly76892 小时前
倒排索引与 FST 在 Lucene 中的内存布局:segment、docValues 与词典压缩的工程取舍
elasticsearch·lucene·倒排索引·doc values·fst
Elasticsearch4 小时前
利用预计算上下文,更快速、更低成本地开展支持问题调查
elasticsearch
小小小米粒7 小时前
重置本地git
大数据·git·elasticsearch
ly76897 小时前
Spring Boot 集成 Elasticsearch 的生产实践:客户端选型、索引生命周期与批量写入容错
spring boot·elasticsearch·索引生命周期·java api client·批量写入
Elasticsearch11 小时前
认识 Elastic® nightshift AI SRE,你的全天候 SRE 同事
elasticsearch
Elasticsearch12 小时前
我们如何构建 Context Engine,将 agent 的 token 使用量降低 71%
elasticsearch
鱼宵12 小时前
Spring AI 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
人工智能·redis·spring·elasticsearch·springai
骑士雄师13 小时前
rag的具体案例:通过es在意图识别的时候进行个命中。
大数据·elasticsearch·搜索引擎
vx_Biye_Design15 小时前
flask学生课程笔记共享系统29026-计算机课程设计、毕业设计
java·javascript·spring boot·后端·elasticsearch·flask·课程设计
Elastic 中国社区官方博客15 小时前
AWS 自动化根因分析:从 CloudWatch 告警到完成故障诊断,仅需 36 秒
大数据·运维·elasticsearch·自动化·aws