Zabbix监控K8S的PV卷

一、简介

在Kubernetes (K8S) 中,Persistent Volume (PV) 是集群中的一个抽象层,它代表了底层存储资源,例如网络存储系统(如NFS、Ceph、GlusterFS等)或本地存储(如硬盘驱动器、分区或目录)。PV 是集群级别的资源,可以被多个 Pod 共享,并且它的生命周期独立于任何使用它的 Pod。

当企业的 K8S 集群规模不断扩大和业务日益复杂时,其PV 卷的数量也在不断增加。PV 卷可能会出现容量不足、挂载异常、损坏等问题,这些问题如果不能及时发现和处理,可能会导致应用程序运行失败、数据丢失等严重后果。通过 Zabbix 对 K8S 的 PV 卷状态进行监控,我们可以实时获取 PV 卷的各项指标,提前预警潜在风险,保障业务的稳定运行。

二、K8S的Master上安装Zabbix Agent代理

三、检查PV命令

四、自定义监控脚本,将监控数据转换成JSON格式(LLD)

复制代码
#!/bin/bash
echo -n '{"data": ['
kubectl get pv -o custom-columns=NAME:.metadata.name,STATUS:.status.phase --no-headers | \
  awk '{
    if(NR>1) printf ",";
    printf "{\"{#PV_NAME}\":\"%s\", \"{#PV_STATUS}\":\"%s\"}", $1, $2
  } END {print "]}"
}

五、Zabbix Agent代理中创建自定义key并重启Agent代理服务

复制代码
UserParameter=kubernetes.pv.discovery,/home/zabbix_agents/scripts/get_k8s_pv.sh #自动发现key
UserParameter=kubernetes.pv.status[*],kubectl get pv $1 -o jsonpath='{.status.phase}'  #状态值

六、监控配置比配置触发器

创建自定义自动发现监控项及监控项原型前面文章已说明,此处不过多阐述。

创建触发器(状态值为Failed或Pending触发告警)

丰富项目建设及落地经验和各类监控对象模板。欢迎一起交流探讨,解决你的技术难题!wechet:king_songax

相关推荐
牛奶咖啡1319 小时前
k8s容器编排技术实践——OpenEuler安装部署k8s
kubernetes·信创·containerd配置加速器·openeuler安装k8s·k8s的常见安装方式·彻底关闭swap·工作节点使用kubectl
老码观察20 小时前
K8s 容器化部署的宿主机资源规划的踩坑实录
docker·容器·kubernetes
我是谁??20 小时前
【6】基于 Docker + YOLOv8 的模型部署实战(GTX1660S + Ubuntu22.04)
yolo·docker·容器
hanbo17C220 小时前
内卷时代,品牌官网如何成为企业突围的“第二增长曲线”?
运维开发·ux
密瓜智能20 小时前
HAMi 正式接入 Kubernetes DRA:下一代 GPU 资源模型实践指南
云原生·容器·kubernetes
魔极客20 小时前
1panel面析中Ollama Docker配置错误解析与修复
运维·docker·容器
JAVA社区20 小时前
Java进阶全套教程(八)—— Docker超详细实战详解
java·运维·开发语言·docker·容器·面试·职场和发展
Mr.Java.20 小时前
Spring AI MCP Server分布式翻车现场:Streamable协议的甜蜜与危险,以及无状态救赎
java·后端·spring·ai·负载均衡
我是谁??20 小时前
【5】基于 Docker + YOLOv8 环境实现模型量化(GTX1660S + Ubuntu22.04)
yolo·docker·容器
我是谁??20 小时前
【4】基于 Docker + YOLOv8 环境将模型转换为 ONNX(GTX1660S + Ubuntu22.04)
yolo·docker·容器