故障处理--kuboard无法访问,etcd磁盘空间不足

问题现象:

kuboard页面报错

排查过程:

1、查看kuboard是否正常。

2、查看kuboard容器的日志:

powershell 复制代码
docker logs -f  --tail=10  kuboard
大概内容如下:
level=error msg="failed to rotate keys: etcdserver: mvcc: database space exceeded"

表示etcd磁盘空间不足,etcd默认的空间配额限制为2G,超出空间配额限制就会影响服务,需要定期清理。

3、查看etcd的启动配置entrypoint.sh,发现没有设置etcd磁盘大小,默认为2G

处理过程:

1、查看kuboard信息,找到kuboard-data的位置

2、查看etcd-data大小。发现db大于2G

3、进入容器内部,查看告警信息。alarm:nospace,也表示空间不足

4、查看etcd告警

powershell 复制代码
[root@master1 etcd-data]# docker exec -it kuboard /bin/sh
# ETCDCTL_API=3 etcdctl --endpoints="http://127.0.0.1:2379" alarm list
memberID:6460912315094810421 alarm:NOSPACE 

5、按照如下步骤临时处理

powershell 复制代码
# 备份db
etcdctl snapshot save backup.db
# 查看当前版本
rev=$(ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
# 压缩旧版本
ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
# 整理多余的空间
ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 defrag
# 取消告警信息(之前有nospace的告警)
ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
# 再次查看etcd的状态(发现ERROR字段已为空)
ETCDCTL_API=3 etcdctl --endpoints="http://127.0.0.1:2379" --write-out=table endpoint status

整理多余的空间时有如下报错

错误原因

etcdctl 的默认命令超时为 5 秒,但碎片整理花费的时间比这更长。

解决方案

指定超时时间 --command-timeout

powershell 复制代码
# 整理多余的空间
# ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 --command-timeout=30s defrag
Finished defragmenting etcd member[http://127.0.0.1:2379]
# 取消告警信息,不取消告警,ectd一样不可用
# ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
memberID:6460912315094810421 alarm:NOSPACE 
# 再次查看ETCD存储使用情况
# ETCDCTL_API=3 etcdctl --endpoints="http://127.0.0.1:2379" --write-out=table endpoint status

故障解决:

再次查看etcd-data文件大小

相关推荐
Elastic 中国社区官方博客3 分钟前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
仍然.7 分钟前
MYSQL--- 聚合查询,分组查询和联合查询
数据库
一 乐11 分钟前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
啦啦啦_999913 分钟前
Redis-0-业务逻辑
数据库·redis·缓存
自不量力的A同学1 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.1 小时前
Mysql
数据库·mysql
全栈前端老曹1 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG8631 小时前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
阿钱真强道2 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
逍遥德2 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring