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.
Requisitos
- Minikube
- helm
Instalar Prometheus
Los Helm charts del canal estable 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:
1helm 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:
1helm install prometheus prometheus-community/prometheus
2kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-np
El primer comando instala los charts. 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:
1minikube service prometheus-server-np

Instalar Grafana
Al igual que con Prometheus, el canal estable de los Helm charts oficiales para Grafana se han discontinuado. 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:
1helm repo add grafana https://grafana.github.io/helm-charts
A continuación instalamos Grafana utilizando los charts disponibles:
1helm install grafana stable/grafana
2kubectl 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:
1kubectl 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.
1minikube 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ú Configuration > 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ónImport 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.