Cómo instalar Prometheus y node_exporter en CentOS 7

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 muchasintegraciones.

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 servidor CentOS 7 para esta guía tutorial.

Requisitos previos

  • Servidor CentOS 7
  • Privilegios de root

¿Qué vamos a hacer?

  1. Crear un nuevo usuario y descargar Prometheus
  2. Configura Prometheus como servicio Systemd
  3. Configurar Firewalld
  4. Instalar y configurar node_exporter
  5. Añade node_exporter al servidor de Prometheus
  6. 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.2.1/prometheus-2.2.1.linux-amd64.tar.gz

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

tar -xzvf prometheus-2.2.1.linux-amd64.tar.gz
mv prometheus-2.2.1.linux-amd64/ prometheus/

Prometheus se descarga en el servidor y todos los archivos de prometheus se encuentran en el directorio ‘/home/prometheus/prometheus’.

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 Prometheus para 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.

Comprueba que prometheus se está ejecutando

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 a Prometheus utilizando los comandos firewall-cmd que aparecen a continuación.

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

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

http://192.168.33.10:9090/graph

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

Gráfico de Prometeo

Y verás las peticiones HTTP al servidor 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.16.0-rc.1/node_exporter-0.16.0-rc.1.linux-amd64.tar.gz

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

tar -xzvf node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
mv node_exporter-0.16.0-rc.1.linux-amd64 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

Allí, pega la configuración del servicio node_exporter que aparece a continuació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

Configurar la unidad systemd node_exporter

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

netstat -plntu

Y obtendrás que node_exporter se está ejecutando en el puerto 9100.

Comprueba el puerto de node_exporter

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.

Añadir node_exporter al servidor Prometheus

Ahora reinicia el servicio prometheus.

systemctl restart prometheus

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

Paso 6 – Prueba de Prometheus y node_exporter

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

http://192.168.33.10: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.

Resultado de node_memory_MemAvailable_bytes

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
firewall-cmd --reload

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

http://192.168.33.10:9100/metrics

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

Métrica de resultados

La instalación y configuración del sistema de monitorización prometheus con el node_exporter en CentOS 7 se ha completado con éxito.

Referencia

También te podría gustar...