Métricas y monitorización con Pormetheus y Grafana
- Francisco Javier Huete
- Administracion sistemas
- March 11, 2025
Índice
Grafana y Prometheus son herramientas que permiten monitorizar el funcionamiento de los equipos de una red. En combinación, pueden recopilar y centralizar información relevante del funcionamiento de los servidores de una red, mostrarla de manera visual a través de una interfaz gráfica y notificar situaciones críticas en los equipos.
Instalación y configuración de Prometheus
Prometheus Node Exporter es un binario que permite exponer métricas tanto de hardware como de Kernel de los nodos de una red. El binario está disponible en la página de descargas de Prometheus. Tras descargarlo, se puede descomprimir e instalar en cada nodo.
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter
Un servidor en el que esté instalado Prometheus puede acceder a estas estadísticas.
wget https://github.com/prometheus/prometheus/releases/download/v3.2.1/prometheus-3.2.1.linux-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*
En la configuración de Prometheus hay que indicar el puerto de cada nodo con que el servidor debe comunicarse para recolectar las métricas expuestas por el Node Exporter.
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9090','nami:9100','sanji:9100','zoro:9100']
En el servidor, se arranca Prometheus usando el fichero de configuración generado previamente para empezar la recepción de métricas de los nodos de la red.
./prometheus --config.file=./prometheus.yml
Instalación y configuración de Grafana
Para instalar Grafana en Debian primero se instalan las dependencias necesarias.
sudo apt-get install -y apt-transport-https software-properties-common wget
Después se importa la clave del repositorio del desarrollador.
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Y se añaden los repositorios de Grafana al sistema.
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Para instalar la herramienta se actualiza la paquetería del sistema y se instala desde los repositorios de los desarrolladores.
sudo apt update
sudo apt-get install grafana
Finalmente, se arranca el servidor Grafana.
sudo systemctl daemon-reload
sudo systemctl start grafana-server
Para usar Grafana se accede al puerto 3000 de la URL de Luffy y se inicia sesión en la interfaz gráfica de la aplicación. Esta herramienta cuenta con una utilidad para configurar Prometheus como fuente de datos y crear paneles a partir de esta información:
/images/aso/metricas/p1_1.png does not existPara que funcione la monitorización tanto los binarios node_export de los diferentes nodos de la red como el servicio de Prometheus en el servidor se deben estar ejecutando. Así se puede mantener la monitorización de los servidores de la red a lo largo del tiempo.
/images/aso/metricas/p1_2.png does not existCreación de alertas con Grafana
Creación de una alerta con webhook
Para crear una alerta primero hay que configurar el método de alerta. En este caso, para demostrar el funcionamiento de las alertas se usa un webhook. Este método se puede configurar a través de la interfaz gráfica de Grafana en Home -> Alert -> Contact Point. Aquí se crea un nuevo contact point con la integración Webhook, que permite usar la aplicación web Webhook.site para recibir alertas de monitorización.
/images/aso/metricas/p1_3.png does not existA continuación se puede crear una alerta en Home -> Alert -> New alert. En esta ventana se configuran los criterios que hacen saltar la alerta y el método de comunicación que se debe usar para enviar la alerta. También se pueden modificar otros detalles como, por ejemplo, la frecuencia con la que se revisa si el requisito que dispara la alerta se cumple.
Envío de alertas por Telegram
Grafana permite configurar el envío de alertas por múltiples medios en Home -> Alert -> Contact Point. Entre ellos, se puede usar la aplicación de mensajería instantánea Telegram. Para configurar el envío de alertas de Grafana con Telegram es necesario crear antes un bot en esta aplicación.
Para crear bots, Telegram pone a disposición de sus usuarios una herramienta llamada BotFather. Usando este bot se pueden crear bots de forma interactiva con el comando /newbot
. Al crear el nuevo bot, Telegram genera un API token que hay que usar en la configuración del método de alerta de Grafana.
Por otra parte, para configurar este método de alerta también se necesita el identificador de una chat de Telegram. Para conseguirlo hay que añadir el bot a un grupo y, una vez que el bot esté en el grupo, se usa el ID de este chat para configurar el método de alerta en Grafana.
Una vez que se ha configurado el método de alerta, se puede usar al configurar una nueva alerta. En Home -> Alert -> New alert se introduce la información relativa a cada uno de los campos del formulario. Así, hay que indicar el nombre de la alerta, la consulta y condición que hace que salte la alerta, la carpeta y etiquetas a las que pertenece la alerta, el comportamiento o frecuencia con la que se evalúa si se cumple el requisito que hace saltar la alerta, el método de notificación o el contenido del mensaje de notificación.
/images/aso/metricas/p1_4.png does not existDe esta manera, cuando se cumple la condición configurada en la alerta, por ejemplo, se excede el límite de carga de un nodo, se envía un mensaje a través del medio de comunicación configurado con la información relativa al evento.
/images/aso/metricas/p1_5.jpg does not existFuentes
Get started with Grafana and Prometheus
Monitoring Linux host metrics with the Node Exporter