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
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
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
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.
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
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).
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:
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.
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
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
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
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).
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.
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.
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.
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.
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.
Introduce la consulta node_network_iface_id para obtener la lista de dispositivos de red del servidor 192.168.10.21.
También puedes verificar los detalles de la información del SO mediante la consulta node_os_info.
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.
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.