Cómo instalar Prometheus y Node Exporter en Rocky Linux

Prometheus es una plataforma de monitorización y alerta de código abierto.

Originalmente, Prometheus fue creado por Soundcloud en 2012. Desde entonces, el proyecto Prometheus, adoptado por algunas empresas famosas, se ha convertido en un proyecto mayor con desarrolladores y una comunidad muy activos. Y en 2016, el proyecto Prometheus se graduó en la Cloud Native Computing Foundation (CNCF).

Conceptos básicos que debes conocer

Básicamente, Prometheus recopila datos y métricas a través de puntos finales HTTP de los servidores de destino, y luego almacena todos los datos como series temporales. En Prometheus, los datos de las series temporales se identifican mediante el nombre de la métrica y pares clave/valor.

Prometheus proporciona flexibilidad mediante el Lenguaje de consulta de Prometheus (PromQL). Puedes utilizar PromQL para consultar la base de datos de series temporales de Prometheus.

En los servidores de destino, debes instalar la aplicación «exportador» que expone todos los datos y métricas a Prometheus. ‘Exportador de nodos’ es un exportador de uso común para supervisar máquinas Linux.

El exportador de nodos expone las métricas relacionadas con el hardware y el kernel de las máquinas Linux. Se presenta como un único archivo binario que expondrá las métricas de datos finales al servidor Prometheus.

Requisitos previos

En este artículo, aprenderás a instalar la herramienta de monitorización Prometheus y Node Exporter en un sistema Rocky Linux 8.

Antes de empezar, asegúrate de que reúnes los siguientes requisitos:

  • Sistema operativo: Rocky Linux 8.5 (Obsidiana Verde)
  • Privilegios de root

Para este ejemplo, utilizaremos el sistema Rocky Linux con la dirección IP‘192.168.1.10‘.

Ahora vamos a empezar.

Añadir nuevo usuario y directorio

Al principio, crearás un nuevo usuario del sistema ‘prometheus’, y después crearás un nuevo directorio de configuración y un directorio de datos para la instalación de Prometheus.

1. Ejecuta el siguiente comando para crear un nuevo usuario ‘prometheus‘.

sudo adduser -M -r -s /sbin/nologin prometheus

2. Después, crea un nuevo directorio de configuración ‘/etc/prometheus‘ y el directorio de datos‘/var/lib/prometheus‘ utilizando el siguiente comando.

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Toda la configuración de Prometheus estará disponible en el directorio ‘/etc/prometheus‘, y todos los datos de Prometheus se guardarán automáticamente en el directorio‘/var/lib/prometheus‘.

Instalación de Prometheus en Rocky Linux

En este paso, instalarás manualmente el sistema de monitorización Prometheus a partir del archivo tarball o tar.gz.

Elige la versión de Prometheus en este enlace. Para este ejemplo, vamos a instalar la última versión de Prometheus.

Descargar el tarball de Prometheus

1. Cambia el directorio de trabajo a «/usr/src» y descarga el binario de Prometheus utilizando el siguiente comando.

cd /usr/src
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

2. Una vez finalizado el proceso de descarga, extrae el archivo de Prometheus.

tar -xf prometheus-2.31.1.linux-amd64.tar.gz

Ahora verás un nuevo directorio‘prometheus-VERSION.OS‘.

2. A continuación, copia todas las configuraciones de Prometheus en el directorio ‘/etc/prometheus’ y el archivo binario‘prometheus‘ en el directorio‘/usr/local/bin‘.

Configura la variable de entorno‘PROM_SRC‘ en el directorio ‘ /usr/src/prometheus-*‘.

export PROM_SRC=/usr/src/prometheus-*

Copia la configuración de prometheus ‘prometheus.yml‘ al directorio ‘/etc/prometheus‘.

sudo cp $PROM_SRC/prometheus.yml /etc/prometheus/

Copia el archivo binario‘prometheus‘ y‘promtool‘ al directorio ‘ /usr/local/bin/‘.

sudo cp $PROM_SRC/prometheus /usr/local/bin/
sudo cp $PROM_SRC/promtool /usr/local/bin/

Copia las plantillas y bibliotecas de la consola Prometheus al directorio ‘/etc/prometheus’.

sudo cp -r $PROM_SRC/consoles /etc/prometheus
sudo cp -r $PROM_SRC/console_libraries /etc/prometheus

3. A continuación, edita la configuración de Prometheus‘/etc/prometheus/prometheus.yml ‘ utilizando el editor nano.

nano /etc/prometheus/prometheus.yml

En la opción‘scrape_configs‘, es posible que tengas que añadir trabajos de monitorización y la forma de scrapear todos los datos del objetivo.

La configuración por defecto viene con el nombre de trabajo de monitorización «prometheus» y el servidor de destino«localhost» a través de la opción «static_configs«.

Cambia el destino de ‘ localhost:9090′ a la dirección IP del servidor‘192.168.1.10:9090‘ como se indica a continuación.

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

# metrics_path defaults to ‘/metrics’
# scheme defaults to ‘http’.

static_configs:
– targets: [«192.168.1.10:9090»]

Guarda la configuración y sal.

4. Ahora ejecuta el siguiente comando para cambiar los directorios de configuración y datos al usuario‘promethues‘.

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Ahora ya has completado la instalación básica de Prometheus.

Configurar Prometheus

Configurar el archivo de servicio de Prometheus

En este paso, configurarás Prometheus como un servicio systemd.

1. Crea un nuevo archivo de servicio systemd ‘/etc/systemd/system/prometheus.service’ utilizando el editor nano.

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

Copia y pega la siguiente configuración.

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

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
–config.file /etc/prometheus/prometheus.yml \
–storage.tsdb.path /var/lib/prometheus/ \
–web.console.templates=/etc/prometheus/consoles \
–web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Guarda la configuración y sal.

2. A continuación, recarga el gestor systemd para aplicar la nueva configuración.

sudo systemctl daemon-reload

3. Ejecuta ahora el siguiente comando para iniciar y habilitar el servicio Prometheus y, a continuación, comprueba su estado actual.

sudo systemctl enable --now prometheus
sudo systemctl status prometheus

Si tu instalación ha sido un éxito, verás que el servicio Prometheus está activo y funcionando como se indica a continuación.

Configurar Prometheus como servicio systemd

La herramienta de monitorización Prometheus es ahora accesible en el puerto TCP‘9090.

4. Abre tu navegador web y escribe la dirección IP del servidor con el puerto ‘9090‘ en la barra de direcciones.

http://192.168.1.10:9090/

Y verás la consulta del tablero de prometheus que aparece a continuación.

Panel de consulta Prometheus

Ahora ya has completado la instalación de prometheus. Pasa al siguiente paso para instalar Node Exporter.

Instalación de Node Exporter en Rocky Linux

El exportador de nodos forma parte del proyecto prometheus. Puedes utilizar node exporter para exportar métricas de servidores Linux al servidor Prometheus.

En este paso, instalarás el exportador de nodos en el sistema Rocky Linux desde el archivo tar.gz.

Consulta este enlace para obtener la última versión de node exporter. En este ejemplo, instalaremos la versión 1.3.0 de node exporter.

Descargar Exportador de nodos

1. Cambia el directorio de trabajo a‘/usr/src‘ y descarga el archivo binario de node exporter utilizando el siguiente comando.

cd /usr/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz

2. Cuando finalice el proceso de descarga, extrae el archivo node exporter.

tar -xf node_exporter-1.3.0.linux-amd64.tar.gz

Ahora obtendrás un nuevo directorio ‘node_exporter-VERSION.OS‘.

2. A continuación, mueve el archivo binario del exportador de nodos al directorio ‘/usr/local/bin‘ utilizando el siguiente comando.

mv node_exporter-*/node_exporter /usr/local/bin

3. Pasa al siguiente paso para configurar node_exporter como un servicio systemd.

Configurar Node_exporter como servicio

Antes de crear un archivo de servicio de exportador de nodos, crea un nuevo usuario de sistema‘exportador_de_nodos’.

1. Ejecuta el siguiente comando para crear un nuevo usuario del sistema.

sudo adduser -M -r -s /sbin/nologin node_exporter

2. A continuación, crea un nuevo archivo de servicio para el exportador de nodos ‘/etc/systemd/system/node_exporter.service’ utilizando el editor nano.

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

Copia y pega la siguiente configuración.

[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Guarda la configuración y sal.

3. Ahora recarga el gestor systemd para aplicar la nueva configuración.

sudo systemctl daemon-reload

4. Inicia y habilita el servicio ‘node_exporter’ utilizando el siguiente comando.

sudo systemctl enable --now node_exporter

Configurar el Exportador de Nodos

Después, comprueba el estado actual del servicio ‘node_exporter’.

sudo systemctl status node_exporter

Asegúrate de que el servicio ‘node_exporter‘ está activo y en ejecución.

Configurar el Exportador de Nodos como un servicio systemd

5. El exportador de nodos se está ejecutando en el puerto por defecto«9100«. Compruébalo utilizando el comando ss que aparece a continuación.

ss -aplnt | grep node

Verás una salida similar a la siguiente.

State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port   Process
LISTEN   0        128              0.0.0.0:22            0.0.0.0:*       users:(("sshd",pid=683,fd=4))
LISTEN   0        128                    *:9090                *:*       users:(("prometheus",pid=709,fd=8))
LISTEN   0        128                    *:9100                *:*       users:(("node_exporter",pid=5786,fd=3))
LISTEN   0        128                 [::]:22               [::]:*       users:(("sshd",pid=683,fd=6))

Y habrás completado la instalación del exportador de nodos en el sistema Rocky Linux.

Añade node_exporter a Prometheus

Una vez completada la instalación de Prometheus y del exportador de nodos, añade el exportador de nodos al servidor Prometheus.

1. Edita la configuración de Prometheus utilizando el editor nano.

sudo nano /etc/prometheus/prometheus.yml

En la sección«scrape_config«, añade un nuevo trabajo de Prometheus con la siguiente configuración. Y asegúrate de cambiar la dirección IP del servidor con tu servidor de destino.

  - job_name: 'node_exporter_metrics'
    scrape_interval: 5s
    static_configs:
      - targets: ['SERVER-IP:9100']

Guarda la configuración y sal.

2. Ahora reinicia el servicio Prometheus para aplicar la nueva configuración.

sudo systemctl restart prometheus

Y habrás añadido el exportador de nodos al servidor Prometheus.

Verificar la instalación de Prometheus y del exportador de nodos

1. Vuelve al panel de Prometheus, haz clic en el menú«Estado» y selecciona«Objetivos«.

Verás dos objetivos diferentes, el‘prometheus‘ y el‘node_exporter_metrics‘.

Métricas objetivo de Prometheus

2. A continuación, ve al menú ‘Gráfico‘ y escribe la consulta PromQL en la barra de búsqueda. En este ejemplo, comprueba el sistema operativo detallado utilizando la consulta‘node_os_info‘.

Y verás información detallada sobre tu sistema operativo actual.

ejemplos prometheus Consulta PromQL

3. Otro ejemplo, comprueba las velocidades de la red utilizando la consulta ‘node_network_speed_bytes‘, y luego pasa a la pestaña‘Gráfico‘. Y verás un resultado similar al siguiente.

ejemplos prometheus Consulta PromQL

Ahora ya has instalado correctamente Prometheus y el exportador de nodos en el sistema Rocky Linux.

Conclusión

¡Enhorabuena! Has aprendido la instalación y configuración básica del sistema de monitorización Prometheus y del exportador de nodos en el sistema Rocky Linux.

Para el siguiente paso, puedes explorar otro exportador Prometheus para otras aplicaciones y Grafana como panel de control de la supervisión.

También te podría gustar...