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:
- Alkalmazás regisztrálása a Microsoft Entra-azonosítóval.
- Kérje le a Microsoft Entra-alkalmazás ügyfél-azonosítóját.
- 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.
- Hozzon létre egy Azure Key Vaultot, és hozzon létre egy tanúsítványt.
- Tanúsítvány hozzáadása a Microsoft Entra alkalmazáshoz.
- Adjon hozzá egy CSI-illesztőprogramot és -tárolót a fürthöz.
- 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
- Az Azure Portalon nyissa meg a Microsoft Entra ID menüt, és válassza a Alkalmazásregisztrációk.
- 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.
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.
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.
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.
Válassza a Hozzáadás, majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.
Válassza a Monitorozási metrikák közzétevője szerepkört, majd válassza a Tovább lehetőséget.
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.
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
- Ha még nincs Azure Key Vaultja, hozzon létre egy tárolót.
- 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.
- 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
A Microsoft Entra-alkalmazás erőforrásmenüjében válassza a Tanúsítványok > titkos kulcsok lehetőséget.
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.
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.
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>
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>
A létrehozáshoz
SecretProviderClass
mentse a következő YAML-et egy secretproviderclass.yml nevű fájlba. Cserélje le a kulcstartóbóltenantId
keyvaultName
lekérni kívánt objektumok értékeituserAssignedIdentityID
é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
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
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>'
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. Nyissa meg az Azure Cloud Shellt, és töltse fel a YAML-fájlt.
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
- Prometheus mérőszámok gyűjtése AKS-fürtből
- További információ a Prometheushoz készült Azure Monitor felügyelt szolgáltatásról
- Távoli írás az Azure Monitor által felügyelt Prometheus szolgáltatásban
- Prometheus-adatok küldése az Azure Monitorba felügyelt identitáshitelesítéssel
- Prometheus-adatok küldése az Azure Monitorba Microsoft Entra Számítási feladat ID (előzetes verzió) hitelesítéssel
- Prometheus-adatok küldése az Azure Monitorba a Microsoft Entra pod által felügyelt identitás (előzetes verzió) hitelesítésével