Prometheus es un excelente sistema de monitoreo de código abierto que nos permite recopilar métricas de nuestras aplicaciones y almacenarlas en una base de datos, especialmente una base de datos basada en series temporales. La mayor ventaja de Prometheus es el lenguaje de consulta que proporciona para el procesamiento de datos. Tiene una interfaz web que permite un fácil monitoreo desde cualquier dispositivo con conexión a Internet y también admite alertas por correo electrónico y mensajes SMS en caso de que las métricas superen un umbral configurado.
Aquí en LinuxAPT, como parte de nuestros Servicios de Administración de Servidores, ayudamos regularmente a nuestros Clientes a realizar consultas relacionadas con la Instalación de Software.
En este contexto, veremos cómo instalar Prometheus en Ubuntu 20.04 LTS.
¿Pasos para instalar Prometheus en Ubuntu 20.04 LTS Focal Fossa?
1. Realizar la actualización del sistema
Primero, asegúrese de que todos los paquetes de su sistema estén actualizados ejecutando los siguientes comandos apt en la terminal:
$ sudo apt update
$ sudo apt upgrade
2. Instalar el servidor web Nginx
Nginx está disponible en los repositorios predeterminados de Ubuntu. Para instalarlo ejecuta el siguiente comando:
$ sudo apt install nginx
Una vez que se complete la instalación, ejecute los comandos para permitir que Nginx se inicie automáticamente cuando se inicie su servidor:
$ sudo systemctl stop nginx.service
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
3. Crear usuarios de Prometheus
Tenemos que crear el usuario y grupo llamado prometheus y también el directorio llamado Prometheus:
$ sudo useradd -s /sbin/nologin --system -g prometheus prometheussudo mkdir /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
4. Instala Prometheus en el sistema
Descargue la última versión estable de Prometheus usando el comando wget:
$ mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*.tar.gz
Una vez que se completó la extracción del archivo, mueva los archivos binarios de Prometheus y promtool en la carpeta de archivo de Prometheus extraída al directorio/usr/local/bin:
$ sudo mv prometheus promtool /usr/local/bin/
5. Configurar Prometeo
Crearemos el archivo de configuración llamado prometheus.yml en el directorio /etc/prometheus:
$ sudo mv prometheus.yml /etc/prometheus/prometheus.yml
$ sudo mv consoles/ console_libraries/ /etc/prometheus/
$ sudo nano /etc/prometheus/prometheus.yml
El contenido de prometheus.yml es el siguiente:
mi configuración global
globales:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
Alertmanager configuration
alerting:
alertmanagers:
static_configs: targets:
# - alertmanager:9093
Cargue las reglas una vez y evalúelas periódicamente de acuerdo con el 'intervalo_de_evaluación' global.
archivos_de_reglas:
# - "first_rules.yml"
# - "second_rules.yml"
Una configuración de extracción que contiene exactamente un punto final para extraer:
Aquí está Prometeo mismo.
scrape_configs:
# The job name is added as a label job= to any timeseries scraped from this config.
job_name: 'prometheus'
metrics_path defaults to '/metrics'
scheme defaults to 'http'.
static_configs:
targets: ['localhost:9090']
6. Cree un servicio Prometheus Systemd
Ahora, crearemos un archivo para el servicio systemd:
$ sudo nano /etc/systemd/system/prometheus.service
Agregue el siguiente archivo:
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP \$MAINPID
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 \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Luego, cambie la propiedad de estos directorios al usuario y grupo de Prometheus:
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/
Una vez que haya terminado con las configuraciones anteriores, vuelva a cargar systemd usando el siguiente comando:
$ sudo systemctl daemon-relaod
$ sudo systemctl start prometheus
$ sudo systemctl enable prometheus
7. Configurar cortafuegos
Mientras tanto, debe asegurarse de que su firewall esté configurado para permitir el tráfico en los puertos HTTP (80), HTTPS (443) y 9090. Nginx se registra como servicio con ufw :
$ sudo ufw allow in "Nginx Full"
$ sudo ufw allow 9090/tcp
8. Acceda a la interfaz web de Prometheus
Prometheus estará disponible en el puerto HTTP 9090 de forma predeterminada.
Abra su navegador favorito y vaya a http://su-dominio.com:9090 o http://dirección-ip-del-servidor:9090 y complete los pasos requeridos para finalizar la instalación.