Košík je prázdný

V dnešním dynamickém světě vývoje softwaru se správa a monitorování kontejnerů staly nezbytnou součástí infrastruktury každého IT oddělení. Docker, přední platforma pro kontejnerizaci, umožňuje rychlé nasazení a škálování aplikací v izolovaných prostředích. Abychom zajistili vysokou dostupnost a spolehlivost těchto aplikací, je klíčové implementovat efektivní monitorování a systém upozorňování. V tomto článku se podrobně podíváme na to, jak na operačním systému CentOS implementovat monitorování a alertování pro Docker kontejnery s využitím nástrojů cAdvisor a Alertmanager.

Základní přehled nástrojů

cAdvisor (Container Advisor) je otevřený nástroj od společnosti Google, který poskytuje užitečné informace o výkonu a využití zdrojů kontejnerů. cAdvisor sbírá a zpracovává statistiky o kontejnerech a umožňuje uživatelům získat přehled o klíčových metrikách, jako jsou využití CPU, paměti, síťové aktivity a diskové operace.

Alertmanager, součást ekosystému Prometheus, se zabývá zpracováním a distribucí upozornění generovaných na základě pravidel nastavených v Prometheus. Alertmanager umožňuje definovat složité logiky upozorňování a zajistit, aby byla upozornění doručena přes různé kanály, jako jsou email, Slack, PagerDuty a další.

Instalace a konfigurace cAdvisor

  1. Příprava systému: Nejprve se ujistěte, že na vašem CentOSu běží Docker. Můžete to prověřit pomocí příkazu sudo systemctl status docker. Pokud Docker není nainstalován, můžete jej nainstalovat pomocí příkazů sudo yum install -y yum-utils následovaných sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo a sudo yum install docker-ce.

  2. Spuštění cAdvisor: cAdvisor lze snadno spustit jako Docker kontejner pomocí příkazu:

    sudo docker run \
      --volume=/:/rootfs:ro \
      --volume=/var/run:/var/run:rw \
      --volume=/sys:/sys:ro \
      --volume=/var/lib/docker/:/var/lib/docker:ro \
      --publish=8080:8080 \
      --detach=true \
      --name=cadvisor \
      google/cadvisor:latest
    

    Tento příkaz spustí cAdvisor a zpřístupní jeho webové rozhraní na portu 8080.

Konfigurace Alertmanageru

  1. Instalace Alertmanageru: Alertmanager je možné stáhnout z oficiálních stránek Prometheus. Po stažení rozbalte archiv a přesuňte spustitelné soubory do vhodného adresáře.

  2. Konfigurace: Konfigurační soubor Alertmanageru, obvykle pojmenovaný alertmanager.yml, umožňuje definovat pravidla upozorňování a způsoby notifikace. Ukázková konfigurace může vypadat následovně:

    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      group_wait: 10s
      group_interval: 10s
      repeat_interval: 1h
      receiver: 'email_notifications'
    receivers:
    - name: 'email_notifications'
      email_configs:
      - to: Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.'
        send_resolved: true
    
    inhibit_rules:
      - source_match:
          severity: 'critical'
        target_match:
          severity: 'warning'
        equal: ['alertname', 'dev', 'instance']
    
    

 

Tato konfigurace nastavuje základní chování Alertmanageru, jako je seskupování upozornění, intervaly opakování a definice příjemců. V našem příkladu jsou všechna upozornění posílána na specifikovaný e-mail.

  1. Spuštění Alertmanageru: Po konfiguraci můžete Alertmanager spustit pomocí příkazu:
    ./alertmanager --config.file=alertmanager.yml
    ​
    Ujistěte se, že cesta k souboru alertmanager.yml odpovídá umístění vašeho konfiguračního souboru.

Integrace s Prometheus

Aby Alertmanager mohl přijímat upozornění od cAdvisor prostřednictvím Prometheus, je nutné nastavit Prometheus tak, aby sbíral metriky z cAdvisor a definovat pravidla upozorňování.

  1. Konfigurace Prometheus: Ve vašem konfiguračním souboru Prometheus (prometheus.yml) přidejte cAdvisor jako cíl:

    scrape_configs:
    - job_name: 'cadvisor'
      scrape_interval: 5s
      static_configs:
      - targets: ['<IP_ADRESA_CADVISOR>:8080']
    

    Nahraďte <IP_ADRESA_CADVISOR> skutečnou IP adresou nebo hostname, kde cAdvisor běží.

  2. Definování pravidel upozorňování: Vytvořte soubor s pravidly upozorňování pro Prometheus, například alert.rules.yml, a definujte v něm pravidla, která vyhovují vašim potřebám. Například:

    groups:
    - name: example
      rules:
      - alert: HighMemoryUsage
        expr: process_resident_memory_bytes > 100000000
        for: 1m
        labels:
          severity: warning
        annotations:
          summary: High memory usage detected
    

    Toto pravidlo vygeneruje upozornění, pokud nějaký proces překročí 100 MB paměti.

  3. Restart Prometheus a Alertmanager: Po přidání cAdvisor do konfigurace Prometheus a nastavení pravidel upozorňování restartujte obě služby, aby se změny projevily.

Monitorování a diagnostika

Po úspěšném nastavení můžete přistupovat k webovému rozhraní cAdvisor a Prometheus, aby jste monitorovali výkon vašich kontejnerů a případně diagnostikovali problémy. Alertmanager vás bude informovat o všech detekovaných problémech podle konfigurovaných pravidel upozorňování.

Tato konfigurace poskytuje základní přehled o tom, jak implementovat monitorování a alertování pro Docker kontejnery na CentOSu s využitím cAdvisor a Alertmanager. Samozřejmě, každé prostředí je unikátní a může vyžadovat specifické úpravy konfigurace pro dosažení optimálních výsledků.