4.1 Installazione di Prometheus
Prometheus è un potente sistema di monitoraggio e avviso open source, progettato per raccogliere e memorizzare metriche da varie fonti, inclusi i container Docker. In questa lezione vedremo in dettaglio il processo di configurazione del monitoraggio dei container con Prometheus, inclusa l'installazione, la configurazione della raccolta delle metriche e l'integrazione con Docker.
1. Scaricare e installare Prometheus
Per prima cosa, scarica l'ultima versione di Prometheus dal sito ufficiale:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
Estrai l'archivio:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Sposta i file binari in /usr/local/bin
:
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
4.2 Configurazione del file di configurazione di Prometheus
Prometheus usa il file di configurazione prometheus.yml
per specificare le sorgenti delle metriche e le impostazioni per la raccolta dei dati. Crea o modifica il file prometheus.yml
:
global:
scrape_interval: 15s # Intervallo di raccolta delle metriche
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
Questo file di configurazione include due job:
prometheus
: per raccogliere metriche dallo stesso Prometheus.cadvisor
: per raccogliere metriche da cAdvisor, che sarà utilizzato per monitorare i container Docker.
5.3 Avvio di Prometheus
Avvia Prometheus utilizzando il file di configurazione creato:
prometheus --config.file=prometheus.yml
Prometheus sarà accessibile all'indirizzo http://localhost:9090.
5.4 Installazione e configurazione di cAdvisor
cAdvisor
(Container Advisor) è uno strumento per il monitoraggio dei container che raccoglie e fornisce metriche per i container Docker. Per utilizzarlo, segui questi passaggi:
Avvia cAdvisor
in un container Docker:
docker run -d \
--name=cadvisor \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--privileged \
gcr.io/cadvisor/cadvisor:latest
cAdvisor
sarà disponibile all'indirizzo http://localhost:8080.
5.5 Aggiornamento della configurazione di Prometheus per cAdvisor
Assicurati che la configurazione di Prometheus includa un job per cAdvisor. Un esempio di configurazione è stato mostrato sopra.
Riavvia Prometheus per applicare le modifiche:
prometheus --config.file=prometheus.yml
5.6 Verifica della raccolta delle metriche
Vai all'interfaccia web di Prometheus all'indirizzo http://localhost:9090 e assicurati che Prometheus stia raccogliendo metriche da cAdvisor. Per farlo, esegui una query in Prometheus:
container_cpu_usage_seconds_total
Dovresti vedere i dati raccolti dai container Docker.
5.7 Aggiunta di metriche aggiuntive
Puoi aggiungere metriche aggiuntive al file di configurazione di Prometheus per raccogliere più dati sui tuoi container. Un esempio di metriche aggiuntive:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Per farlo, è necessario installare node_exporter
, che fornisce metriche sullo stato del sistema host.
Scarica e installa node_exporter
:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/
Avvia node_exporter:
node_exporter &
Ora node_exporter
sarà disponibile all'indirizzo http://localhost:9100.
5.8 Creazione di regole di allerta
Prometheus supporta la creazione di regole di allerta per notificare gli amministratori di eventuali problemi. Aggiungi regole di allerta nel file di configurazione prometheus.yml
:
rule_files:
- "alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- "localhost:9093"
Crea il file alert.rules
con un esempio di regole:
groups:
- name: example
rules:
- alert: HighCPUUsage
expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
for: 1m
labels:
severity: warning
annotations:
summary: "Utilizzo elevato della CPU rilevato"
description: "Il container sta usando più dell'85% della CPU per più di 1 minuto."
GO TO FULL VERSION