当前位置: 首页 > news >正文

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-sqlite3
    repository: zabbix/zabbix-agent2
    repository: 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进行更直观的图形化展示。

相关文章:

  • C语言do...while语句将数字反转后输出
  • Linux内核NIC网卡驱动实战案例分析
  • 【AI】先搞明白MCP、 API、ANP、Agora、agents.json、LMOS、AITP开源通信协议再学大模型
  • “十五五”时期航空弹药发展环境分析
  • 生物化学笔记:医学免疫学原理06 抗体药物 多克隆抗体+单克隆抗体(各代单克隆抗体发展历程)
  • Oracle Database In-Memory 23ai 新特性
  • LeetCode热题100JS(79/100)第十五天|347|295|121|55|45
  • ssh连接笔记
  • [AI问答] 保加利亚乳酸菌经过很多代可能会如何变异
  • 什么是SQL?
  • FreeRTOS 队列指针结构体 QueuePointers_t 深度解析
  • 蓝桥杯备考:二维前缀和模板
  • /etc/hosts文件
  • c#在work线程中怎样更新UI控件
  • Android 10.0 SystemUI状态栏去掉刘海屏功能实现
  • 26、web前端开发之CSS3(三)
  • day 15
  • GAUSSDB 分布式存储机制深度解析
  • 前端路由与导航:React Router 与 Vue Router
  • Redis 单线程
  • 国家主席习近平会见斯洛伐克总理菲佐
  • 方正证券总裁何亚刚到龄退休,54岁副总裁姜志军接棒
  • 【社论】职业上新,勇于“尝新”
  • 俄罗斯今日将举行“胜利日”阅兵,有何看点?
  • 马克思主义理论研究教学名师系列访谈|曾瑞明:想通了才可能认准,认准了才能做好
  • 上交现场配乐4K修复版《神女》:默片巅峰有了新的打开方式