Sdílet prostřednictvím


Připojení samoobslužně spravované služby Prometheus ke spravované službě Azure Monitor pro Prometheus

Spravovaná služba Azure Monitoru pro Prometheus je určená jako náhrada pro samoobslužně spravované prometheus, takže v clusterech Kubernetes nemusíte spravovat server Prometheus. V některých situacích ale můžete chtít v clusterech Kubernetes dál používat samospravované Prometheus a zároveň odesílat data do spravovaného systému Prometheus pro dlouhodobé uchovávání dat a vytvářet centralizované zobrazení napříč clustery. Může se jednat o dočasné řešení, když migrujete do spravovaného systému Prometheus nebo dlouhodobého řešení, pokud máte specifické požadavky na samoobslužně spravované prometheus.

Architecture

Remote_write je funkce nástroje Prometheus, která umožňuje odesílat metriky z místní instance Prometheus do vzdáleného úložiště nebo do jiné instance Prometheus. Pomocí této funkce můžete odesílat metriky ze samostatně spravovaných instancí Prometheus spuštěných v clusterech Kubernetes nebo virtuálních počítačích do pracovního prostoru služby Azure Monitor, který používá spravovaný Prometheus.

Tuto konfiguraci znázorňuje následující diagram. Pravidlo shromažďování dat (DCR) ve službě Azure Monitor poskytuje koncový bod pro instanci pro samoobslužnou správu Prometheus pro odesílání metrik a definuje pracovní prostor služby Azure Monitor, ve kterém se budou data odesílat.

Diagram znázorňující použití vzdáleného zápisu k odesílání metrik z místního systému Prometheus do spravovaného systému Prometheus

Typy ověřování

Požadavky na konfiguraci vzdáleného zápisu závisí na typu ověřování použitém pro připojení k pracovnímu prostoru služby Azure Monitor. Následující tabulka popisuje podporované typy ověřování. Podrobnosti o každé konfiguraci jsou popsány v následujících částech.

Typ Podporované clustery
Spravovaná identita přiřazená systémem Azure Kubernetes Service (AKS)
Virtuální počítač Azure nebo VMSS
Spravovaná identita přiřazená uživatelem Azure Kubernetes Service (AKS)
Kubernetes s podporou Arc
Virtuální počítač Azure nebo VMSS
Microsoft Entra ID Azure Kubernetes Service (AKS)
Cluster Kubernetes s podporou Arc
Cluster spuštěný v jiném cloudu nebo v místním prostředí
Virtuální počítač Azure nebo VMSS
Servery s podporou Arc
Virtuální počítač spuštěný v jiném cloudu nebo v místním prostředí

Poznámka:

Můžete také použít ověřování s identitou úloh Microsoft Entra ID, ale pro abstrakci příjmu metrik vzdáleného zápisu Prometheus a pomoc při ověřování paketů musíte použít sidecar kontejner. Viz Odeslání dat Prometheus do služby Azure Monitor pomocí ověřování ID úloh Microsoft Entra pro konfiguraci. |

Pracovní prostor služby Azure Monitor

Před konfigurací vzdáleného zápisu je nutné vytvořit pracovní prostor služby Azure Monitor. Tím se automaticky povolí Managed Prometheus. Pokud ho ještě nemáte, přečtěte si téma Správa pracovního prostoru služby Azure Monitor.

Vytvoření identity pro ověřování

Před konfigurací vzdáleného zápisu musíte vytvořit identitu, kterou použijete k ověření v pracovním prostoru služby Azure Monitor. Následující části popisují, jak vytvořit každý typ identity, pokud nepoužíváte existující identitu.

Spravovanou identitu přiřazenou systémem nevytvoříte přímo, ale povolíte ji pro virtuální počítač Azure nebo škálovací sadu virtuálních počítačů. Pro virtuální počítač Azure můžete identitu povolit při vytváření virtuálního počítače nebo ji později povolit na stránce Identita na webu Azure Portal. U VMSS ho musíte po vytvoření povolit. Různé možnosti povolení identity spravované systémem najdete v tématu Konfigurace spravovaných identit na virtuálních počítačích Azure a Konfigurace spravovaných identit pro prostředky Azure ve škálovací sadě virtuálních počítačů.

Snímek obrazovky znázorňující obrazovku pro povolení spravované identity přiřazené systémem pro virtuální počítač Azure

U clusteru AKS musí být spravovaná identita přiřazena ke škálovacím sadám virtuálních počítačů v clusteru. AKS vytvoří skupinu prostředků, která obsahuje škálovací sady virtuálních počítačů. K této skupině prostředků se dostanete ze stránky Vlastnosti v nabídce clusteru na webu Azure Portal. Kliknutím na Skupinu prostředků infrastruktury zobrazíte seznam prostředků v této skupině prostředků. Musíte povolit systémově spravovanou identitu pro každou škálovací sadu virtuálních počítačů ve skupině prostředků.

Snímek obrazovky znázorňující skupinu prostředků infrastruktury pro cluster AKS

Přiřaďte role

Po vytvoření identity, kterou budete používat, musí být udělen přístup k pravidlu shromažďování dat (DCR) přidruženému k pracovnímu prostoru služby Azure Monitor, který bude přijímat data vzdáleného zápisu. Tato DCR se automaticky vytvoří, když vytvoříte pracovní prostor. Tuto identitu zadáte v konfiguraci vzdáleného zápisu pro cluster nebo virtuální počítač.

  1. V podokně přehledu pracovního prostoru Služby Azure Monitor vyberte odkaz na pravidlo shromažďování dat. Tím se otevře pravidlo shromažďování dat (DCR), které je přidružené k pracovnímu prostoru.

    Snímek obrazovky znázorňující odkaz DCR pro pracovní prostor služby Azure Monitor

  2. Na stránce pravidla shromažďování dat vyberte Řízení přístupu (IAM). Vyberte Přidat a potom Přidat přiřazení role.

    Snímek obrazovky, který ukazuje stránku řízení přístupu pro DCR.

  3. Vyberte roli Vydavatele metrik monitorování, a poté zvolte Další.

    Snímek obrazovky znázorňující přidání přiřazení role do dcR

  4. Vyberte identitu, která se má přiřadit k roli.

    1. U spravované identity přiřazené systémem vyberte Spravovanou identitu a pak vyberte členy. V rozevíracím seznamu Spravovaná identita vyberte virtuální počítač nebo VMSS nebo každý z virtuálních počítačů v clusteru AKS.

    Snímek obrazovky znázorňující výběr členů spravované identity přiřazených systémem

    1. U spravované identity přiřazené uživatelem vyberte část Spravovaná identita přiřazená uživatelem . Vyberte identitu, kterou jste vytvořili.

    Snímek obrazovky znázorňující výběr členů spravované identity

    1. V Entra ID vyberte uživatele, skupinu nebo objekt služby, a následně vyberte členy. Vyberte aplikaci, kterou jste vytvořili, a pak zvolte Vybrat.

    Snímek obrazovky znázorňující výběr členů ID Entra

  5. Výběrem Vybrat potvrďte výběr a poté Zkontrolovat + přiřadit k dokončení přiřazení role.


Konfigurace vzdáleného zápisu v konfiguračním souboru

Posledním krokem je přidání vzdáleného zápisu do konfiguračního souboru pro server Prometheus, který spravujete sami. Kromě podrobností o identitě, kterou jste vytvořili, budete také potřebovat koncový bod příjmu metrik pro pracovní prostor služby Azure Monitor. Tuto hodnotu získáte na stránce Přehled pracovního prostoru služby Azure Monitor na webu Azure Portal.

Snímek obrazovky znázorňující koncový bod příjmu metrik pro pracovní prostor služby Azure Monitor

Část remote-write konfiguračního souboru Prometheus bude vypadat podobně jako v následujícím příkladu v závislosti na používaném typu ověřování.

Spravovaná identita

remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
    azuread:
      cloud: 'AzurePublic'  # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
      managed_identity:  
        client_id: "<client-id of the managed identity>"

Entra ID

remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
    azuread:
      cloud: 'AzurePublic'  # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
      oauth:  
        client_id: "<client-id from the Entra app>"
        client_secret: "<client secret from the Entra app>"
        tenant_id: "<Azure subscription tenant Id>"

Použití aktualizací konfiguračních souborů

Virtuální počítač

Pro virtuální počítač bude konfigurační soubor promtheus.yml, pokud při spuštění serveru Prometheus nezadáte jiný pomocí prometheus --config.file <path-to-config-file>.

Cluster Kubernetes

V případě clusteru Kubernetes se konfigurační soubor obvykle ukládá do objektu ConfigMap. Následuje ukázkový objekt ConfigMap, který zahrnuje konfiguraci vzdáleného zápisu pomocí spravované identity pro samoobslužné operace Prometheus spuštěné v clusteru Kubernetes.

  GNU nano 6.4
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-server-conf # must match what your pod mounts
  namespace: monitoring  # adjust to your namespace
data:
  prometheus.yml: |-
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     external_labels:
       cluster: "aks11"

   scrape_configs:
     - job_name: "prometheus"
       static_configs:
         - targets: ["localhost:9090"]

   remote_write:
     - url: "https://aks-amw-0mi2.eastus-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2023-04-24"
       azuread:
         cloud: 'AzurePublic'
         managed_identity:
           client_id: "00001111-aaaa-2222-bbbb-3333cccc4444"

K instalaci aktualizací konfiguračních souborů použijte následující příkaz.

kubectl apply -f <configmap-file-name>.yaml

Restartujte Prometheus, aby se obnovila nová konfigurace. Pokud používáte nasazení, můžete pody restartovat spuštěním následujícího příkazu.

kubectl -n monitoring rollout restart deploy <prometheus-deployment-name>

Poznámky k vydání

Pro podrobné poznámky k verzi na obrázku sidecar pro vzdálený zápis se podívejte do poznámek k verzi vzdáleného zápisu.

Troubleshoot

Chyba HTTP 403 v záznamu Prometheus

Než se přiřazení role projeví, trvá přibližně 30 minut. Během této doby se může v protokolu Prometheus zobrazit chyba HTTP 403. Zkontrolujte, jestli jste správně nakonfigurovali spravovanou identitu nebo aplikaci Microsoft Entra ID s rolí Vydavatele metrik monitorování ve DCR pracovního prostoru. Pokud je konfigurace správná, počkejte 30 minut, než se přiřazení role projeví.

Neshromažďují se žádná data Kubernetes

Pokud se data neshromažďují ve spravovaném systému Prometheus, spusťte následující příkaz a vyhledejte chyby ve vzdáleném kontejneru zápisu.

kubectl --namespace <Namespace> describe pod <Prometheus-Pod-Name>

Kontejner se opakovaně restartuje.

Kontejner se pravidelně restartuje kvůli chybné konfiguraci kontejneru. Spuštěním následujícího příkazu zobrazte konfigurační hodnoty nastavené pro kontejner. Zkontrolujte hodnoty konfigurace, zejména AZURE_CLIENT_ID a IDENTITY_TYPE.

kubectl get pod <Prometheus-Pod-Name> -o json | jq -c  '.spec.containers[] | select( .name | contains("<Azure-Monitor-Side-Car-Container-Name>"))'

Výstup z tohoto příkazu má následující formát:

{"env":[{"name":"INGESTION_URL","value":"https://my-azure-monitor-workspace.eastus2-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2021-11-01-preview"},{"name":"LISTENING_PORT","value":"8081"},{"name":"IDENTITY_TYPE","value":"userAssigned"},{"name":"AZURE_CLIENT_ID","value":"00000000-0000-0000-0000-00000000000"}],"image":"mcr.microsoft.com/azuremonitor/prometheus/promdev/prom-remotewrite:prom-remotewrite-20221012.2","imagePullPolicy":"Always","name":"prom-remotewrite","ports":[{"containerPort":8081,"name":"rw-port","protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/run/secrets/kubernetes.io/serviceaccount","name":"kube-api-access-vbr9d","readOnly":true}]}

Data ztracena kvůli vysokému objemu v prostředí

Pravidlo pro shromažďování dat (DCR) a koncový bod pro shromažďování dat (DCE) v rámci pracovního prostoru Azure Monitor podléhají limitům příjmu dat uvedeným v limitech služby Azure Monitor. Při konfiguraci vzdáleného zápisu pro více clusterů, které odesílají data do stejného koncového bodu, nejvíce podléháte těmto omezením.

Zvažte optimalizaci vzdáleného zápisu a upravte nastavení konfigurace pro lepší výkon. Pokud se stále zobrazují poklesy dat, zvažte vytvoření dalších DCR (pravidel shromažďování dat) a DCE (koncových bodů shromažďování dat) pro rozložení zátěže příjmu dat mezi několik koncových bodů. Tento přístup pomáhá optimalizovat výkon a zajišťuje efektivní zpracování dat. Podívejte se na pokyny k vytvoření vlastního koncového bodu shromažďování dat (DCE) a vlastního pravidla shromažďování dat (DCR) pro existující pracovní prostor služby Azure Monitor (AMW) pro ingestování metrik Prometheus.

Další kroky