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?
- 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.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
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.
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».
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
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.
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.
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.
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.
La instalación y configuración del sistema de monitorización prometheus con el node_exporter en CentOS 7 se ha completado con éxito.