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 v1.31.1:

# wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz -P /opt

Una vez descargado, procedemos a descomprimir el binario:

# tar -xzf /opt/prometheus-*linux-amd64.tar.gz
# mv /opt/prometheus-*linux-amd64 /opt/prometheus
# mkdir -p /etc/prometheus
# cp /opt/prometheus/prometheus.yml /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:

# useradd -s /sbin/false prometheus

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

# chmod 755 /opt/prometheus -R
# chown prometheus:prometheus /opt/prometheus -R
# chown prometheus:prometheus /etc/prometheus -R

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= /opt/prometheus --config.file=/etc/prometheus.yml --storage.tsdb.path=/opt/prometheus --web.console.templates=/opt/prometheus/consoles --web.console.libraries=/opt/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 - _ voidNull
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. Esta configuración nos da algunas ventajas, ya que podemos c…