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:

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:

Para CentOS y Red Hat:

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:

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:

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

Comentarios