GNU/Linux >> Znalost Linux >  >> Linux

Využití Grafana &Prometheus Kubernetes Cluster Monitoring

Monitorování vašeho clusteru Kubernetes je klíčové pro zajištění toho, že vaše služby budou vždy dostupné a běží. A než budete na internetu hledat monitorovací systém, proč nezkusit sledování clusterů Grafana a Prometheus Kubernetes?

V této příručce se dozvíte, jak monitorovat váš cluster Kubernetes, prohlížet metriky interního stavu pomocí řídicího panelu Prometheus a Grafana.

Čtěte dál, abyste mohli své zdroje bedlivě sledovat!

Předpoklady

  • Počítač se systémem Linux s nainstalovaným Dockerem – Tento výukový program používá počítač Ubuntu 20.04 LTS s Dockerem verze 20.10.7. Zde je návod, jak nainstalovat Ubuntu.
  • Jeden uzel Kubernetes Cluster.
  • Nainstalován Helm Package Manager — Pro nasazení operátora Prometheus.
  • Rozhraní příkazového řádku Kubectl je nainstalováno a nakonfigurováno pro váš cluster.

Nasazení grafu Kube-Prometheus Stack Helm Chart

Monitorování klastrů Grafana a Prometheus Kubernetes Cluster poskytuje informace o potenciálních problémových místech výkonu, stavu clusteru a metrikách výkonu. Zároveň si vizualizujte využití sítě, vzorce využití zdrojů podů a celkový přehled toho, co se děje ve vašem clusteru.

Před nastavením monitorovacího systému s Grafanou a Prometheem však nejprve nasadíte Helmův diagram zásobníku kube-prometheus. Zásobník obsahuje Prometheus, Grafana, Alertmanager, operátora Prometheus a další monitorovací zdroje.

1. SSH do vašeho počítače Ubuntu 20.04 (pokud používáte cloudový server) nebo se jednoduše přihlaste k místně nainstalovanému počítači Ubuntu 20.04 a začněte.

2. Dále spusťte kubectl create příkaz níže k vytvoření namespace s názvem monitoring pro všechna nasazení související s Prometheem a Grafanou.

kubectl create namespace monitoring

3. Spusťte následující helm repo příkazy k přidání (prometheus-community ) Úložiště Helm a aktualizujte své úložiště Helm.

# Add prometheus-community repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

# Update helm repo
helm repo update

4. Po přidání repozitáře Helm spusťte helm install příkaz níže k nasazení diagramu kube-prometheus stack Helm. Nahraďte prometheus s požadovaným názvem vydání.

Tento graf Helm nastavuje úplný zásobník monitorování Prometheus kubernetes tím, že jedná na základě sady definic vlastních zdrojů (CRD).

helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring

Po dokončení nasazení získáte následující výstup.

5. Nakonec spusťte následující příkaz k potvrzení nasazení zásobníku kube-prometheus.

kubectl get pods -n monitoring

Níže uvedený výstup ukazuje nasazení zásobníku kube-prometheus. Jak můžete vidět, každá komponenta v zásobníku běží ve vašem clusteru.

Přístup k instanci Prometheus

Úspěšně jste nasadili instanci Prometheus do svého clusteru a jste téměř připraveni monitorovat cluster Kubernetes. Jak ale přistupovat ke své instanci Prometheus? Přepošlete místní port 9090 do vašeho clusteru prostřednictvím vaší služby Prometheus s kubectl port-forward příkaz.

1. Spusťte kubectl get příkazem níže zobrazíte všechny služby v oboru názvů monitorování a zkontrolujete svou službu Prometheus.

kubectl get svc -n monitoring

Všechny služby nasazené v monitorovacím jmenném prostoru jsou uvedeny níže, včetně služby Prometheus. Službu Prometheus použijete k nastavení přesměrování portů, aby vaše instance Prometheus byla přístupná mimo váš cluster.

2. Dále spusťte níže uvedený kubectl port-forward příkaz k předání místního portu 9090 do vašeho clusteru prostřednictvím služby Prometheus (svc/prometheus-kube-prometheus-prometheus ).

kubectl port-forward svc/prometheus-kube-prometheus-prometheus -n monitoring 9090

Pokud ale provozujete cluster Kubernetes s jedním uzlem na cloudovém serveru, spusťte místo toho následující příkaz.

kuebctl port-forward --address 0.0.0.0 svc/prometheus-kube-prometheus-prometheus -n monitoring 9090 

Chcete-li spustit příkaz kubectl port-forward jako proces na pozadí, čímž uvolníte svůj terminál pro další použití, přidejte na konec příkazu symbol &. Pokračujte stisknutím kláves Ctrl+C a zastavte proces přesměrování portu na popředí (tímto postupem neovlivníte proces přesměrování portu na pozadí).

3. Otevřete svůj oblíbený webový prohlížeč a přejděte na některou z níže uvedených adres URL, abyste získali přístup k instanci Prometheus.

  • Přejděte na http://localhost:9090 pokud sledujete spolu s místním počítačem Ubuntu
  • Přejděte na adresu IP svého serveru a za ní port 9090 (tj. http://IP_IP_VAŠEHO_SERVERU:9090) pokud používáte cloudový server.

Pro tento výukový program běží Prometheus na cloudovém serveru.

Pokud vaše služba Prometheus funguje, zobrazí se vám ve webovém prohlížeči následující stránka.

4. Nakonec na svém terminálu stisknutím kláves Ctrl+C zavřete proces přesměrování portů. Pokud tak učiníte, Prometheus bude ve vašem prohlížeči nedostupný.

Zobrazení interních stavových metrik Prometheus Kubernetes Cluster

Zobrazení metrik interního stavu vašeho clusteru Kubernetes je možné pomocí nástroje Kube-state-metrics (KSM). Pomocí nástroje KSM můžete sledovat stav a využití vašich zdrojů a také vnitřních stavových objektů. Některé z datových bodů, které lze potenciálně zobrazit prostřednictvím KSM, jsou; metriky uzlů, metriky nasazení a metriky podů.

Nástroj KSM je dodáván předem zabalený v zásobníku kube-prometheus a je nasazen automaticky se zbytkem monitorovacích komponent.

Prostřednictvím kube-state-metrics předáte místní port do svého clusteru servis. Díky tomu může KSM seškrábat interní systémové metriky vašeho clusteru a vytvořit seznam dotazů a hodnot. Ale před přesměrováním portů nejprve ověřte službu KSM Kubernetes.

1. Spusťte níže uvedený příkaz a zkontrolujte kube-state-metrics Služba Kubernetes.

kubectl get svc -n monitoring | grep kube-state-metrics

Níže vidíte název služby KSM Kubernetes (prometheus-kube-state-metrics) spolu s ClusterIP. Poznamenejte si název služby KSM Kubernetes, protože jej budete potřebovat k provedení přesměrování portů v dalším kroku.

2. Dále spusťte níže uvedený příkaz na port-forward prometheus-kube-state-metrics služby na port 8080 .

kubectl port-forward svc/prometheus-kube-state-metrics -n monitoring 8080 

Pokud spolu s tímto návodem sledujete počítač Ubuntu 20.04 hostovaný poskytovatelem cloudu, přidejte do příkazu kubectl port-forward příznak (–address 0.0.0.0). Tím umožníte externí přístup k místnímu portu prostřednictvím veřejné IP adresy vašeho serveru.

3. Nakonec ve svém webovém prohlížeči přejděte na některou z níže uvedených adres URL a zobrazte stránku Kube Metrics, jak je uvedeno níže.

  • Přejděte na adresu http://localhost:8080 pokud jste na místním počítači Ubuntu
  • Přejděte na adresu IP svého serveru a za ní port 8080 (tj. http://IP_IP_VAŠEHO_SERVERU:8080) pokud používáte cloudový server.

Kliknutím na odkaz na metriky získáte přístup k metrikám interního stavu clusteru.

Níže můžete vidět metriky vnitřního stavu clusteru podobné těm vašim.

Vizualizace metriky vnitřního stavu clusteru na Prometheus

Úspěšně jste provedli nasazení kube-prometheus stack grafu Helm, kube-state-metrics scraping a konfigurace úloh Prometheus. Výsledkem je, že CoreDNS, server kube-api, operátor Prometheus a další komponenty Kubernetes byly automaticky nastaveny jako cíle na Prometheus.

1. Přejděte na jednu z http://localhost:9090/targets nebo http:// koncové body ve vašem webovém prohlížeči. To vám umožní ověřit, že tyto cíle byly správně nakonfigurovány.

Přístup ke koncovému bodu vám také umožňuje ověřit, že Prometheus stahuje jejich metriky a ukládá data do databáze Time-Series Database (TSDB),

Než přejdete do koncového bodu, nezapomeňte přenést Prometheus, jak je znázorněno v části „Přístup k instanci Prometheus“ v kroku 2. Můžete jej také spustit jako proces na pozadí.

Jak můžete vidět níže, různé interní komponenty Kubernetes a monitorovací komponenty jsou na Prometheus nakonfigurovány jako cíle.

2. Klikněte na Graf přejděte na stránku, kde spustíte dotaz PromQL (Prometheus Query Language).

3. Vložte ukázkový PromQL (Prometheus Query Language) zadejte dotaz níže do poskytnutého prostoru pro výrazy a poté klikněte na Provést. Dotaz vrátí celkové množství nevyužité paměti ve vašem clusteru.

sum((container_memory_usage_bytes{container!="POD",container!=""} - on (namespace,pod,container) avg by (namespace,pod,container)(kube_pod_container_resource_requests{resource="memory"})) * -1 >0 ) / (1024*1024*1024)

4. Chcete-li zobrazit výsledky dotazu PromQL provedeného v kroku 3 v grafickém formátu, klikněte na Graf . Tento graf zobrazí celkové množství nevyužité paměti ve vašem clusteru za daný čas.

Pokud je vše správně nastaveno, měla by vzorová metrika clusteru vypadat podobně jako níže uvedený graf.

Přístup a potom Grafana Dashboard

Možná jste si všimli, že vizualizační možnosti programu Prometheus jsou omezené, protože jste uvízli pouze u grafu volba. Prometheus je skvělý pro odstraňování metrik z cílů nakonfigurovaných jako úlohy, agregaci těchto metrik a jejich ukládání do TSDB lokálně v počítači Ubuntu. Ale pokud jde o standardní monitorování zdrojů, Prometheus a Grafana jsou skvělé duo.

Prometheus agreguje metriky exportované komponentami serveru, jako je exportér uzlů, CoreDNS atd. Zatímco Grafana, jejíž silnou stránkou je vizualizace, přijímá tyto metriky od společnosti Prometheus a zobrazuje je prostřednictvím mnoha možností vizualizace.

Během nasazení kormidla zásobníku kube-prometheus byla Grafana automaticky nainstalována a nakonfigurována, takže můžete nakonfigurovat přístup ke Grafaně ve svém clusteru.

Chcete-li získat přístup k řídicímu panelu Grafana, budete muset nejprve načíst své uživatelské jméno a heslo uložené jako tajné položky automaticky vytvořené ve výchozím nastavení ve vašem clusteru Kubernetes.

1. Spusťte následující kubectl příkaz pro zobrazení dat uložených jako secret ve vašem clusteru Kubernetes (prometheus-grafana ) ve formátu YAML (-o yaml ).

kubectl get secret -n monitoring prometheus-grafana -o yaml

Jak vidíte níže, uživatelské jméno a heslo pro přístup k vašemu řídicímu panelu Grafana jsou zakódovány v base64. Poznamenejte si hodnoty admin-password a admin-user tajemství, protože je budete muset dekódovat v dalším kroku.

2. Dále spusťte každý níže uvedený příkaz na --decode oba tajné klíče (admin-password a admin-user ). Nahraďte YOUR_USERNAME a YOUR_PASSWORD s admin-password a admin-user tajné hodnoty, které jste si poznamenali v prvním kroku.

Tento výukový program nemá z bezpečnostních důvodů výstup pro každý příkaz.

# Decode and print the username
echo YOUR_USERNAME | base64 --decode
# Decode and print the password
echo YOUR_PASSWORD | base64 --decode

3. Spusťte kubectl příkaz níže na port-forward na místní port na 3000 navázáním portu Grafana 80 na port 3000 . Získáte tak přístup k webovému uživatelskému rozhraní Grafana ve vašem prohlížeči.

kubectl port-forward svc/prometheus-grafana -n monitoring 3000:80

Pokud používáte počítač Ubuntu 20.04 hostovaný poskytovatelem cloudu, přidejte příznak –address 0.0.0.0.

4. Nakonec v prohlížeči přejděte na některý z níže uvedených koncových bodů v závislosti na nastavení vašeho počítače:

  • http://localhost:3000 (místní)
  • nebo http://:3000 (cloud)

Zadejte svou dekódovanou tajnou hodnotu pro admin-user a admin-password do uživatelského jména a hesla do příslušného prostoru.

Jakmile se přihlásíte, získáte řídicí panel Grafana, jak je znázorněno níže.

Interakce s Grafana

Ve výchozím nastavení zásobník Kube-Prometheus nasazuje Grafana s některými předkonfigurovanými řídicími panely pro každý cíl nakonfigurovaný v Prometheus. S těmito předkonfigurovanými řídicími panely nebudete muset ručně nastavovat řídicí panel pro vizualizaci každé metriky agregované společností Prometheus.

Klikněte na ikonu řídicího panelu —> Procházet a váš prohlížeč přesměruje na stránku, kde uvidíte seznam panelů (krok dva).

Kliknutím na některý z předkonfigurovaných panelů níže zobrazíte jeho vizuální výpočetní zdroj. Ale pro tento výukový program klikněte na Kubernetes / Compute Resources / Namespace (Pods) řídicí panel.

Níže je ukázkový předkonfigurovaný řídicí panel pro vizualizaci využití výpočetních zdrojů pody v libovolném z dostupných jmenných prostorů.

Pro tento výukový program Zdroj dat byla nastavena na Prometheus a jmenný prostor pro vizualizaci je nastaveno na monitorování .

Závěr

V tomto kurzu jste se naučili, jak nasadit operátora Prometheus pomocí Helm, a prohlédli jste si metriky interního stavu clusteru, abyste mohli monitorovat cluster Kubernetes. Také jste nakonfigurovali Grafana a zobrazili metriky clusteru nakonfigurováním řídicího panelu Grafana.

V tuto chvíli již máte plně funkční sledování clusteru Kubernetes. Tyto nově nabyté znalosti ale můžete osobně vylepšit, jako je konfigurace Alertmanageru se Slackem pro příjem upozornění v reálném čase.


Linux
  1. Jak používat Ansible k nastavení monitorování systému pomocí Prometheus

  2. Jak nasadit svůj první modul na clusteru Kubernetes

  3. Nastavte cluster Kubernetes pomocí Rancher

  1. Co je Kubernetes? Kompletní průvodce

  2. Monitorujte linuxový server pomocí Prometheus a Grafana

  3. Prometheus vs Zabbix:Srovnání nástrojů pro monitorování sítě

  1. Grafana Prometheus Dashboard Tutorial

  2. Jak nainstalovat Kubernetes (k8s) Cluster na RHEL 8

  3. Jak nastavit Kubernetes(k8s) Cluster v HA s Kubeadm