Megosztás a következőn keresztül:


Prometheus-adatok küldése az Azure Monitorba Microsoft Entra-hitelesítéssel

Ez a cikk azt ismerteti, hogyan állíthat be távoli írást az Adatok ön által felügyelt Prometheus-kiszolgálóról való küldéséhez az Azure Kubernetes Service-fürtön vagy az Azure Arc-kompatibilis Kubernetes-fürtön a Microsoft Entra-hitelesítés és az Azure Monitor által biztosított mellékautó-tároló használatával. Vegye figyelembe, hogy a távoli írást közvetlenül is konfigurálhatja ugyanahhoz a Prometheus-konfigurációhoz.

Feljegyzés

Javasoljuk, hogy közvetlenül konfigurálja a Kubernetes-fürtön futó Prometheus-t távoli írásra az Azure Monitor-munkaterületre. További információ: Prometheus-adatok küldése az Azure Monitorba Microsoft Entra Id-hitelesítéssel . Az alábbi lépések az Azure Monitor oldalsó autótárolót használják.

Fürtkonfigurációk

Ez a cikk a következő fürtkonfigurációkra vonatkozik:

  • Azure Kubernetes Service-fürt
  • Azure Arc-kompatibilis Kubernetes-fürt
  • Más felhőben vagy helyszínen futó Kubernetes-fürt

Feljegyzés

AKS-fürtök vagy Azure Arc-kompatibilis Kubernetes-fürtök esetén ajánlott felügyelt identitáshitelesítést használni. További információ: Azure Monitor felügyelt szolgáltatás a Prometheus távoli írásához felügyelt identitáshoz.

Előfeltételek

Támogatott verziók

  • A Microsoft Entra ID-alkalmazások hitelesítéséhez a 2.48-nál nagyobb Prometheus-verziók szükségesek.

Azure Monitor-munkaterület

Ez a cikk a Prometheus-metrikák Azure Monitor-munkaterületre való küldését ismerteti. Azure Monitor-munkaterület létrehozásához lásd : Azure Monitor-munkaterület kezelése.

Engedélyek

A cikkben ismertetett lépések végrehajtásához rendszergazdai engedélyek szükségesek a fürthöz vagy erőforráshoz.

Alkalmazás beállítása a Microsoft Entra-azonosítóhoz

A Prometheus távoli írás microsoft entra-hitelesítéssel történő beállításának folyamata a következő feladatokat foglalja magában:

  1. Alkalmazás regisztrálása a Microsoft Entra-azonosítóval.
  2. Kérje le a Microsoft Entra-alkalmazás ügyfél-azonosítóját.
  3. Rendelje hozzá a monitorozási metrikák közzétevői szerepkörét a munkaterület adatgyűjtési szabályához az alkalmazáshoz.
  4. Hozzon létre egy Azure Key Vaultot, és hozzon létre egy tanúsítványt.
  5. Tanúsítvány hozzáadása a Microsoft Entra alkalmazáshoz.
  6. Adjon hozzá egy CSI-illesztőprogramot és -tárolót a fürthöz.
  7. Helyezzen üzembe egy oldalkocsis tárolót a távoli írás beállításához.

A feladatokat a következő szakaszok ismertetik.

Alkalmazás regisztrálása a Microsoft Entra-azonosítóval

Hajtsa végre az alkalmazás Microsoft Entra-azonosítóval való regisztrálásához és egy egyszerű szolgáltatás létrehozásához szükséges lépéseket.

A Microsoft Entra-alkalmazás ügyfélazonosítójának lekérése

  1. Az Azure Portalon nyissa meg a Microsoft Entra ID menüt, és válassza a Alkalmazásregisztrációk.
  2. Az alkalmazások listájában másolja ki a regisztrált alkalmazás alkalmazás-(ügyfél-) azonosítójának értékét.

Képernyőkép egy Microsoft Entra-alkalmazás alkalmazásáról vagy ügyfélazonosítóról.

A monitorozási metrikák közzétevői szerepkörének hozzárendelése a munkaterület adatgyűjtési szabályához az alkalmazáshoz

Az alkalmazást hozzá kell rendelni az Azure Monitor-munkaterülethez társított adatgyűjtési szabály figyelési metrikák közzétevői szerepköréhez.

  1. Az Azure Monitor-munkaterület erőforrásmenüjében válassza az Áttekintés lehetőséget. Adatgyűjtési szabály esetén válassza a hivatkozást.

    Képernyőkép az Azure Monitor-munkaterület által használt adatgyűjtési szabályról.

  2. Az adatgyűjtési szabály erőforrásmenüjében válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. Válassza a Hozzáadás, majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.

    A szerepkör-hozzárendelés hozzáférés-vezérlési oldalakon való hozzáadását bemutató képernyőkép.

  4. Válassza a Monitorozási metrikák közzétevője szerepkört, majd válassza a Tovább lehetőséget.

    Képernyőkép a szerepkör-hozzárendelések listájáról.

  5. Válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget, majd válassza a Tagok kijelölése lehetőséget. Jelölje ki a létrehozott alkalmazást, majd válassza a Kiválasztás lehetőséget.

    Képernyőkép az alkalmazás kiválasztásáról.

  6. A szerepkör-hozzárendelés befejezéséhez válassza a Véleményezés + hozzárendelés lehetőséget.

Azure Key Vault létrehozása és tanúsítvány létrehozása

  1. Ha még nincs Azure Key Vaultja, hozzon létre egy tárolót.
  2. Tanúsítvány létrehozása a Tanúsítvány hozzáadása a Key Vaulthoz című témakörben található útmutató segítségével.
  3. Töltse le a tanúsítványt CER formátumban a Tanúsítvány exportálása a Key Vaultból című útmutató segítségével.

Tanúsítvány hozzáadása a Microsoft Entra alkalmazáshoz

  1. A Microsoft Entra-alkalmazás erőforrásmenüjében válassza a Tanúsítványok > titkos kulcsok lehetőséget.

  2. A Tanúsítványok lapon válassza a Tanúsítvány feltöltése lehetőséget, és válassza ki a letöltött tanúsítványt.

    Egy Microsoft Entra-alkalmazás tanúsítványának feltöltését bemutató képernyőkép.

Figyelmeztetés

A tanúsítványok lejárati dátummal rendelkeznek. A tanúsítvány érvényességének megőrzése a felhasználó feladata.

CSI-illesztőprogram és -tároló hozzáadása a fürthöz

Feljegyzés

Az Azure Key Vault CSI-illesztőprogram-konfigurációja csak az egyik módja annak, hogy egy tanúsítványt csatlakoztatjon egy podhoz. A távoli írási tárolónak csak a távoli írás beállításához az Oldalkocsi tároló üzembe helyezése lépésben szereplő értékhez <AZURE_CLIENT_CERTIFICATE_PATH> van szüksége a podban található tanúsítvány helyi elérési útjára.

Ez a lépés csak akkor szükséges, ha a fürt létrehozásakor nem kapcsolja be az Azure Key Vault Szolgáltató titkos kulcstár CSI-illesztőprogramját.

  1. Az Azure Key Vault Provider for Secrets Store CSI Driver fürthöz való bekapcsolásához futtassa a következő Azure CLI-parancsot:

    az aks enable-addons --addons azure-keyvault-secrets-provider --name <aks-cluster-name> --resource-group <resource-group-name>
    
  2. Az identitás kulcstartóhoz való hozzáférésének biztosításához futtassa az alábbi parancsokat:

    # show client id of the managed identity of the cluster
    az aks show -g <resource-group> -n <cluster-name> --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId -o tsv
    
    # set policy to access keys in your key vault
    az keyvault set-policy -n <keyvault-name> --key-permissions get --spn <identity-client-id>
    
    # set policy to access secrets in your key vault
    az keyvault set-policy -n <keyvault-name> --secret-permissions get --spn <identity-client-id>
    
    # set policy to access certs in your key vault
    az keyvault set-policy -n <keyvault-name> --certificate-permissions get --spn <identity-client-id>
    
  3. A létrehozáshoz SecretProviderClass mentse a következő YAML-et egy secretproviderclass.yml nevű fájlba. Cserélje le a kulcstartóból tenantIdkeyvaultNamelekérni kívánt objektumok értékeit userAssignedIdentityIDés értékeit. A használandó értékekről további információt az Azure Key Vault-szolgáltató titkos kulcstár CSI-illesztőprogramhoz való eléréséhez szükséges identitás biztosítása című témakörben talál.

    # This is a SecretProviderClass example using user-assigned identity to access your key vault
    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
      name: azure-kvname-user-msi
    spec:
      provider: azure
      parameters:
        usePodIdentity: "false"
        useVMManagedIdentity: "true"          # Set to true for using managed identity
        userAssignedIdentityID: <client-id>   # Set the client ID of the user-assigned managed identity to use
        keyvaultName: <key-vault-name>        # Set to the name of your key vault
        cloudName: ""                         # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud
        objects:  |
          array:
            - |
              objectName: <name-of-cert>
              objectType: secret              # object types: secret, key, or cert
              objectFormat: pfx
              objectEncoding: base64
              objectVersion: ""
        tenantId: <tenant-id>                 # The tenant ID of the key vault
    
  4. Az alkalmazáshoz SecretProviderClass futtassa a következő parancsot a fürtön:

    kubectl apply -f secretproviderclass.yml
    

Sidecar-tároló üzembe helyezése távoli írás beállításához

  1. Másolja ki a következő YAML-et, és mentse egy fájlba. A YAML a 8081-es portot használja figyelési portként. Ha másik portot használ, módosítsa ezt az értéket a YAML-ben.

    prometheus:
      prometheusSpec:
        externalLabels:
          cluster: <CLUSTER-NAME>  
    
        ##	Azure Managed Prometheus currently exports some default mixins in Grafana.  
        ##  These mixins are compatible with data scraped by Azure Monitor agent on your 
        ##  Azure Kubernetes Service cluster. These mixins aren't compatible with Prometheus 
        ##  metrics scraped by the Kube Prometheus stack. 
        ##  To make these mixins compatible, uncomment the remote write relabel configuration below:
        ##	writeRelabelConfigs:
        ##	  - sourceLabels: [metrics_path]
        ##	    regex: /metrics/cadvisor
        ##	    targetLabel: job
        ##	    replacement: cadvisor
        ##	    action: replace
        ##	  - sourceLabels: [job]
        ##	    regex: 'node-exporter'
        ##	    targetLabel: job
        ##	    replacement: node
        ##	    action: replace  
        ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write
        remoteWrite:
          - url: 'http://localhost:8081/api/v1/write'
        
        # Additional volumes on the output StatefulSet definition.
        # Required only for Microsoft Entra ID based auth
        volumes:
          - name: secrets-store-inline
            csi:
              driver: secrets-store.csi.k8s.io
              readOnly: true
              volumeAttributes:
                secretProviderClass: azure-kvname-user-msi
        containers:
          - name: prom-remotewrite
            image: <CONTAINER-IMAGE-VERSION>
            imagePullPolicy: Always
            # Required only for Microsoft Entra ID based auth
            volumeMounts:
              - name: secrets-store-inline
                mountPath: /mnt/secrets-store
                readOnly: true
            ports:
              - name: rw-port
                containerPort: 8081
            livenessProbe:
              httpGet:
                path: /health
                port: rw-port
                initialDelaySeconds: 10
                timeoutSeconds: 10
            readinessProbe:
              httpGet:
                path: /ready
                port: rw-port
                initialDelaySeconds: 10
                timeoutSeconds: 10
            env:
              - name: INGESTION_URL
                value: '<INGESTION_URL>'
              - name: LISTENING_PORT
                value: '8081'
              - name: IDENTITY_TYPE
                value: aadApplication
              - name: AZURE_CLIENT_ID
                value: '<APP-REGISTRATION-CLIENT-ID>'
              - name: AZURE_TENANT_ID
                value: '<TENANT-ID>'
              - name: AZURE_CLIENT_CERTIFICATE_PATH
                value: /mnt/secrets-store/<CERT-NAME>
              - name: CLUSTER
                value: '<CLUSTER-NAME>'
    
  2. Cserélje le a következő értékeket a YAML-fájlban:

    Érték Leírás
    <CLUSTER-NAME> Az AKS-fürt neve.
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
    A távoli írási tároló lemezképének verziója.
    <INGESTION-URL> A Metrikák betöltési végpontjának értéke az Azure Monitor-munkaterület Áttekintés lapján.
    <APP-REGISTRATION -CLIENT-ID> Az alkalmazás ügyfélazonosítója.
    <TENANT-ID> A Microsoft Entra-alkalmazás bérlőazonosítója.
    <CERT-NAME> A tanúsítvány neve.
    <CLUSTER-NAME> Annak a fürtnek a neve, amelyen a Prometheus fut.
  3. Nyissa meg az Azure Cloud Shellt, és töltse fel a YAML-fájlt.

  4. A Helm használatával alkalmazza a YAML-fájlt, és frissítse a Prometheus-konfigurációt:

    # set the context to your cluster 
    az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name> 
    
    # use Helm to update your remote write config 
    helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack -namespace <namespace where Prometheus pod resides> 
    

Ellenőrzés és hibaelhárítás

Az ellenőrzéssel és hibaelhárítással kapcsolatos információkért tekintse meg a Távoli írás és az Azure Monitor által felügyelt szolgáltatás hibaelhárítását a Prometheus távoli írásához.

Következő lépések