K8S部署的ELK分片问题解决,报错:unexpected error while indexing monitoring document

背景

一开始是Kibana的展示web上看不见收集的日志,看下ES的pod日志报错unexpected error while indexing monitoring document,经过排查是磁盘满了。

接着就是这段故事:K8S的StorageClass使用节点本地LVM逻辑卷怎么进行PVC扩容

扩容完成后,来看看ES回复正常了吗

处理过程

磁盘扩容完毕,接着看下ES的日志,得又是全报错,原本还以为能自动恢复

在ELK,当 Elasticsearch 集群磁盘空间不足(或触发其他保护条件)时,会自动为所有索引添加 index.blocks.read_only_allow_delete: true 的设置。

此时集群只能读取或删除数据,无法执行写入操作(如创建索引、写入文档、更新映射等)。

这个配置既然不能自动恢复,那就通过修改配置手动恢复下吧。

先看下配置

shell 复制代码
curl -u 用户名:密码 -X GET "http://ES的IP:端口/_all/_settings?pretty"

果然有index.blocks.read_only_allow_delete: true

处理可以直接在Kibana上的开发工具终端执行

shell 复制代码
PUT _all/_settings
{
  "index.blocks.read_only_allow_delete": null
}

调用api的方式也可

shell 复制代码
curl -u "username:password" -X PUT "http://<es-host>:9200/_all/_settings" \
  -H "Content-Type: application/json" \
  -d '{
    "index.blocks.read_only_allow_delete": null
  }'

执行完成后,重新看下block还在不在

shell 复制代码
curl -u 用户名:密码 -X GET "http://ES的IP:端口/_all/_settings?pretty"

blocks字段没了,完成修改。

到Kibana上看下日志是否有数据,验证完成。

不生效情况

如果执行api或者在界面上执行修改状态后,也没有报错和回显,但是验证的时候还是没更改,那就是状态未生效,考虑程序执行卡顿或者写入问题等其他情况,我其实过程中就遇见这种问题,解决方法也简单,重新下es即可。

shell 复制代码
kubectl rollout restart statefulset elasticsearch-master -n logging

重启完成后重新执行流程完成报错处理

相关推荐
嵌入式×边缘AI:打怪升级日志几秒前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
IT界的老黄牛3 分钟前
停电后 Redis 集群两节点起不来:fix 完还报 Bad file format?多部分 AOF 修复的正确姿势
运维·redis·缓存
接着奏乐接着舞5 分钟前
3D Tiles tileset.jso 数据格式
运维·服务器·3d
李小白202002027 分钟前
RK3568 linux6.1 死机
linux·运维·服务器
杨云龙UP21 分钟前
Oracle数据库启动失败:ORA-29701、ORA-01565、ORA-17503故障处理记录_20260429
linux·运维·数据库·oracle·centos
江湖有缘21 分钟前
容器化部署|Docker搭建Blinko轻量笔记系统
笔记·docker·容器
Agent产品评测局25 分钟前
离散制造业生产流程优化,AI落地实操步骤详解:从传统自动化到企业级智能体的技术范式跃迁
运维·人工智能·ai·自动化
亚空间仓鼠32 分钟前
Kubernetes技术入门与实践(五):DaemonSet与StatefulSet
容器·贪心算法·kubernetes
Dontla33 分钟前
kubectl命令介绍(K8s命令行客户端)
云原生·容器·kubernetes
Gary Studio1 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu