Prometheus es una aplicación de Código Abierto utilizada para el seguimiento y alerta de eventos. Registra las métricas en tiempo real en una base de datos temporal construida mediante el modelo de atracción HTTP, con consultas flexibles y alertas en tiempo real.

Con este software, podemos hacer seguimiento literalmente todo. Por lo general suele ser integrado con Grafana, por lo que la integración es sumamente sencilla ya que Grafana dispone de la opción de importar datos desde Prometheus.

Descargar última versión

Para descargar la última aplicación, lo que haremos será descargar la última versión disponible en la pagina de Github de Prometheus. Para cuando se escribe este tutorial, la última versión es la v2.39.1:

# wget https://github.com/prometheus/prometheus/releases/download/v2.39.1/prometheus-2.39.1.linux-amd64.tar.gz

Una vez descargado, procedemos a descomprimir el binario:

# tar -xzf prometheus-*linux-amd64.tar.gz
# mv prometheus-*linux-amd64 prometheus
# mkdir -p /var/lib/prometheus
# mkdir -p /etc/prometheus
# cp prometheus/prometheus.yml /etc/prometheus
# mv prometheus/prometheus prometheus/promtool /usr/local/bin/
# mv prometheus/consoles/ prometheus/console_libraries/ /etc/prometheus/

Configurar usuario

El servicio de Prometheus debe ser ejecutado bajo un usuario, como que éste no existe en nuestro sistema, lo deberemos de crear:

# groupadd --system prometheus
# useradd -s /sbin/nologin --system -g prometheus prometheus

Configuramos los permisos del binario de Prometheus con el nuevo usuario:

# chown prometheus:prometheus /etc/prometheus
# chown prometheus:prometheus /var/lib/prometheus
# chown -R prometheus:prometheus /etc/prometheus/consoles
# chown -R prometheus:prometheus /etc/prometheus/console_libraries

Configurar servicio con SystemD

Para poder gestionar Prometheus como un servicio, tenemos que crear el siguiente fichero y añadir el contenido:

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

[Unit]
Description=Prometheus Server
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart= /usr/local/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

Iniciamos el servicio que acabamos de agregar:

# systemctl daemon-reload
# systemctl start prometheus.service
# systemctl enable prometheus.service

Tras iniciar el servicio, podremos acceder a Prometheus por el puerto 9090.

Configurar acceso por subdominio

Si queremos acceder a Prometheus usando un dominio o subdominio podemos configurar un Nginx Proxy para que apunte directamente al puerto 9090 siguiendo las instrucciones de este otro tutorial:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.

Configurar autentificación básica

Recuerda que puedes configurar un acceso desde la propia configuración de Prometheus:

Configurar autentificación básica para Prometheus
De todas formas, dentro de la configuración de Prometheus, existe la posibilidad de configurar desde la propia configuración de Prometheus una autentificación básica.
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación