En esta entrada voy a enseñaros a monitorizar un clúster de Kubernetes con Zabbix 6.
Requisitos
Para poder seguir este tutorial es necesario cumplir con los requisitos mínimos:
- Kubernetes cluster 1.18 o superior
- Helm 3.0 o superior
- Zabbix Server 6.0 o superior
- kube-state-metrics 2.13.2 o superior
- Ubuntu Server
Despliegue de Zabbix en Kubernetes
El primer paso será conectarnos a nuestro master de Kubernetes y añadir el siguiente repositorio.
helm repo add zabbix-chart-6.0 https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0
Exportamos los valores por defecto de chart en el siguiente fichero yaml.
helm show values zabbix-chart-6.0/zabbix-helm-chrt > $HOME/zabbix_values.yaml
Creamos un namespace al cual llamaremos zabbix.
kubectl create namespace zabbix
Desplegamos zabbix en nuestro cluster de Kubernetes.
helm install zabbix zabbix-chart-6.0/zabbix-helm-chrt --dependency-update -f $HOME/zabbix_values.yaml -n zabbix
Comprobamos que se han creado todos los pods y que no hay errores.
kubectl get pods -n zabbix
Todo correcto 🙂
NAME READY STATUS RESTARTS AGE zabbix-agent-6rk9s 1/1 Running 6 (5h32m ago) 5h35m zabbix-agent-bnw9x 1/1 Running 6 (5h32m ago) 5h35m zabbix-agent-z54mz 1/1 Running 0 5h35m zabbix-kube-state-metrics-5bd6454bf6-zdsvq 1/1 Running 0 5h35m zabbix-proxy-6d87d5fccc-66n9c 1/1 Running 0 5h35m
Configuración en Zabbix
En primer lugar nos vamos a ir, en el menú de la izquierda, a Configuration-Hosts y vamos a añadir un nuevo host.
En la pestaña host vamos a poner el nombre de nuestro host, le vamos a asignar la plantilla «Kubernetes nodes by HTTP» y por último lo añadiremos al grupo de host que deseemos.
En la pestaña Macros tendremos que añadir lo siguiente:
El primer parámetro será {$KUBE.API.ENDPOINT.URL} en donde especificaremos la url de acceso a nuestro API Server de Kubernetes. Para obtener este valor debéis iros a vuestro nodo master de kubernetes y ejecutar el siguiente comando:
kubectl config view
Obtendréis una información parecida a esta. El valor que nos interesa es la url que encontráis en el parámetro server debajo de la etiqueta cluster (en mi caso aparece server: https://192.168.8.150:6443). Tendréis que poner esa url pero añadiendo al final /api.
apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://192.168.8.150:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: [email protected] current-context: [email protected] kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: REDACTED client-key-data: REDACTED
El segundo parámetro a añadir será {$KUBE.API.TOKEN}. Para obtener este token debéis volver al nodo maestro de kubernetes y ejecutar el siguiente comando:
kubectl get secret zabbix-service-account -n zabbix -o jsonpath={.data.token} | base64 -d
El tercer parámetro es {$KUBE.STATE.ENDPOINT.NAME}. El valor por defecto es zabbix-kube-state-metrics pero os recomiendo lo comprobéis por si lo habéis cambiado, para verificarlo ejecutar en el nodo master el siguiente comando:
kubectl -n zabbix get ep
Al final debería quedaros algo como lo siguiente:
Pulsamos en añadir.
Ahora vamos a añadir un segundo host y en la pestaña host vamos a poner el nombre de nuestro host, le vamos a asignar la plantilla «Kubernetes cluster state by HTTP» y por último el grupo de host que queramos.
En la pestaña Macros tendremos que añadir lo siguiente:
El parámetro {$KUBE.API.URL} es la misma url que habéis utilizado en la configuración del host anterior pero sin añadir al final /api
Y los parámetros {$KUBE.API.TOKEN} y {$KUBE.STATE.ENDPOINT.NAME} son los mismos valores que obtuvimos y utilizamos en la creación del anterior host.
Debería quedaros algo así.
Y listo, ya sólo nos quedará esperar unos minutos para que Zabbix empiece a obtener toda la información relativa a nuestro cluster de Kubernetes y de esta forma tener todo nuestro entorno perfectamente monitorizado.
Como siempre espero que os haya sido de utilidad.
Entradas relacionadas
- Monitorizar un servidor MySQL con Zabbix 6
- Como actualizar Zabbix desde la versión 5 a la versión 6
- Instalar y configurar el agente de Zabbix 6 en Windows
- Instalación agente Zabbix 6 en equipos Linux
- Como instalar y configurar Zabbix 6
- Como monitorizar sitios webs con Zabbix 6
- Como monitorizar un fichero de Log de Linux con Zabbix 6
- Como monitorizar un servidor VMware ESXi con Zabbix 6
- Como monitorizar un servicio de Windows con Zabbix 6

Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.