Zabbix实现监控Kubernetes

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

网上监控 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一般修改为主动模式
  • 资源限制配置

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 模板,用于自动发现集群组件并监控其状态。

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

Reference

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: k8s