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
-
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
.
-
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
-
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.
-
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.
- 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í.
-
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ěží.
-
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.
-
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ů.