Aprende a instalar y usar el servicio Prometheus Node Exporter en tu servidor Ubuntu.

Cómo instalar Prometheus Node Exporter en Ubuntu 20.04

En los últimos días, descubrí una herramienta increíble, Prometheus, el kit de herramientas de alerta y monitoreo de sistemas de código abierto. Prometheus recopila y almacena sus métricas como datos de series temporales, es decir, la información de las métricas se almacena con la marca de tiempo en la que se registró, junto con pares clave-valor opcionales denominados etiquetas. Luego puede visualizar esta información con una herramienta como Grafana. Desde la adopción de esta herramienta en la empresa donde trabajo ahora, inicié el exportador de nodos en todos los servidores con Ubuntu como sistema operativo.

En este artículo te explicaré paso a paso cómo instalar el módulo Node Exporter de Prometheus en cualquier servidor Ubuntu 16.04, 18.04, 20.04 y 22.04.

1. Download Node Exporter

Como primer paso, debeS descargar el binario DE Node Exporter que está disponible para Linux en el sitio web oficial de Prometheus aquí . En el sitio web, encontrarás una tabla con la lista de compilaciones disponibles. De nuestro interés en este caso, es la compilación de node_exporter para Linux AMD64:

Node Exporter Ubuntu Linux

En este caso la última versión disponible es la 1.3.1. Copie la URL del archivo .tar.gz y descárgala en algún lugar de tu servidor usando wget o cURL:

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

2. Extraer Node Exporter y mover el binario 

Después de descargar la última versión de Node Exporter, procede a extraer el contenido del tar descargado usando el siguiente comando:

tar xvf node_exporter-1.3.1.linux-amd64.tar.gz

El contenido del zip se extraerá en el directorio actual, el directorio extraído contendrá 3 archivos:

  • LICENSE (archivo de texto de licencia)
  • node_exporter (binario)
  • NOTICE (archivo de texto de licencia)

Solo necesitaS mover el archivo binario node_exporter al directorio /usr/local/bin de tu sistema. Cambia al directorio node_exporter:

cd node_exporter-1.3.1.linux-amd64

Y luego copiea el archivo binario con el siguiente comando:

sudo cp node_exporter /usr/local/bin

Luego puedes eliminar el directorio que creamos después de extraer el contenido del archivo zip:

# Exit current directory
cd ..

# Remove the extracted directory
rm -rf ./node_exporter-1.3.1.linux-amd64

3. Crear Usuario de Node Exporter en el sistema

Como buena práctica, cree un usuario en el sistema para Node Exporter:

sudo useradd --no-create-home --shell /bin/false node_exporter

Y establezca el propietario del binario node_exporter con el usuario creado recientemente:

sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

4. Crea e inicia el servicio Node Exporter

El servicio de Node Exporter siempre debe iniciarse cuando se inicia el servidor, de modo que siempre estará disponible para extraer información. Crea el archivo node_exporter.service con nano:

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

Y pega el siguiente contenido en el archivo:

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

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Cierra nano y guarda los cambios en el archivo. Procede a recargar el daemon con:

sudo systemctl daemon-reload

Y finalmente inicia el servicio node_exporter con el siguiente comando:

sudo systemctl start node_exporter

5. Pruebael servicio de Node Exporter

Como último paso, accede a tu servidor a través del navegador web en el puerto 9100 y explore las métricas ( http://your_server_ip:9100/metrics ). Deberías obtener un resultado en el navegador similar a:

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 2.5948e-05
go_gc_duration_seconds{quantile="0.25"} 2.9566e-05
go_gc_duration_seconds{quantile="0.5"} 3.0488e-05
go_gc_duration_seconds{quantile="0.75"} 3.2111e-05
go_gc_duration_seconds{quantile="1"} 0.000232387
go_gc_duration_seconds_sum 1.454063444
go_gc_duration_seconds_count 23486
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 9
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.17.3"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 2.365264e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 5.0367212352e+10
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.897095e+06

Si obtienes alguna información en la URL mencionada, entonces tu servicio se ha configurado correctamente y está listo para que Prometheus lo elimine.

Si el puerto 9100 es inalcanzable

Como mencionamos anteriormente, por defecto el servicio de exportador de nodos se ejecutará en el puerto 9100 de su servidor. Si después de iniciar el servicio, no se puede acceder al servicio, no olvides abrir el puerto 9100 en tu servidor Ubuntu. Si estás utilizando UFW (uncomplicated firewall), puedes abrir fácilmente este puerto siguiendo las siguientes instrucciones:

sufo ufw allow 9100

Alternativamente, si estás usando IPTABLES, use el siguiente comando para permitir el tráfico entrante en ese puerto:

sudo iptables -I INPUT -p tcp -m tcp --dport 9100 -j ACCEPT

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores