CodeGym /Corsi /Docker SELF /Configurazione del monitoraggio dei container con Prometh...

Configurazione del monitoraggio dei container con Prometheus

Docker SELF
Livello 21 , Lezione 3
Disponibile

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:

Terminale

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

Estrai l'archivio:

Terminale

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

Sposta i file binari in /usr/local/bin:

Terminale

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:

Yaml

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:

  1. prometheus: per raccogliere metriche dallo stesso Prometheus.
  2. 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:

Terminal

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:

Terminal

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:

Terminale

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:

Terminal

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:

Yaml

  - 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:

Terminal

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:

Terminal

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:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

Crea il file alert.rules con un esempio di regole:

Yaml

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."
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION