Helm 图表安装 Zabbix 监控 Kubernetes 集群的组件。
kube 状态度量
kube-state-metrics (KSM)是一项简单的服务,用于侦听 Kubernetes API 服务器并生成有关集群中对象状态的指标。
如果集群中已安装 kube-state-metrics
,则可以使用它来代替此图表所部署的那个。根据环境,在“Kubernetes cluster state by HTTP”模板中的宏中设置kube-state-metrics.enabled
参数值并指定端点名称。如果 kube-state-metrics
配置偏离默认值,某些指标可能不可用。
笔记
-
安装 OpenShift 的 kube-state-metrics 需要在 ReplicaSet 级别进行一项修改。必须删除或更改此块:
securityContext: runAsUser: 65534 runAsGroup: 65534 fsGroup: 65534
Zabbix代理
Zabbix Agent通过DaemonSet以被动模式(默认情况下)部署在集群所有节点上的 ,以使用“Linux by Zabbix agent”模板监控各个节点主机资源。
zabbixAgent.tolerations
根据所使用的 Kubernetes 发行版,如果需要监控控制平面节点,可能需要调整参数中的污点。
如果不需要使用“Linux by Zabbix agent”模板监控节点,可以通过将zabbixAgent.enabled
参数设置为false
来禁用它,这将阻止部署 DaemonSet。
Zabbix代理
Zabbix proxy以主动模式(默认)作为单个副本部署安装在集群中。它从 Kubernetes API
、kube-state-metrics
端点和 Zabbix agent
收集数据。所有收集到的数据都缓存在本地,然后传输到代理所属的外部Zabbix服务器并用于监控。
如果集群中已经安装了 Zabbix proxy
,则可以使用它来代替此图表中部署的 Zabbix proxy
。设置zabbixProxy.enabled
参数值false
,并在用于监控的Zabbix服务器上添加代理,。
笔记
Kubernetes API
、kube-state-metrics
端点和Zabbix agent
(如果已部署)必须可由代理访问。
安装
- zabbix server和zabbix proxy版本只能有小版本号差别,zabbix server版本为6.0.22,zabbix proxy版本必须是6.0.xx
按照说明安装kubectl和helm工具。
添加存储库:
helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0
将图表的默认值导出helm-zabbix到文件$HOME/zabbix_values.yaml:
helm show values zabbix-chart-6.0/zabbix-helm-chrt > $HOME/zabbix_values.yaml
将$HOME/zabbix_values.yaml文件中的环境变量值zabbixProxy.env.ZBX_SERVER_HOST
更改为用于监控的Zabbix服务器的地址,且Zabbix代理可以访问。如果需要,其他值可以根据环境更改。
列出集群的命名空间。
kubectl get namespaces
monitoring如果集群中不存在命名空间,则创建该命名空间。
kubectl create namespace monitoring
在 Kubernetes 集群中部署图表(如有必要,更新 YAML 文件路径)。
helm install zabbix zabbix-chart-6.0/zabbix-helm-chrt --dependency-update -f $HOME/zabbix_values.yaml -n monitoring
获取为服务帐户自动创建的令牌。
kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d
zabbix server配置
1、添加agent代理
管理 - agent代理程序
-
agent代理程序名称需要和部署的zabbix proxy 中的配置的相同,默认按照上面产生的默认配置名称:
zabbix-proxy
:env: ## The variable allows to switch Zabbix proxy mode. By default, value is 0 - active proxy. Allowed values are 0 and 1. - name: ZBX_PROXYMODE value: 0 ## Zabbix proxy hostname - name: ZBX_HOSTNAME value: zabbix-proxy
系统代理程序模式:主动式
代理地址:pod地址,主机地址
2、创建主机
用到的模板有两个
首先创建群组kubernetes
① 创建node监控
选择模板Kubernetes nodes by HTTP
,群组kubernetes
在 宏 - 继承及主机 宏 中,修改两个宏:
{$KUBE.API.URL}
{$KUBE.API.TOKEN}
② 创建 集群状态监控
选择模板Kubernetes cluster state by HTTP
,群组kubernetes
在 宏 - 继承及主机 宏 中,修改两个宏:
Kubernetes cluster state by HTTP
模板会自动发现API servers
、Controller manager
、Scheduler
、Kubelet
过一会儿,在主机列表中会显示出新增的监控项