Cómo instalar Prometheus Monitoring y node_exporter en CentOS 8

Prometheus es un sistema de monitorización de código abierto que te permite recoger métricas de cualquier sistema de destino configurado. Prometheus implementa un modelo de datos multidimensional con potentes consultas, gran visualización, alertas precisas y viene con muchas integraciones.

Prometheus fue creado originalmente por SoundCloud en 2012, pero ahora se ha convertido en un proyecto de código abierto independiente mantenido por la comunidad de código abierto: todos los componentes están disponibles bajo la licencia Apache 2 en Github.

En este tutorial, te mostraré cómo instalar y configurar Prometheus y el node_exporter. Instalaremos el sistema de monitorización Prometheus y luego configuraremos el node_exporter para recoger las métricas del servidor. Utilizaremos el último servidor CentOS 8 para esta guía tutorial.

Requisitos previos

  • Servidor CentOS 8
  • Privilegios de root

¿Qué vamos a hacer?

  • Crear un nuevo usuario y descargar Prometheus
  • Configura Prometheus como servicio Systemd
  • Configurar Firewalld
  • Instalar y configurar node_exporter
  • Añade node_exporter al servidor de Prometheus
  • Prueba de

Paso 1 – Crear un nuevo usuario y descargar Prometheus

En este tutorial, el servicio Prometheus se ejecutará como un usuario no root. Así que tenemos que crear un nuevo usuario no root en el sistema. Crearemos un nuevo usuario llamado ‘prometheus’, y todos los servicios de prometheus se ejecutarán bajo el usuario prometheus.

Crea el nuevo usuario ‘prometheus’ con el siguiente comando.

useradd -m -s /bin/bash prometheus

Se ha creado un nuevo usuario. Ahora entra en el usuario y descarga prometheus utilizando el comando wget.

su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz

Descargar el código fuente de Prometheus

Extrae el archivo prometheus-xx.x.x.tar.gz y renombra el directorio a ‘prometheus’.

tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/

A continuación, crea un nuevo directorio ‘data’ que se utilizará como almacenamiento ‘tsdb’.

mkdir -p ~/prometheus/data

Ahora el prometheus se ha descargado en el servidor, y todos los archivos del prometheus se encuentran en el directorio ‘/home/prometheus/prometheus’.

Extrae el archivo comprimido

Paso 2 – Configurar Prometheus como servicio Systemd

En este paso, configuraremos prometheus como un servicio systemd. Crearemos un nuevo archivo de servicio prometheus.service en el directorio ‘/etc/systemd/system’.

Ve al directorio ‘/etc/systemd/system/’ y crea un nuevo archivo de servicio ‘prometheus.service’ utilizando el editor vim.

cd /etc/systemd/system/
vim prometheus.service

Pega la configuración del servicio prometheus que aparece a continuación.

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=prometheus
Restart=on-failure

#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
  --config.file=/home/prometheus/prometheus/prometheus.yml \
  --storage.tsdb.path=/home/prometheus/prometheus/data

[Install]
WantedBy=multi-user.target

Guarda y sal.

Ahora recarga el sistema systemd utilizando el comando systemctl que aparece a continuación.

systemctl daemon-reload

Inicia el servicio prometheus y habilítalo para que se inicie siempre al arrancar el sistema.

systemctl start prometheus
systemctl enable prometheus

Configurar el servicio prometheus en systemd

El prometheus se está ejecutando ahora como un servicio systemd, compruébalo utilizando el siguiente comando.

systemctl status prometheus

Asegúrate de que obtienes el estado de servicio «En ejecución».

O compruébalo utilizando el comando netstat que aparece a continuación.

netstat -plntu

Asegúrate de que obtienes el resultado que se muestra a continuación.

Comprobar el estado del servicio prometheus

Prometheus se ejecuta por defecto en el puerto ‘9090’.

Paso 3 – Configurar Firewalld

Si utilizas Firewalld en tu sistema, añade el puerto 9090 a la lista de puertos de Firewalld.

Abre el puerto 9090 para el acceso de Prometheus utilizando los comandos firewall-cmd que aparecen a continuación.

firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload

Ahora comprueba las reglas de firewalld.

firewall-cmd --list-all

Y obtendrás el puerto TCP ‘9090’ en la lista.

Configurar firewalld

A continuación, abre tu navegador web y escribe la dirección IP del servidor con el puerto 9090.

http://10.5.5.15:9090/graph

Escribe «prometheus_http_requests_total» en el campo de consulta y haz clic en el botón «Ejecutar».

Panel de control del monitor del sistema Prometheus

Y verás las peticiones HTTP al servidor de prometheus con toda la información sobre la hora, el código de estado HTTP y el método, etc.

Paso 4 – Instalar y configurar node_exporter

node_exporter es un exportador de métricas de máquina que puede funcionar en sistemas *Nix y Linux.

En este tutorial, instalaremos el node_exporter en el mismo servidor prometheus. Monitorizaremos y obtendremos la métrica del servidor prometheus.

Accede al usuario de prometheus y descarga el ‘node_exporter’ utilizando el comando wget.

su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

Extrae el node_exporter y renombra el directorio a ‘node_exporter’.

tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter

Instalar y configurar node_exporter

A continuación, crearemos un nuevo archivo de servicio para el node_exporter. Vuelve al shell raíz, ve al directorio ‘/etc/systemd/system’ y crea un nuevo archivo de servicio para node_exporter ‘node_exporter.service’ utilizando vim.

cd /etc/systemd/system/
vim node_exporter.service

Pega la siguiente configuración.

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

[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

Guarda y sal.

Ahora vuelve a cargar el sistema systemd.

systemctl daemon-reload

A continuación, inicia el servicio node_exporter y habilítalo para que se inicie siempre al arrancar el sistema.

systemctl start node_exporter
systemctl enable node_exporter

Iniciar el exportador de nodos

El servicio node_exporter se está ejecutando ahora en el servidor: compruébalo con el comando netstat.

systemctl status node_exporter
netstat -plntu

Y obtendrás que el servicio node_exporter está en marcha en el puerto 9100 por defecto.

Comprueba el estado del exportador de nodos

Paso 5 – Añadir node_exporter al servidor Prometheus

En este paso, añadiremos el node_exporter al servidor prometheus. Accede al usuario prometheus y edita el archivo de configuración ‘prometheus.yml’.

Accede al usuario prometheus.

su - prometheus

Ve al directorio ‘prometheus’ y edita el archivo de configuración ‘prometheus.yml’.

cd ~/prometheus/
vim prometheus.yml

En la línea ‘scrape_config’, añade un nuevo nombre de trabajo node_exporter copiando y pegando la configuración que aparece a continuación.

  - job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9100']

Guarda y sal.

Ahora reinicia el servicio prometheus.

systemctl restart prometheus

El nodo_exportador se ha añadido al servidor de prometheus.

reiniciar el servicio prometheus

Paso 6 – Prueba de Prometheus y node_exporter

Abre tu navegador web e introduce la dirección IP del servidor

http://10.5.5.15:9090/

Escribe el colector meminfo ‘node_memory_MemAvailable_bytes’ en el campo de consulta y haz clic en el botón ‘Ejecutar’.

Y obtendrás el resultado que se muestra a continuación.

Prueba de Prometeo

Obtendrás la memoria disponible en la instancia del servidor ‘localhost:9100’, y el nombre del trabajo ‘node-exporter’.

O si quieres acceder a los datos brutos de node_exporter, tienes que añadir el puerto 9100 de node_exporter al firewalld.

firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload

Y luego escribir la dirección IP del servidor con el puerto 9100.

http://10.5.5.15:9100/metrics

Y obtendrás los datos brutos de node_exporter como se muestra a continuación.

Prometheus Metrics

Como resultado, la instalación y configuración del sistema de monitorización prometheus con el node_exporter en el servidor CentOS 8 se ha completado con éxito.

Referencia

También te podría gustar...