如何使用Zabbix监控K8S的PV卷状态等信息

在Kubernetes (K8S)环境中,持久卷(Persistent Volume, PV)是存储资源的重要组成部分。本文将介绍如何使用Zabbix自定义键值脚本方式监控K8S的PV卷状态等信息。

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

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

本文将介绍如何使用Zabbix自定义键值脚本方式监控K8S的PV卷状态等信息。


一、首先在K8S_master节点上安装Zabbix_Agent服务

r6aPqJtU689556ccc7da3.png


二、查看PV命令是否能正常运行

z4Wy6NKV689556db2ecf3.png

三、编写自定义监控脚本,通过自动发现格式生成PV

#!/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 "]}"
}'

ck9d4sIQ689556e776a8c.png

uLKpDHvg689556efc0a19.png

四、添加zbx自定义键值

UserParameter=kubernetes.pv.discovery,/usr/local/lwops/scripts/get_k8s_pv.sh #自动发现规则键值
UserParameter=kubernetes.pv.status[*],kubectl get pv $1 -o jsonpath='{.status.phase}'  #获取STATUS列的状态键值

1Gw7jQ74689556fb8e695.png

五、 重启Agent服务

# systemctl restart zabbix_agentd


六、 创建自动发现规则

IRRH2Guz6895570430feb.png

七、 创建监控原型

8MNBbAja6895570a86fc1.png

八、 创建触发器类型

状态值如果是Failed或Pending状态产生告警

eePbP7oP6895571238c40.png

九、 查看监控项指标是否采集正常

XJVqcTFi6895571c598eb.png

0 条评论

请先 登录 后评论
Lyang
Lyang

1 篇文章

作家榜 »

  1. 乐维君 462 文章
  2. YOHOHO 14 文章
  3. 细雨闲花 13 文章
  4. 机灵小和尚 13 文章
  5. 我是一只小菜鸡 12 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章