Cómo instalar Prometheus y Grafana en Minikube
Introducción
En esta publicación os enseñaré a desplegar Prometheus y Grafana en vuestro cluster Minikube empleando Helm charts. Prometheus nos ayudará a monitorizar nuestro cluster Kubernetes además del resto de recursos que se ejecuten sobre él. Grafana nos ayudará a visualizar las métricas obtenidas por Prometheus mostrándolas en elegantes cuadros de mando o dashboards.
Publicación actualizada por última vez el 2023-09-20, gracias a Dannis Eller por su contribución.
Requisitos
- Minikube
- Helm
Instalar Prometheus
Los Helm charts del canal estble de Prometheus se han marcado como obsoletos en favor de aquellos ofrecidos por su comunidad (Prometheus Community Kubernetes Helm Charts).
El primer paso será añadir el repositorio a nuestra configuración de Helm:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
Una vez el repositorio esté listo, instalaremos los charts ofrecidos ejecutando los siguientes comandos:
helm install prometheus prometheus-community/prometheus
kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-np
El primer comando instala los charts. Tardará un poco hasta que todo esté desplegado, podemos comprobar el estado ejecutando:
kubectl get pods -l app.kubernetes.io/instance=prometheus
Como estamos utilizando Minikube, el segundo comando expone el servicio prometheus-server
utilizando un NodePort
.
De este modo podremos acceder de forma muy sencilla a la interfaz web de Prometheus cuando el Pod esté disponible:
minikube service prometheus-server-np
Esto abrirá una ventana del navegador con la interfaz web de Prometheus.
Instalar Grafana
Al igual que con Prometheus, el canal estable de los Helm charts oficiales para Grafana se han discontinuad. Los charts que ahora se recomiendan son aquellos ofrecidos por el repositorio Grafana Community Kubernetes Helm Charts.
Del mismo modo que antes, comenzaremos agregando el repositorio a nuestra configuración de Helm:
helm repo add grafana https://grafana.github.io/helm-charts
A continuación instalamos Grafana utilizando los charts disponibles:
helm install grafana grafana/grafana
kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-np
Nuevamente, considerando que estamos utilizando Minikube, para poder acceder de forma sencilla a la
interfaz web de Grafana, exponemos el servicio como un NodePort
.
Nota: La interfaz de Grafana está protegida por password por defecto, para conseguir el password del usuario admin
,
podemos ejecutar el siguiente comando:
kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Ahora ya podemos acceder a la interfaz web de Grafana utilizando el usuario admin
y el password que hemos obtenido en el paso anterior.
minikube service grafana-np
Configurar el Datasource de Prometheus
Una vez hemos accedido a la interfaz de administración, es el momento de que configuremos el Datasource de Prometheus.
Para ello, debeos de acceder al menú Connections > Datasources
y añadir una nueva instancia de Prometheus.
La URL para nuestra instancia de Prometheus coincide con el nombre del servicio http://prometheus-server:80
.
Kubernetes Dashboard bootstrap
Seguidamente, configuraremos uno de los múltiples dashboards para Kubernetes proporcionados por la comunidad.
En este artículo voy a utilizar este https://grafana.com/grafana/dashboards/6417, aunque podéis utilizar cualquier otro Dashboard. Incluso podéis crear vuestro propio dashboard, aunque esto lo veremos en otra publicación
Presionamos sobre el menú Create (+) > Import
. En la sección Import via grafana.com
,
introducimos el código 6417
en el campo id y presionamos Load
.
En la configuración del dashboard debemos de seleccionar el datasource Prometheus Datasource
que hemos creado en el paso anterior.
Una vez hayamos confirmado el proceso de importación en el diálogo, la interfaz nos redirigirá al nuevo Dashboard.
Si todo ha ido bien, podremos ver el Dashboard actualizándose con la información de nuestro cluster.
Conclusión
En esta publicación os he mostrado cómo instalar Prometheus y Grafana en un cluster Kubernetes/Minikube.
Este mismo procedimiento lo podéis utilizar para instalar en cualquier cluster de Kubernetes (no es necesario que sea Minikube).
También hemos visto cómo desplegar de forma muy sencilla uno de los dashboards disponibles en grafana.com utilizando únicamente su ID
.
Espero que este artículo os ayude a dar los primeros pasos con Prometheus y Grafana y que pronto seáis capaces de crear vuestros propios Dashboards y paneles.
Si os interesan los dashboards y otras formas de visualizar vuestros recursos de kubernetes, no dejéis de leer el artículo YAKC – Kubernetes Dashboard.