Prometheus-adatok küldése az Azure Monitorba Microsoft Entra Számítási feladat ID hitelesítéssel
Ez a cikk azt ismerteti, hogyan állíthat be távoli írást az adatok Azure Monitor által felügyelt Prometheus-fürtből való küldéséhez Microsoft Entra Számítási feladat ID hitelesítés használatával.
Előfeltételek
- A Microsoft Entra ID-alkalmazások hitelesítéséhez a 2.48-nál nagyobb Prometheus-verziók szükségesek.
- A fürtben futó Prometheus. Ez a cikk feltételezi, hogy a Prometheus-fürt a kube-prometheus verem használatával van beállítva, de a Prometheust más módszerekkel is beállíthatja.
Távoli írás beállítása Microsoft Entra Számítási feladat ID
A Prometheus távoli írásának Microsoft Entra Számítási feladat ID hitelesítéssel történő beállításának folyamata a következő feladatokat foglalja magában:
- Engedélyezze az OpenID Connectet, és jegyezze fel a kiállító URL-címét.
- Állítsa be a beléptetési webhook mutációs beállítását.
- Állítsa be a számítási feladat identitását.
- Hozzon létre egy Microsoft Entra-alkalmazást vagy felhasználó által hozzárendelt felügyelt identitást, és adjon meg engedélyeket.
- 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.
- Hozza létre vagy frissítse a Kubernetes szolgáltatásfiók Prometheus podját.
- Összevont identitás hitelesítő adatainak létrehozása az identitás és a szolgáltatásfiók kiállítója és tárgya között.
- Helyezzen üzembe egy oldalkocsis tárolót a távoli írás beállításához.
A feladatokat a következő szakaszok ismertetik.
OpenID Connect engedélyezése és a kiállító lekérdezése
Az OpenID Connect (OIDC) AKS-fürtön való engedélyezéséhez kövesse az OpenID Connect-szolgáltató létrehozása az AKS-en című témakör utasításait.
Ha engedélyezve van, jegyezze fel a SERVICE_ACCOUNT_ISSUER, amely lényegében az OIDC-kiállító URL-címe. Az OIDC-kiállító URL-címének lekéréséhez futtassa az az aks show parancsot. Cserélje le a fürt és az erőforráscsoport nevének alapértelmezett értékeit.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
Alapértelmezés szerint a kiállító az alap URL-címet https://{region}.oic.prod-aks.azure.com
használja, ahol az érték {region}
megegyezik az AKS-fürt üzembe helyezésének helyével.
Más felügyelt fürtök (az Amazon Elastic Kubernetes Service és a Google Kubernetes Engine) esetében lásd: Felügyelt fürtök – Microsoft Entra Számítási feladat ID. Az ön által felügyelt fürtökről az önkiszolgáló fürtök – Microsoft Entra Számítási feladat ID című témakörben olvashat.
A beléptetési webhook mutálásának beállítása
Az összevont hitelesítő adatok naprakészen tartásához állítsa be a beléptetési webhookok mutációs beállítását. Lásd: A beléptetési webhook mutálása – Microsoft Entra Számítási feladat ID beállításához.
A számítási feladat identitásának beállítása
A számítási feladat identitásának beállításához exportálja a következő környezeti változókat:
# [OPTIONAL] Set this if you're using a Microsoft Entra application
export APPLICATION_NAME="<your application name>"
# [OPTIONAL] Set this only if you're using a user-assigned managed identity
export USER_ASSIGNED_IDENTITY_NAME="<your user-assigned managed identity name>"
# Environment variables for the Kubernetes service account and federated identity credential
export SERVICE_ACCOUNT_NAMESPACE="<namespace where Prometheus pod is running>"
export SERVICE_ACCOUNT_NAME="<name of service account associated with Prometheus pod. See below for more details>"
export SERVICE_ACCOUNT_ISSUER="<your service account (or OIDC) issuer URL>"
Ellenőrizze SERVICE_ACCOUNT_NAME
, hogy egy (az alapértelmezett szolgáltatásfióktól eltérő) szolgáltatásfiók már társítva van-e a Prometheus podhoz. Keresse meg a Prometheus-pod értékét serviceaccountName
vagy serviceAccount
(elavult) spec
értékét. Használja ezt az értéket, ha létezik. A Prometheus podhoz társított szolgáltatásfiók megkereséséhez futtassa az alábbi kubectl parancsot:
kubectl get pods/<Promethuespodname> -o yaml
Ha serviceaccountName
nem létezik, serviceAccount
adja meg a Prometheus-podhoz társítani kívánt szolgáltatásfiók nevét.
Microsoft Entra-alkalmazás vagy felhasználó által hozzárendelt felügyelt identitás létrehozása és engedélyek megadása
Hozzon létre egy Microsoft Entra-alkalmazást vagy egy felhasználó által hozzárendelt felügyelt identitást, és adjon engedélyt metrikák közzétételére az Azure Monitor-munkaterületen:
# create a Microsoft Entra application
az ad sp create-for-rbac --name "${APPLICATION_NAME}"
# create a user-assigned managed identity if you use a user-assigned managed identity for this article
az identity create --name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}"
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 vagy a felügyelt identitáshoz
A szerepkör hozzárendelésével kapcsolatos információkért lásd : A figyelési metrikák közzétevői szerepkörének hozzárendelése a munkaterület adatgyűjtési szabályában a felügyelt identitáshoz.
A Kubernetes szolgáltatásfiók Prometheus pod létrehozása vagy frissítése
Gyakran létrejön egy Kubernetes-szolgáltatásfiók, amely a Prometheus-tárolót futtató podhoz van társítva. Ha a kube-prometheus vermet használja, a kód automatikusan létrehozza a prometheus-kube-prometheus-prometheus szolgáltatásfiókot.
Ha az alapértelmezett szolgáltatásfiók kivételével nincs Kubernetes-szolgáltatásfiók a Prometheushoz társítva, hozzon létre egy új szolgáltatásfiókot kifejezetten a Prometheust futtató podhoz.
A szolgáltatásfiók létrehozásához futtassa a következő kubectl parancsot:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: service account
metadata:
annotations:
azure.workload.identity/client-id: ${APPLICATION_CLIENT_ID:-$USER_ASSIGNED_IDENTITY_CLIENT_ID}
name: ${SERVICE_ACCOUNT_NAME}
namespace: ${SERVICE_ACCOUNT_NAMESPACE}
EOF
Ha az alapértelmezett szolgáltatásfióktól eltérő Kubernetes-szolgáltatásfiók van társítva a podhoz, adja hozzá a következő megjegyzést a szolgáltatásfiókhoz:
kubectl annotate sa ${SERVICE_ACCOUNT_NAME} -n ${SERVICE_ACCOUNT_NAMESPACE} azure.workload.identity/client-id="${APPLICATION_OR_USER_ASSIGNED_IDENTITY_CLIENT_ID}" –overwrite
Ha a Microsoft Entra-alkalmazás vagy a felhasználó által hozzárendelt felügyelt identitás nem ugyanabban a bérlőben van, mint a fürt, adja hozzá a következő megjegyzést a szolgáltatásfiókhoz:
kubectl annotate sa ${SERVICE_ACCOUNT_NAME} -n ${SERVICE_ACCOUNT_NAMESPACE} azure.workload.identity/tenant-id="${APPLICATION_OR_USER_ASSIGNED_IDENTITY_TENANT_ID}" –overwrite
Összevont identitás hitelesítő adatainak létrehozása az identitás és a szolgáltatásfiók kiállítója és tárgya között
Összevont hitelesítő adatok létrehozása az Azure CLI használatával.
Felhasználó által hozzárendelt felügyelt identitás
az identity federated-credential create \
--name "kubernetes-federated-credential" \
--identity-name "${USER_ASSIGNED_IDENTITY_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--issuer "${SERVICE_ACCOUNT_ISSUER}" \
--subject "system:serviceaccount:${SERVICE_ACCOUNT_NAMESPACE}:${SERVICE_ACCOUNT_NAME}"
Microsoft Entra-alkalmazás
# Get the ObjectID of the Microsoft Entra app.
export APPLICATION_OBJECT_ID="$(az ad app show --id ${APPLICATION_CLIENT_ID} --query id -otsv)"
# Add a federated identity credential.
cat <<EOF > params.json
{
"name": "kubernetes-federated-credential",
"issuer": "${SERVICE_ACCOUNT_ISSUER}",
"subject": "system:serviceaccount:${SERVICE_ACCOUNT_NAMESPACE}:${SERVICE_ACCOUNT_NAME}",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"
]
}
EOF
az ad app federated-credential create --id ${APPLICATION_OBJECT_ID} --parameters @params.json
Sidecar-tároló üzembe helyezése távoli írás beállításához
Fontos
A Prometheus podnak a következő címkével kell rendelkeznie: azure.workload.identity/use: "true"
A távoli írási oldalkocsi tárolóhoz a következő környezeti értékek szükségesek:
INGESTION_URL
: Az Azure Monitor-munkaterület Áttekintés lapján megjelenő metrikák betöltési végpontjaLISTENING_PORT
:8081
(bármely port támogatott)IDENTITY_TYPE
:workloadIdentity
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: <AKS-CLUSTER-NAME> podMetadata: labels: azure.workload.identity/use: "true" ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write remoteWrite: - url: 'http://localhost:8081/api/v1/write' containers: - name: prom-remotewrite image: <CONTAINER-IMAGE-VERSION> imagePullPolicy: Always ports: - name: rw-port containerPort: 8081 env: - name: INGESTION_URL value: <INGESTION_URL> - name: LISTENING_PORT value: '8081' - name: IDENTITY_TYPE value: workloadIdentity
Cserélje le a következő értékeket a YAML-ben:
É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. A Helm használatával alkalmazza a YAML-fájlt, és frissítse a Prometheus-konfigurációt:
# set a 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 Microsoft Entra-hitelesítéssel
- Prometheus-adatok küldése az Azure Monitorba felügyelt identitáshitelesí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