关于zabbix监控k8s,总体来说是分为两块内容,一是在k8s集群部署zabbix-agent和zabbix- proxy。二是在zabbix进行配置。
1.在k8s上部署zabbix的agent和proxy组件
部署组件是通过helm进行部署的。如果集群没有装helm则需要先安装helm。步骤较为简单。
wget https://get.helm.sh/helm-v3.8.1-linux-amd64.tar.gz ##此处可以更改版本,如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
接下来就是使用chart包部署组件。
chart包下载地址
此处可以自己选择zabbix版本。我的是6.4版本。进入之后会显示包,自己根据自己的k8s版本选择,我的k8s版本是1.17的,很老的版本,所以选的chart也比较老,是6.0目录下的1.0.0版本的。如果选很新的,在部署的时候会报错。
这个地方不用非得用命令去下载,直接浏览器下载下来就行。
解压,然后修改里面的values.yaml文件。
主要是这两个文件。修改里面的镜像仓库地址和tag。
修改以下三个镜像的地址和tag。因为我是内网部署,所以先提前把镜像下载好了。
改完之后,使用
helm lint 你的chart包目录
helm package 你的chart包目录 #会生成一个tgz的包
helm install 你的tgz的包 #此处helm命令也可以参考其他方式
部署完之后,kubectl get pod,svc -n 你的命名空间
可以看到相关的pod:
zabbix-agent-xxxx
zabbix-kube-state-metrics-xxxx-xxxx
zabbix-proxy-xxx-xxx
2.zabbix上的相关配置
参考上述文章
出现的问题
1.kube-state-metrics给定的cpu和内存太小,导致容器一直重启,OOMKILLED。解决方案:增大内存即可。
2、zabbix上配置完成后,报错,获取node失败。发现是因为
kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d
这行代码获取的值不对。重新更新了一次就好了。