Ya hemos hablado en alguna ocasión de Prometheus y Grafana y en el siguiente tutorial vamos a configurarlos conjuntamente con Node Exporter para importar las métricas de nuestros servidores y poder observarlas directamente en Grafana.

Este tutorial lo vamos a realizar en Debian 11, aunque la configuración no varia en otras distribuciones de GNU/Linux.

Instalación de Prometheus

Lo primero que haremos será instalar Prometheus en nuestro servidor siguiendo las instrucciones de este otro tutorial:

Instalar Prometheus en GNU/Linux
Prometheus es una aplicación de Código Abierto utilizada para el seguimiento y alerta de eventos. Registra las métricas en tiempo real en una base de datos temporal construida mediante el modelo de atracción HTTP, con consultas flexibles y alertas en tiempo real.

Lo siguiente será instalar Grafana, que no es necesario que esté en el mismo servidor. Para ello seguiremos las instrucciones de este tutorial:

Para Ubuntu y Debian:

Instalar Grafana en Debian / Ubuntu
Grafana es un Software Libre basado en licencia Apache 2.0 que permite la visualización y el formado de datos métricos. Con Grafana crear cuadros de mando y gráficos a partir de diferentes fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB o OpenTSDB.

Para CentOS y Red Hat:

Instalar Grafana en CentOS / OpenSUSE / RedHat
Grafana es un Software Libre basado en licencia Apache 2.0 que permite la visualización y el formado de datos métricos. Con Grafana crear cuadros de mando y gráficos a partir de diferentes fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB o OpenTSDB.

Instalación de Node Exporter

Ahora que tenemos Prometheus y Grafana instalados, procedemos a instalar Node Exporter. Node Exporter es un paquete oficial que se puede instalar en servidores GNU/Linux para poder monitorearlos. Tendremos en nuestras manos métricas de Hardware y del Sistema Operativo, que serán extraídas por Prometheus y los enviará a Grafana para poderlos visualizar.

Así que procedemos a instalar Node Exporter. Nos descargaremos la última versión disponible en su cuenta de Github. Para cuando se escribe este tutorial, la última versión es la 1.3.0:

# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz -P /opt

Una vez descargado, procedemos a descomprimir el binario:

# tar -xzf /opt/node_exporter-*linux-amd64.tar.gz
# mv /opt/node_exporter-*linux-amd64 /opt/node_exporter

Y configuramos el servicio para gestionarlo con SystemD:

# nano /etc/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/opt/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

Lo añadimos al arranque y lo iniciamos:

# systemctl daemon-reload
# systemctl enable node_exporter
# systemctl start node_exporter

Añadir servidor a Prometheus

Editamos el fichero de configuración de Prometheus para añadir que Node Exporter importe los datos que le vayamos a decir.

# nano /etc/prometheus.yml

- job_name: 'node_exporter'
  static_configs:
  - targets: ['localhost:9100']

En este caso, hemos configurado localhost, para monitorear el servidor de Prometheus, pero si queréis monitorear otro servidor, debéis de configurar Node Exporter en ese servidor y poner la IP pública del servidor, por ejemplo de esta forma:

# nano /etc/prometheus.yml

- job_name: 'node_exporter'
  static_configs:
  - targets: ['192.169.1.23:9100']

Esta configuración se tiene que hacer en el servidor de Prometheus y se deben de indicar los servidores que queremos monitorizar. Siempre bajo el puerto 9100 que es el que usa para Node Exporter.

Tras añadir la configuración de Node Exporter, lo que haremos será parar e iniciar Prometheus para recargar la configuración:

# systemctl stop prometheus
# systemctl start prometheus

Ahora tenemos que ir a la interfaz web de Prometheus y vamos a Status > Targets y observaremos que hay una entrada más para Node Exporter:

Integrar Prometheus en Grafana

Último paso de este tutorial y el más interesante de todos. Ahora que tenemos Prometheus y Node Exporter cogiendo métricas del sistema operativo, ahora lo que haremos será importar los datos a Grafana para que se visualicen en gráficos y sea más sencillo poder hacer una monitorización.

Accedemos a Grafana por la interfaz web y vamos a Configuration > Data Sources y seleccionamos Prometheus (puedes buscarlo en el buscador).

Configuramos un name y luego en el apartado de HTTP, añadimos la URL del Node Exporter, en este caso, como que es el propio servidor de Prometheus, usaremos localhost:9090, pero si fuera un servidor externo, entonces deberíais de poner la IP pública del servidor y el puerto 9090.

Al final de la página de Grafana, hay un botón para hacer test de conexión con Node Exporter, haremos clic para que la configuración nos aparezca correctamente y guardaremos. Listo, ya tenemos Node Exporter configurado en Grafana.

Ahora solo hay que configurar el tablero para verlo gráficamente. Para este tablero, usaremos uno ya creado llamado Node Exporter Full Dashboard y lo importaremos desde el propio Grafana.

En Grafana iremos al menú lateral Create (el ícono +) seleccionamos la opción Import. Aquí podemos añadir la URL del tablero o bien el ID que lo identifica, en este caso 1860. Le damos a importar:

Importar tablero

Luego debemos de seleccionar la fuente de datos que va a nutrir este tablero, en este caso seleccionaremos Prometheus y tras importar, en tableros tendremos un tablero:

Tableros disponibles

Y listo, ya tenemos las métricas de nuestro servidor en Grafana gracias a Prometheus y Node Exporter:

Node Exporter Full
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación