欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Zabbix监控K8s集群

Zabbix监控K8s集群

2025/4/1 1:26:06 来源:https://blog.csdn.net/weixin_63294004/article/details/146529226  浏览:    关键词:Zabbix监控K8s集群

虽然 Prometheus 被认为是 监控的Kubernetes最合适的工具 ,但其配置复杂、存储成本高以及告警管理繁琐等问题,使得一些传统运维团队更倾向于使用 Zabbix 这样的成熟监控方案。Zabbix 凭借其强大的数据采集、灵活的告警机制和直观的图形化界面,依然在企业监控体系中占据重要地位。

现在将演示如果通过Zabbix来监控K8s集群

K8s集群:     #master3是NotReady状态先忽略不计,就相当于两台master一台node

一:下载Zabbix的helm包

nullhttps://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse

1.1:在K8s集群中安装helm

下载地址:https://github.com/helm/helm/releases

根据zabbix的helm部署前提下载合适的版本

1.2:在k8s集群主机上安装helm

tar zxvf helm-v3.12.3-linux-amd64.tar.gz     #解压安装包
mv linux-amd64/helm      /usr/bin/helm       #移动到bin目录下

1.3:验证安装是否成果

helm version    #查看helm版本

二:解压zabbix7.0helm包

2.1:存放目录,解压到当前目录

mkdir /Zabbix-monitor      #创建存放helm包解压后的存放目录
unzip kubernetes-helm-release-7.0\@7236237491a.zip  #解压helm包,我下载的是7.0版本的

解压后的就是这些东西:

2.2:查看并修改values.yaml文件

2.2.1:查看镜像

[root@master1 zabbix-monitor]# grep "repository:" values.yaml repository: zabbix/zabbix-proxy-sqlite3repository: zabbix/zabbix-agent2repository: zabbix/zabbix-java-gateway

kube-state-metrics这个资源没有定义镜像,我们自己给定义一下

修改成这样即可

2.2.2:接下来修改变量:

Zabbix-Proxy部分:

ZBX_PROXYMODE=1                        #被动模式

ZBX_HOSTNAME=Zabbix-proxy-HA       #proxy名称,后续在web端配置的时候需要

ZBX_SERVER_HOST="192.168.8.100"        #server ip

zabbix-proxy还要修改一下service的类型:

修改成NodePort类型,因为这样的话集群外的机器才能访问到

Zabbix-agent部分:

ZBX_SERVER_HOST="192.168.8.100"    #server ip

修改完之后保存退出value.yaml

2.3:拉取镜像

现在我们需要拉取的镜像一共有四个:

关于zabbix的镜像的标签都是统一的alpine-7.0.4

zabbix/zabbix-proxy-sqlite3:alpine-7.0.4
zabbix/zabbix-agent2:alpine-7.0.4
zabbix/zabbix-java-gateway:alpine-7.0.4
bitnami/kube-state-metrics:2.2.0

使用Docker拉取镜像,之后用docker  save打包

拉取命令就是:

docker   pull    镜像名字:标签

拉取下来之后save打包:

docker   save   -o    tar包名字     镜像名字:标签

举例:docker   save   -o Zabbix-agent.tar   zabbix/zabbix-agent2:alpine-7.0.4

2.4:将镜像文件导入K8s集群(所有节点都要执行导入的命令)

因为我的K8s集群的容器运行时是containerd所以用ctr命令导入。

 ctr -n k8s.io image import Zabbix-agent.tar 
 ctr -n k8s.io image import Zabbix-java-gateway.tar 
 ctr -n k8s.io image import Zabbix-proxy.tar 
 ctr -n k8s.io image import kube-state-metrics_V2.2.0.tar 

如果容器运行时是docker的话就用docker  load   -i导入

查看容器运行时的命令:

kubectl get node -owide

这一列就是容器运行时

三:helm部署

3.1: 创建命名空间

kubectl   create   ns  monitoring         

3.2:更新依赖

cd   /Zabbix-monitor/                #存放helm包解压后文件的目录

helm dependency update .         #更新依赖命令

3.3:开始部署

四:Zabbix-server端配置:

4.1:添加zabbix-proxy

这个端口用:kubectl  get  svc  -n monitoring查看

然后点击添加即可。

过一会查看已经是在线状态了。

4.2:创建主机组

数据采集 > 主机群组 > 创建主机组 > 填写组名

我的主机组就叫K8s-HA

4.3:创建用于自动发现节点的主机

填完这些先别添加,还要修改一下宏变量:

{$KUBE.API.TOKEN} 这个宏写的值使用以下这个命令查看:

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

现在就可以点击添加了  

4.4:查看是否成功自动发现到K8s所有节点

可以看到已经成功发现并且添加上了,master3是红色的属于正常,因为我测试高可用,没有给master3开机。

主机也被监控到了数据

4.5:创建用于监控集群状态的主机

就是用来监控K8s的所有的核心组件, apiserver,etcd,kubelet等

点击添加主机

4.6:查看是否监控到集群状态

可以看到标记的就是由集群状态的主机自动发现并且添加的核心组件

4.7:查看集群状态主机的最新数据



五:自定义仪表盘展示:

后续也可以对接Grafana进行更直观的图形化展示。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词