Zabbix实现监控Kubernetes

网上监控 Kubernetes 的工具大部分是 Promethues,基本很少有关于 Zabbix 实现监控Kubernetes 的文章。Zabbix 6.0 LTS 新增 Kubernetes 监控功能,可以从 Kubernetes 系统从多个维度采集指标。我们通过这篇文章实现对 Kubernetes 的监控。

在这里插入图片描述

一、集群监控模板

Zabbix 6.0 版本中默认带 Kubernetes 监控模板,如果是从低版本升级上来的,我们也可以通过下载官方模板进行导入。官方模板地址

模板名称解释
Kubernetes API server by HTTPK8S ApiServer组件指标模板
Kubernetes cluster state by HTTPK8S 集群指标模板
Kubernetes Controller manager by HTTPK8S ControllerManager组件指标模板
Kubernetes kubelet by HTTPK8S Kubelet组件指标模板
Kubernetes nodes by HTTPK8S 集群节点发现以及状态指标模板
Kubernetes Scheduler by HTTPK8S Scheduler组件指标模板

Kubernetes 基础依赖模板

模板名称解释
Linux by Zabbix agentOS Linux系统监控模板

二、服务部署

官方给我们提供了全套的容器化服务部署方式,这里采用官方提供的 Helm Chart 来安装。

1、安装helm工具

# wget https://get.helm.sh/helm-v3.8.1-linux-amd64.tar.gz 
# tar zxvf helm-v3.8.1-linux-amd64.tar.gz 
# cp linux-amd64/helm /usr/local/bin/helm

2、添加仓库

# helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0
# helm repo list
NAME            	URL                                                           
zabbix-chart-6.0	https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0

3、配置values.yaml

templates目录中定义 Kubernetes 资源对象的配置文件变量值。

  • Zabbix ProxyAgent 参数配置
参数解释
kubeStateMetricsEnabledtrue部署kube-state-metrics
zabbixProxy.image.tagalpine-6.0.1ZabbixProxy Docker镜像tag,用于指定ZabbixProxy版本
zabbixProxy.env.ZBX_HOSTNAMEzabbix-proxy-k8sZabbixProxy hostname
zabbixProxy.env.ZBX_SERVER_HOSTZabbixServer地址
zabbixAgent.image.tagalpine-6.0.1ZabbiAgent Docker镜像tag,用于指定ZabbiAgent版本
zabbixAgent.env.ZBX_PROXYMODE0一般修改为主动模式
zabbixAgent.env.ZBX_ACTIVE_ALLOWtrue客户端运行主动模式
zabbixAgent.env.ZBX_ACTIVESERVERSzabbix-proxyZabbixProxy地址,kubectl get svc 获取
  • 资源限制配置

zabbix agent 需要限制其使用的最大资源,避免影响业务

# vim values.yaml
......
zabbixAgent:
  ## Enables use of Zabbix agent
  enabled: true
  resources:
    requests:
      cpu: 100m
      memory: 54Mi
    limits:
      cpu: 200m
      memory: 120Mi
......
  • kube-state-metrics 参数配置
    kube-state-metrics 默认仓库镜像地址在国内被墙访问不上,所以修改成 bitnami
参数解释
image.repositorybitnami/kube-state-metricskube-state-metrics 镜像库配置

4、安装Zabbix Chart

# kubectl create namespace monitoring
# cd zabbix-helm-chrt
# helm install zabbix . --dependency-update -n monitoring

# kubectl get pods -n monitoring
NAME                                       READY   STATUS    RESTARTS   AGE
zabbix-agent-ssf6x                         1/1     Running   0          30h
zabbix-agent-wflqt                         1/1     Running   0          30h
zabbix-kube-state-metrics-c4cc9c88-svgpf   1/1     Running   0          30h
zabbix-proxy-779754bfd6-gc6dh              1/1     Running   0          30h

通过 API 获取访问 Token

# kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d

三、添加集群监控

1、创建 Zabbix Proxy

在这里插入图片描述

2、创建机器

创建节点机器,关联 Kubernets nodes by HTTP 模板,用于自动发现节点主机。
在这里插入图片描述
在这里插入图片描述
这三个宏变量参数是必填参数:

{$KUBE.API.ENDPOINT.URL}
{$KUBE.API.TOKEN}
{$KUBE.NODES.ENDPOINT.NAME} # kubectl get ep -n monitoring

集群节点监控添加后效果如下:
在这里插入图片描述

3、集群服务监控

新建一台集群状态机器,关联 Kubernets cluster state by HTTP 模板,用于自动发现集群组件并监控其状态。

在这里插入图片描述
依旧要修改如下三个宏变量参数
在这里插入图片描述
添加后效果如下
在这里插入图片描述
在这里插入图片描述

四、注意事项

Node 节点关联的 Linux by Zabbix agent 模板有部分监控项获取不到数据时,确认是不是只有 zabbix active 模式的监控项取不到值,如果是的话那么在 values.yml 没有设置 ZBX_ACTIVESERVERSZBX_ACTIVE_ALLOW 参数,按照文档开头修改参数值。替换后控制台可能会报 Kubernetes: Failed to get nodes 告警,是因为token 失效,重新获取最新的 token 替换。


Reference:

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值