Instalación y configuración de Prometheus
Descargar e instalar Prometheus
Descargue la última versión de Prometheus y ejecute el proceso de verificación del checksum para asegurarse de que el archivo descargado no haya sido manipulado.
cd
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
echo "7f31c5d6474bbff3e514e627e0b7a7fbbd4e5cea3f315fd0b76cad50be4c1ba3 prometheus-2.52.0.linux-amd64.tar.gz" | sha256sum --checkResultado esperado: verificar el resultado de la verificación de la suma de control
prometheus-2.52.0.linux-amd64.tar.gz: OKSi se verifica el checksum, extraiga los archivos y muévalos a los directorios /usr/local/biny /etc/prometheuspara mayor claridad y mejores prácticas. Luego, limpie las copias duplicadas.
tar xvf prometheus-2.52.0.linux-amd64.tar.gz
sudo cp prometheus-2.52.0.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-2.52.0.linux-amd64/promtool /usr/local/bin/
sudo cp -r prometheus-2.52.0.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-2.52.0.linux-amd64/console_libraries /etc/prometheus
sudo rm -r prometheus-2.52.0.linux-amd64 prometheus-2.52.0.linux-amd64.tar.gzConfigurar Prometheus
Cree una cuenta ( prometheus) sin acceso al servidor para que Prometheus se ejecute como un servicio en segundo plano. Esto restringe a los atacantes potenciales únicamente al servicio Prometheus en el improbable caso de que logren infiltrarse a través de una actualización de cliente comprometida.
sudo useradd --no-create-home --shell /bin/false prometheusCree un directorio para que Prometheus almacene los datos de monitoreo. Luego configure el propietario al usuario prometheus y el directorio /etc/prometheus para que pueda leer y escribir en los directorios.
sudo mkdir -p /var/lib/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
sudo chown -R prometheus:prometheus /etc/prometheusCree un archivo de configuración para que Prometheus sepa de dónde extraer los datos.
sudo nano /etc/prometheus/prometheus.ymlPegue los siguientes parámetros de configuración en el archivo:
1) Parámetros generales + cliente de ejecución:
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- job_name: node_exporter
static_configs:
- targets:
- localhost:9100
- job_name: nethermind
static_configs:
- targets:
- localhost:9091global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- job_name: node_exporter
static_configs:
- targets:
- localhost:9100
- job_name: 'besu'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- localhost:9545global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- job_name: node_exporter
static_configs:
- targets:
- localhost:9100
- job_name: 'geth'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /debug/metrics/prometheus
scheme: http
static_configs:
- targets:
- localhost:6060 global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- job_name: node_exporter
static_configs:
- targets:
- localhost:9100
- job_name: 'erigon'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /debug/metrics/prometheus
scheme: http
static_configs:
- targets:
- localhost:6060 global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- job_name: node_exporter
static_configs:
- targets:
- localhost:9100
- job_name: 'reth'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: "/"
scheme: http
static_configs:
- targets:
- localhost:6060 2) Parámetros del cliente de consenso:
Según el cliente de consenso seleccionado, agregue el siguiente bloque a lo agregado en 1)
- job_name: "teku_beacon" #for consensus client
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets: ["localhost:8009"]
- job_name: "teku_validator" #for validator client
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets: ["localhost:8108"] - job_name: 'Nimbus_beacon' #for consensus client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8009']
- job_name: 'Nimbus_validator' #for validator client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8108'] - job_name: 'lodestar_beacon' #for consensus client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8009']
- job_name: 'lodestar_validator' #for validator client
metrics_path: /metrics
static_configs:
- targets: ['localhost:5064'] - job_name: 'lighthouse_beacon' #for consensus client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8009']
- job_name: 'lighthouse_validator' #for validator client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8108'] - job_name: 'prysm_beacon' #for consensus client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8009']
- job_name: 'prysm_validator' #for validator client
metrics_path: /metrics
static_configs:
- targets: ['localhost:8108']Una vez que haya terminado, guarde con Ctrl+Oy Enter, luego salga con Ctrl+X.
A continuación, cree un archivo de configuración systemd para que el servicio Prometheus se ejecute en segundo plano.
sudo nano /etc/systemd/system/prometheus.servicePegue los siguientes parámetros de configuración en el archivo:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=always
RestartSec=5
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.targetUna vez que haya terminado, guarde con Ctrl+Oy Enter, luego salga con Ctrl+X.
Iniciar el servicio Prometheus
Recargar el systemd para registrar los cambios realizados, inicie Prometheus y verifique su estado para asegurarse de que se esté ejecutando.
sudo systemctl daemon-reload
sudo systemctl start prometheus.service
sudo systemctl status prometheus.serviceResultado esperado: El resultado debería decir que Prometheus está "active (running)". Presione CTRL-C para salir y Prometheus continuará ejecutándose.

Utilice el siguiente comando para comprobar los registros en busca de advertencias o errores:
sudo journalctl -fu prometheus -o cat | ccze -AResultado esperado:

Presione CTRL-Cpara salir.
Si el servicio Prometheus funciona sin problemas, ahora podemos permitir que se inicie automáticamente al reiniciar el sistema.
sudo systemctl enable prometheus.serviceLast updated