Cómo instalar Prometheus y Node Exporter en AlmaLinux 9

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. Es un único archivo binario que expondrá métricas de datos finales al servidor Prometheus.

Esta guía te mostrará cómo instalar Prometheus y Node Exporter en servidores AlmaLinux 9.

Requisitos previos

Asegúrate de que tienes lo siguiente antes de empezar:

  • Dos servidores AlmaLinux 9 – Este ejemplo utilizará un servidor separado para Prometheus y Node Exporter.
  • Un usuario no root puede ejecutar sudo para obtener los privilegios de root.

Instalación y configuración de Prometheus

Prometheus es un moderno sistema de supervisión y alerta de sistemas de código abierto. Puede instalarse en servidores Unix/Linux tradicionales mediante un paquete precompilado, utilizando tecnología de contenedores como Docker y Kubernetes, o herramientas de gestión de la configuración como Ansible, Chef, Puppet y Saltstack.

La siguiente sección te muestra cómo instalar Prometheus mediante un archivo binario precompilado en un servidor ALmaLinux 9.

Sigue estos pasos para instalar con éxito Prometheus en tu servidor AlmaLinux:

  • Configurar usuario y directorios
  • Descarga del paquete binario de Prometheus
  • Configurar el servidor Prometheus
  • Ejecutar Prometheus en segundo plano como servicio Systemd

Configurar usuario y directorios

Antes de instalar Prometheus, crearás un nuevo usuario y directorios en tu sistema. Este usuario se utilizará para ejecutar Prometheus, y algunos de los directorios se utilizarán para almacenar archivos de configuración y datos de Prometheus.

Ejecuta el siguiente comando para crear un nuevo usuario de sistema prometheus.

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

Ejecuta el comando siguiente para crear un nuevo directorio /etc/prometheus que se utilizará para almacenar los archivos de configuración de Prometheus y el directorio /var/lib/prometheus que se utilizará como directorio de datos para Prometheus.

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

Ahora ejecuta el siguiente comando para cambiar la propiedad de los directorios /etc/prometheus y /var/lib/prometheus al usuario prometheus y al grupo prometheus.

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

añadir usuario y directorio

Descarga del paquete precompilado de prometheus

Ahora, instalarás prometheus en tu servidor. En esta demostración, instalarás Prometheus mediante un paquete binario precompilado. Instalarás Prometheus en un servidor AlmaLinux con dirección IP 192.168.10.20.

Ejecuta el siguiente comando dnf para instalar wget en tu sistema.

sudo dnf install wget -y

instalar wget

Mueve tu directorio de trabajo a /usr/src y descarga el archivo binario precompilado de Prometheus mediante wget.

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

Ahora extrae el archivo binario de Prometheus prometheus-2.44.0.linux-amd64.tar.gz utilizando el comando tar que aparece a continuación. Deberías obtener un nuevo directorio prometheus-2.44.0.linux-amd64 que contiene el archivo binario de Prometheus y algunas de las configuraciones por defecto.

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

Ejecuta el siguiente comando para copiar el archivo de configuración por defecto de Prometheus prometheus.yml y algunos directorios importantes en /etc/prometheus/.

sudo cp /usr/src/prometheus-*/prometheus.yml /etc/prometheus/
sudo cp -r /usr/src/prometheus-*/consoles /etc/prometheus
sudo cp -r /usr/src/prometheus-*/console_libraries /etc/prometheus

Después, cambia la propiedad del directorio /etc/prometheus/ al usuario promtheus y al grupo prometheus mediante el siguiente comando.

sudo chown -R prometheus:prometheus /etc/prometheus

descargar prometheus

A continuación, ejecuta el siguiente comando para copiar el archivo binario de prometheus y promtool en el directorio /usr/bin/.

sudo cp /usr/src/prometheus-*/prometheus /usr/bin/
sudo cp /usr/src/prometheus-*/promtool /usr/bin/

A continuación, verifica el prometheus y el promtool utilizando el siguiente comando.

which prometheus
prometheus --version
which promtool
promtool --version

Si la instalación se ha realizado correctamente, deberías ver la ruta completa del comando prometheus y promtool, que se encuentra en el directorio /usr/bin/. También verás la versión instalada de Prometheus.

comprobar prometheus

Configurar Prometheus

Una vez descargado e instalado Prometheus, comenzarás la configuración básica de Prometheus.

Abre el archivo de configuración de prometheus /etc/prometheus/prometheus.yml utilizando el editor nano.

nano /etc/prometheus/prometheus.yml

En el parámetro scrape_configs, añade el nuevo trabajo prometheus con el objetivo del propio servidor Prometheus. En este ejemplo, el servidor Prometheus tiene una dirección IP de 192.168.10.20, y esto raspará métricas para Prometheus.

# 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.10.20:9090»]

Guarda y cierra el archivo cuando hayas terminado.

A continuación, crea un nuevo archivo de servicio systemd para prometheus en /etc/systemd/system/prometheus.service utilizando el comando editor nano.

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

Añade la siguiente configuración para ejecutar Prometheus como un servicio systemd.

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/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 el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando para recargar el gestor systemd y aplicar los cambios al systemd.

sudo systemctl daemon-reload

A continuación, inicia y habilita el servicio prometheus mediante el comando systemctl que aparece a continuación.

sudo systemctl start prometheus
sudo systemctl enable prometheus

ejecutar prometheus en segundo plano como servicio systemd

Verifica el servicio prometheus para asegurarte de que se está ejecutando.

sudo systemctl status prometheus

Si la instalación se ha realizado correctamente, deberías ver que el estado del servicio prometheus es activo (en ejecución).

verificar prometheus

Por último, inicia tu navegador web y visita la dirección IP del servidor seguida del puerto 9090 (es decir, http://192.168.10:20:9090/). Si la instalación se ha realizado correctamente, deberías obtener la página gráfica de Prometheus como ésta:

gráfico prometheus

También puedes verificar el estado del punto final de monitorización haciendo clic en Estado > Objetivos. Deberías ver el job_name prometheus con el estado UP.

comprobar el seguimiento del objetivo

Instalación y configuración de Node Exporter en la monitorización de objetivos

Node Exporter es una aplicación de Prometheus que expone las métricas del sistema de monitorización del objetivo. Te permite raspar una serie de métricas del sistema y puede exponerse para su posterior proceso a Prometheus.

En esta sección, instalarás Node Exporter en un servidor AlmaLinux 9 con dirección IP 192.168.10.21. Instalarás Node Exporter mediante un paquete binario precompilado proporcionado por Prometheus.

Descarga e instalación de Node Exporter

Para instalar Node Exporter, debes crear un usuario del sistema dedicado a él y descargar el paquete binario de Node Exporter a tu sistema.

Primero, ejecuta el siguiente comando para crear un nuevo usuario de sistema node_exporter.

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

Instala wget utilizando el siguiente comando dnf.

sudo dnf install wget -y

instalar wget

A continuación, desplázate al directorio /usr/src y descarga el archivo binario precompilado de Node Exporter mediante wget.

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

Una vez finalizada la descarga, deberías ver el archivo node_exporter-1.6.0.linux-amd64.tar.gz. Extráelo utilizando el siguiente comando tar.

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

A continuación, mueve el archivo binario de Node Exporter al directorio /usr/bin utilizando el comando que aparece a continuación.

mv node_exporter-*/node_exporter /usr/bin

Ahora verifica Node Exporter utilizando el siguiente comando. Si tiene éxito, deberías obtener la ruta binaria completa y la versión de Node Exporter.

which node_exporter
node_exporter --version

instalación del exportador de nodos

Ejecutar Node Exporter en segundo plano como un servicio

Una vez instalado Node Exporter, deberás configurar y ejecutar Node Exporter en segundo plano como un servicio systemd.

Para ello, crea un nuevo archivo de servicio systemd /etc/systemd/system/node_exporter.service utilizando el siguiente comando del editor nano. En este ejemplo, ejecutarás Node Exporter como un servicio systemd.

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

Introduce la siguiente configuración en el archivo.

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

[Install]
WantedBy=multi-user.target

Guarda y sal del archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd.

sudo systemctl daemon-reload

A continuación, inicia y habilita el servicio node_exporter mediante el siguiente comando.

sudo systemctl start node_exporter
sudo systemctl enable node_exporter

ejecutar exportador de nodos como servicio

Una vez iniciado y habilitado node_exporter, ejecuta el siguiente comando para verificarlo y asegurarte de que el servicio se está ejecutando.

sudo systemctl status node_exporter

Si se está ejecutando, deberías ver el servicio node_exporter con el estado activo (en ejecución).

comprobación del servicio exportador de nodos

Por último, ejecuta el siguiente comando para verificar el puerto de Node Exporter. Por defecto, se ejecuta en el puerto 9100.

ss -tulpn | grep node

Deberías ver que el puerto 9100 es utilizado por el servicio node_exporter.

comprobación del puerto exportador del nodo

También puedes verificarlo a través del navegador web visitando la dirección IP del servidor seguida del puerto 9100 (es decir: http://192.168.10.21:9100/). Deberías ver los datos del punto final de la monitorización del servidor a través de Node Exporter.

comprobación de las métricas del exportador de nodos

Añadir Node Exporter al servidor Prometheus

En esta sección, añadirás el Exportador de Nodos al servidor Prometheus. Has instalado y expuesto las métricas del sistema en el servidor 192.168.10.21, ahora lo añadirás al servidor Prometheus que se ejecuta en 192.168.10.20.

Abre la configuración de Prometheus /etc/prometheus/prometheus.yml utilizando el siguiente editor nano.

sudo nano /etc/prometheus/prometheus.yml

En el parámetro scrape_config, añade un nuevo job_name node_exporter_metrics e introduce el endpoint detallado del Exportador de Nodos. En el siguiente ejemplo se monitorizará el servidor nodo1 con dirección IP 192.168.10.21.

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

Guarda el archivo y sal del editor al terminar.

añadir exportador de nodos a prometheus

Ahora ejecuta el siguiente comando para reiniciar el servicio prometheus y aplicar los cambios.

sudo systemctl restart prometheus

Ahora abre el prometheus desde tu navegador web y haz clic en Estado > Objetivos para asegurarte de que se ha añadido el Nodo Exportador. Si se ha añadido correctamente, deberías ver el trabajo node_exporter_metrics con el estado UP.

comprobar exportador de nodos en prometheues

A continuación, ve al menú Gráfico e introduce la consulta que empieza por nodo_ para obtener la lista de consultas proporcionadas por el Exportador de Nodos.

consultas del exportador de nodos

Introduce la consulta node_network_iface_id para obtener la lista de dispositivos de red del servidor 192.168.10.21.

comprobar las interfaces de la lista

También puedes verificar los detalles de la información del SO mediante la consulta node_os_info.

exportador de nodos de información os

Por último, escribe la consulta node_load15 y haz clic en la pestaña Gráfico para obtener el estado de la carga del sistema durante los últimos 15 minutos.

carga del sistema últimos 15min

Conclusión

¡Excelente trabajo! Has instalado con éxito Prometheus en el servidor AlmaLinux 9 y también has monitorizado un servidor AlmaLinux a través del Exportador de Nodos.

Ahora puedes monitorizar otro servidor o monitorizar tu aplicación a través del exportador de Prometheus. También puedes integrar tu Prometheus con Grafana para la visualización de tu sistema de monitorización.

Scroll al inicio