CodeGym /Kursy /Docker SELF /Konfiguracja monitorowania kontenerów z Prometheus

Konfiguracja monitorowania kontenerów z Prometheus

Docker SELF
Poziom 21 , Lekcja 3
Dostępny

4.1 Instalacja Prometheus

Prometheus — to potężny system monitorowania i powiadomień open-source, zaprojektowany do zbierania i przechowywania metryk z różnych źródeł, w tym kontenerów Docker. Na tym wykładzie szczegółowo przeanalizujemy proces konfiguracji monitorowania kontenerów za pomocą Prometheus, w tym instalację, konfigurację zbierania metryk i integrację z Docker.

1. Pobieranie i instalacja Prometheus

Najpierw pobierz najnowszą wersję Prometheus z oficjalnej strony:

Terminal

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

Wypakuj archiwum:

Terminal

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

Przenieś pliki binarne do /usr/local/bin:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Konfiguracja pliku konfiguracji Prometheus

Prometheus używa pliku konfiguracji prometheus.yml, aby określić źródła metryk i ustawienia zbierania danych. Utwórz albo edytuj plik prometheus.yml:

Yaml

global:
  scrape_interval: 15s  # Interwał zbierania metryk
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

Ten plik konfiguracji zawiera dwa zadania (job):

  1. prometheus: do zbierania metryk z samego Prometheus.
  2. cadvisor: do zbierania metryk z cAdvisor, który będzie używany do monitorowania kontenerów Docker.

5.3 Uruchamianie Prometheus

Uruchom Prometheus używając utworzonego pliku konfiguracyjnego:

Terminal

prometheus --config.file=prometheus.yml

Prometheus będzie dostępny pod adresem http://localhost:9090.

5.4 Instalacja i konfiguracja cAdvisor

cAdvisor (Container Advisor) — to narzędzie do monitorowania kontenerów, które zbiera i udostępnia metryki dla kontenerów Docker. Aby go użyć, wykonaj następujące kroki:

Uruchom cAdvisor w kontenerze 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 będzie dostępny pod adresem http://localhost:8080.

5.5 Aktualizacja konfiguracji Prometheus dla cAdvisor

Upewnij się, że konfiguracja Prometheus zawiera zadanie dla cAdvisor. Przykład konfiguracji został przedstawiony powyżej.

Uruchom ponownie Prometheus, aby zastosować zmiany:

Terminal

prometheus --config.file=prometheus.yml

5.6 Sprawdzanie zbierania metryk

Wejdź do interfejsu webowego Prometheus pod adresem http://localhost:9090 i upewnij się, że Prometheus zbiera metryki z cAdvisor. W tym celu wykonaj zapytanie w Prometheus:

Terminal

container_cpu_usage_seconds_total

Powinieneś zobaczyć dane zebrane z kontenerów Docker.

5.7 Dodawanie dodatkowych metryk

Możesz dodać dodatkowe metryki do pliku konfiguracyjnego Prometheus, aby zbierać więcej danych o swoich kontenerach. Przykład dodatkowych metryk:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Do tego będzie potrzebna instalacja node_exporter, który dostarcza metryki o stanie systemu hosta.

Pobierz i zainstaluj 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/

Uruchom node_exporter:

Terminal

node_exporter &

Teraz node_exporter będzie dostępny pod adresem http://localhost:9100.

5.8 Tworzenie zasad powiadomień

Prometheus obsługuje tworzenie zasad powiadomień, aby informować administratorów o problemach. Dodaj zasady powiadomień do pliku konfiguracyjnego prometheus.yml:

Yaml

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

Utwórz plik alert.rules z przykładowymi zasadami:

Yaml

groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "Wykryto wysokie użycie CPU"
      description: "Kontener używa więcej niż 85% CPU przez ponad 1 minutę."
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION