【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
相关推荐
Elastic 中国社区官方博客3 小时前
在 Elasticsearch 中使用利润率与流行度加权来优化电商搜索
大数据·数据库·elasticsearch·搜索引擎·全文检索
搬砖的梦先生7 小时前
Codex 小步迭代 + Git Commit + 多任务并行组合版
大数据·git·elasticsearch
Elastic 中国社区官方博客9 小时前
Elasticsearch Vector DiskBBQ 过滤搜索现已提升 3 – 5 倍速度
大数据·人工智能·elasticsearch·搜索引擎·全文检索
Elasticsearch11 小时前
Elasticsearch ES|QL 中的近似查询:在数十亿条记录上实现快 100 倍的查询,并内置置信区间
elasticsearch
敖正炀12 小时前
Elasticsearch 特性全景与选型指南
elasticsearch
敖正炀12 小时前
倒排索引与文本分析引擎
elasticsearch
曦夜日长13 小时前
Linux系统篇,开发工具(一):从入门到精通的软件安装yum使用
linux·运维·elasticsearch
逸Y 仙X13 小时前
文章三十:Elasticsearch SQL实战案例
java·大数据·sql·elasticsearch·搜索引擎·全文检索
有梦想的小何13 小时前
Cursor AI 编程实战(篇二):Rules、速查与 Adapter/App 全文
java·大数据·elasticsearch·搜索引擎·ai·ai编程
OYangxf1 天前
Git Ignore
大数据·git·elasticsearch