目 录
1. 为什么选择Zabbix监控Kubernetes?
2. Zabbix Helm Chart
3. 安装Zabbix Helm Chart
4. 添加Proxy
5. 创建额外的主机
在选择Zabbix作为Kubernetes监控工具之前,我们问自己:“为什么我们选择使用Zabbix而不是Prometheus、Grafana和alertmanager呢?”
毕竟,它们已经成为云生态系统中的标准监控工具。我们决定对Zabbix的最低要求是,它在监控Kubernetes和云原生应用程序方面至少与Prometheus一样有效。
Zabbix采集Kubernetes API和kube-state-metrics公开的指标监控Kubernetes。Zabbix Helm Chart在集群中安装监控组件。Helm Chart包括以Daemonset方式运行的Zabbix Agent,用于监控每个节点上的本地资源和应用程序。还安装了一台Zabbix Proxy,用于采集监控数据并将其传输到外部的Zabbix Server。
现在我们已经解释了Zabbix Helm Chart的工作原理,让我们开始安装它。在这个示例中,我们将假设您有一个运行中的Zabbix 6.0(或更高版本)实例,可以从要监控的集群访问。我在与我们想要监控的集群不同的集群中运行一个6.0实例。服务器可通过DNS名称mdeforest.zabbix.atsgroup.io和非标准端口31103访问。
我们将首先安装最新的Zabbix Helm Chart。
建议访问zabbix.com/integrations/kubernetes,获取在本教程中可能会提到的任何来源。在那里,您将找到指向Zabbix Helm Chart和模板的链接。在大多数情况下,我们将按照自述文件中概述的步骤进行操作。
kubectl config use-context <cluster context name>
helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0/
如果您使用的是Zabbix 6.2或更高版本,请将此命令中的6.0引用更改为6.2。
根据您的情况,您需要为安装设置一些值。在大多数情况下,您只需要为Zabbix Agent和Proxy设置一些环境变量。完整的值和环境变量列表可在Helm Chart存储库中找到,以及Docker Hub上的Zabbix Agent和Proxy镜像。
helm install -f </path/to/values/file> [-n <namespace>] zabbix zabbix-chart-6.0/zabbix-helm-chart
watch kubectl get pods
kubectl get secret -o jsonpath={.data.token} zabbix service-account | base64 -d
这将获取为服务帐户创建的密钥,并从中提取令牌,然后通过base64实用程序传递给解码。请务必将该值复制到某个地方,因为稍后您将需要它。
kubectl cluster-info
5. 将“Monitored by proxy”一行更改为之前创建的Proxy,名为zabbix-proxy。
6. 单击Macros选项卡,并选择“Inherited and host macros”。您应该能够看到可能设置为影响集群中监控内容的所有宏。在这种情况下,我们需要更改前两个宏。第一个宏{KUBE.API.ENDPOINT.URL}应设置为Kubernetes API端点。在我们的环境中,设置为之前提到的内容:default.svc.cluster.local:443/api。接下来,令牌应设置为从命令行之前检索到的值。
7. 点击Add按钮。几分钟后,您应该开始在最新数据页面上看到数据,以及在主机页面上表示每个节点的新主机。
现在让我们创建另一个主机,该主机将代表通过Kubernetes API和kube-state-metrics端点可用的指标。
再次单击Create Host按钮,将此主机命名为Kubernetes Cluster State,并再次将其添加到Kubernetes组中。
让我们再次为该主机关联HTTP方式采集数据的模板。同样,我们将选择之前创建的Proxy。
在Macro部分中,将kube.api.url更改为我们之前使用的相同内容,但这次在末尾省略/api。简单地:default.svc.cluster.local:443。确保像之前那样设置令牌。
假设在安装Helm Chart时没有更改任何其他内容,现在我们可以添加该主机。
几分钟后,您应该会收到与群集状态相关的指标,包括代表每个节点上的kubelet的主机。
延伸阅读
本文分享自微信公众号 - Zabbix开源社区(china_zabbix)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。