【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
相关推荐
待什么青丝2 小时前
【git的摸鱼技巧】之工欲善其事
git·elasticsearch·搜索引擎
杨某不才2 小时前
内网环境下,使用Docker安装Elasticsearch分词器插件
elasticsearch·docker·jenkins
2601_961194022 小时前
教资科三美术考什么|初中高中美术题型考点和模板资料
leetcode·elasticsearch·职场和发展·蓝桥杯·pat考试·lucene
ting94520003 小时前
InsForge Backend Branching 后端全链路 Git 式分支技术原理、架构实现与底层源码剖析
人工智能·git·elasticsearch·架构
杨某不才3 小时前
内网离线方式Docker安装Elasticsearch
elasticsearch·docker·jenkins
汪小哥4 小时前
Elasticsearch highlight 导致Html 语法异常分析
elasticsearch
可乐ea5 小时前
【知识获取与分享社区项目 | 项目日记第 24 天】终章总结:从认证、发布、计数、Feed、搜索到 RAG:完整复盘一个知识社区后端系统
java·spring boot·redis·mysql·elasticsearch·ai·kafka
汪小哥6 小时前
Elasticsearch Preference + Slice 加速查询实战案例
elasticsearch
金融支付架构实战指南16 小时前
支付系统 ES 实战案例:从索引创建到真实业务查询
大数据·elasticsearch·搜索引擎·支付
Elastic 中国社区官方博客21 小时前
13.7万人,零人工决策:使用 Elasticsearch 实现智能体驱动的灾害响应系统
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索