Share via


Tárolóelemzések hibaelhárítása

Amikor az Azure Kubernetes Service -fürt (AKS) monitorozását konfigurálja a Container Insights használatával, előfordulhat, hogy olyan probléma merül fel, amely megakadályozza az adatgyűjtést vagy a jelentéskészítés állapotát. Ez a cikk néhány gyakori problémát és hibaelhárítási lépést ismertet.

Ismert hibaüzenetek

Az alábbi táblázat a Container Insights használatakor előforduló ismert hibákat foglalja össze.

Hibaüzenetek Művelet
"Nincs adat a kijelölt szűrőkhöz" hibaüzenet Az újonnan létrehozott fürtök monitorozási adatfolyamának beállítása időt vehet idénybe. Legalább 10–15 percet hagyhat arra, hogy az adatok megjelenjenek a fürtben.

Ha az adatok továbbra sem jelennek meg, ellenőrizze, hogy a Log Analytics-munkaterület konfigurálva disableLocalAuth = truevan-e. Ha igen, frissítsen a helyre disableLocalAuth = false.

az resource show --ids "/subscriptions/[Your subscription ID]/resourcegroups/[Your resource group]/providers/microsoft.operationalinsights/workspaces/[Your workspace name]"

az resource update --ids "/subscriptions/[Your subscription ID]/resourcegroups/[Your resource group]/providers/microsoft.operationalinsights/workspaces/[Your workspace name]" --api-version "2021-06-01" --set properties.features.disableLocalAuth=False
"Adatbeolvasási hiba" hibaüzenet Bár egy AKS-fürt állapot- és teljesítménymonitorozásra van beállítva, létrejön egy kapcsolat a fürt és a Log Analytics-munkaterület között. A Log Analytics-munkaterület a fürt összes monitorozási adatának tárolására szolgál. Ez a hiba akkor fordulhat elő, ha a Log Analytics-munkaterületet törölték. Ellenőrizze, hogy törölték-e a munkaterületet. Ha így volt, a fürt újravehető monitorozása a Container Insights használatával. Ezután adjon meg egy meglévő munkaterületet, vagy hozzon létre egy újat. Az újra szerkeszthetőség érdekében tiltsa le a fürt monitorozását, és engedélyezze újra a Container Insights szolgáltatást.
"Hiba az adatok beolvasása során" a Container Insights hozzáadása után az aks cli Ha engedélyezi a monitorozást a használatával az aks cli, előfordulhat, hogy a Tárolóelemzések nem lesznek megfelelően üzembe helyezve. Ellenőrizze, hogy a megoldás telepítve van-e. Az ellenőrzéshez nyissa meg a Log Analytics-munkaterületet, és ellenőrizze, hogy elérhető-e a megoldás a bal oldali panel örökölt megoldásainak kiválasztásával. A probléma megoldásához telepítse újra a megoldást. Kövesse a Tárolóelemzések engedélyezése című témakör utasításait.
"Hiányzó előfizetés-regisztráció" hibaüzenet Ha a "Hiányzó előfizetés-regisztráció a Microsoft.OperationsManagement szolgáltatáshoz" hibaüzenet jelenik meg, a problémát a Microsoft.OperationsManagement erőforrás-szolgáltató regisztrálásával oldhatja meg abban az előfizetésben, amelyben a munkaterület definiálva van. A lépéseket az erőforrás-szolgáltató regisztrációjának hibáinak megoldása című témakörben találja.
"A kérelemben megadott válasz URL-cím nem egyezik az alkalmazáshoz konfigurált válasz URL-címekkel: "alkalmazásazonosító>"<. Az élő naplók engedélyezésekor ez a hibaüzenet jelenhet meg. A megoldásért tekintse meg a tárolóadatok valós idejű megtekintését a Container Insights használatával.

A probléma diagnosztizálásához egy hibaelhárítási szkriptet adtunk meg.

Engedélyezési hiba az előkészítési vagy frissítési művelet során

Amikor engedélyezi a Container Insights szolgáltatást, vagy frissít egy fürtöt a metrikák gyűjtésének támogatásához, hibaüzenet jelenhet meg: "Az objektumazonosítóval <user's objectId> rendelkező ügyfél <user's Identity> nem rendelkezik engedéllyel a hatókörön keresztüli műveletek Microsoft.Authorization/roleAssignments/write végrehajtásához".

Az előkészítési vagy frissítési folyamat során a rendszer megkísérli a figyelési metrikák közzétevői szerepkör-hozzárendelésének megadását a fürterőforráson. A Container Insights engedélyezésének folyamatát kezdeményező felhasználónak vagy a metrikák gyűjtését támogató frissítésnek hozzáféréssel kell rendelkeznie a Microsoft.Authorization/roleAssignments/write engedélyhez az AKS-fürt erőforrás-hatókörében. Ehhez az engedélyhez csak a Tulajdonos és a Felhasználói hozzáférés Rendszergazda istrator beépített szerepköreinek tagjai férhetnek hozzá. Ha a biztonsági szabályzatok részletes szintű engedélyek hozzárendelését igénylik, tekintse meg az Azure egyéni szerepköreit , és rendeljen engedélyeket azokhoz a felhasználókhoz, akiknek szükségük van rá.

Ezt a szerepkört manuálisan is megadhatja az Azure Portalon: Rendelje hozzá a Közzétevő szerepkört a Figyelési metrikák hatókörhöz. A részletes lépésekért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.

A Container Insights engedélyezve van, de nem jelent semmilyen információt

A probléma diagnosztizálásához, ha nem tudja megtekinteni az állapotinformációkat, vagy ha a rendszer nem ad vissza eredményt egy napló lekérdezésből:

  1. Ellenőrizze az ügynök állapotát az alábbi parancs futtatásával:

    kubectl get ds ama-logs --namespace=kube-system

    A podok számának egyenlőnek kell lennie a fürt Linux-csomópontjainak számával. A kimenetnek a következő példához kell hasonlítania, ami azt jelzi, hogy megfelelően lett üzembe helyezve:

    User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
    NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR    AGE
    ama-logs   2         2         2         2            2           <none>           1d
    
  2. Ha Windows Server-csomópontokkal rendelkezik, ellenőrizze az ügynök állapotát az alábbi parancs futtatásával:

    kubectl get ds ama-logs-windows --namespace=kube-system

    A podok számának meg kell egyenlõnek lennie a fürtön található Windows-csomópontok számával. A kimenetnek a következő példához kell hasonlítania, ami azt jelzi, hogy megfelelően lett üzembe helyezve:

    User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
    NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR    AGE
    ama-logs-windows           2         2         2         2            2           <none>       1d
    
  3. Ellenőrizze az üzembe helyezés állapotát az alábbi paranccsal:

    kubectl get deployment ama-logs-rs --namespace=kube-system

    A kimenetnek a következő példához kell hasonlítania, ami azt jelzi, hogy megfelelően lett üzembe helyezve:

    User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
    NAME          READY   UP-TO-DATE   AVAILABLE   AGE
    ama-logs-rs   1/1     1            1           24d
    
  4. Ellenőrizze a pod állapotát, és ellenőrizze, hogy fut-e a parancs használatával kubectl get pods --namespace=kube-system.

    A kimenetnek az alábbi példához kell hasonlítania az ama-logok állapotával Running :

    User@aksuser:~$ kubectl get pods --namespace=kube-system
    NAME                                READY     STATUS    RESTARTS   AGE
    aks-ssh-139866255-5n7k5             1/1       Running   0          8d
    azure-vote-back-4149398501-7skz0    1/1       Running   0          22d
    azure-vote-front-3826909965-30n62   1/1       Running   0          22d
    ama-logs-484hw                      1/1       Running   0          1d
    ama-logs-fkq7g                      1/1       Running   0          1d
    ama-logs-windows-6drwq              1/1       Running   0          1d
    
  5. Ha a podok futó állapotban vannak, de a Log Analytics nem rendelkezik adatokkal, vagy úgy tűnik, hogy az adatok csak a nap egy bizonyos részében küldenek, az azt jelezheti, hogy a napi korlát teljesült. Ha ez a korlát minden nap teljesül, az adatok nem kerülnek be a Log Analytics-munkaterületre, és az alaphelyzetbe állításkor alaphelyzetbe kerülnek. További információ: Log Analytics Daily Cap.

A Container Insights-ügynök ReplicaSet podjai nincsenek ütemezve nem AKS-fürtön

A Container Insights-ügynök ReplicaSet podjai az ütemezés feldolgozó (vagy ügynök) csomópontjain a következő csomópontválasztóktól függenek:

nodeSelector:
  beta.kubernetes.io/os: Linux
  kubernetes.io/role: agent

Ha a feldolgozó csomópontok nem rendelkeznek csomópontfeliratokkal, az ügynök ReplicaSet podjai nem lesznek ütemezve. A címke csatolásával kapcsolatos utasításokért tekintse meg a Kubernetes címkeválasztók hozzárendelését ismertető szakaszát.

A teljesítménydiagramok nem jelenítik meg a csomópontok és tárolók processzorát vagy memóriáját egy nem Azure-fürtön

A Container Insights-ügynök podjai a csomópontügynök cAdvisor végpontját használják a teljesítménymetrikák gyűjtéséhez. Ellenőrizze, hogy a csomóponton lévő tárolóalapú ügynök úgy van-e konfigurálva, hogy engedélyezze cAdvisor secure port: 10250 vagy cAdvisor unsecure port: 10255 nyissa meg a fürt összes csomópontján a teljesítménymetrikák gyűjtéséhez. További információkért tekintse meg a hibrid Kubernetes-fürtök előfeltételeit .

A nem AKS-fürtök nem jelennek meg a Container Insightsban

A nem AKS-fürt Container Insightsban való megtekintéséhez olvasási hozzáférésre van szükség az elemzést támogató Log Analytics-munkaterületen és a Container Elemzések (munkaterület) Container insights megoldáserőforráson.

A metrikák gyűjtése nem történik meg

  1. Ellenőrizze, hogy létezik-e a Monitorozási metrikák közzétevője szerepkör-hozzárendelés a következő CLI-paranccsal:

    az role assignment list --assignee "SP/UserassignedMSI for Azure Monitor Agent" --scope "/subscriptions/<subid>/resourcegroups/<RG>/providers/Microsoft.ContainerService/managedClusters/<clustername>" --role "Monitoring Metrics Publisher"
    

    MSI-vel rendelkező fürtök esetén az Azure Monitor Agent felhasználó által hozzárendelt ügyfélazonosítója minden alkalommal megváltozik, amikor a figyelés engedélyezve van és le van tiltva, így a szerepkör-hozzárendelésnek az aktuális MSI-ügyfélazonosítón kell lennie.

  2. Olyan fürtök esetén, amelyeken engedélyezve van a Microsoft Entra poddentitása, és az MSI-t használja:

    • Ellenőrizze, hogy a szükséges címke kubernetes.azure.com/managedby: aks van-e az Azure Monitor-ügynök podjain az alábbi paranccsal:

      kubectl get pods --show-labels -n kube-system | grep ama-logs

    • Ellenőrizze, hogy a kivételek engedélyezve vannak-e, ha a pod-identitás engedélyezve van a következő támogatott módszerek egyikével: https://github.com/Azure/aad-pod-identity#1-deploy-aad-pod-identity.

      Az ellenőrzéshez futtassa a következő parancsot:

      kubectl get AzurePodIdentityException -A -o yaml

      A következő példához hasonló kimenetet kell kapnia:

      apiVersion: "aadpodidentity.k8s.io/v1"
      kind: AzurePodIdentityException
      metadata:
      name: mic-exception
      namespace: default
      spec:
      podLabels:
      app: mic
      component: mic
      ---
      apiVersion: "aadpodidentity.k8s.io/v1"
      kind: AzurePodIdentityException
      metadata:
      name: aks-addon-exception
      namespace: kube-system
      spec:
      podLabels:
      kubernetes.azure.com/managedby: aks
      

Az Azure Monitor Containers-bővítmény telepítése meghiúsul egy Azure Arc-kompatibilis Kubernetes-fürtön

A "jegyzékek már létező erőforrást tartalmaznak" hiba azt jelzi, hogy a Container Insights-ügynök erőforrásai már léteznek az Azure Arc-kompatibilis Kubernetes-fürtön. Ez a hiba azt jelzi, hogy a Container Insights-ügynök már telepítve van. Az azuremonitor-containers Helm-diagramon vagy a Monitorozási bővítményen keresztül települ, ha egy Azure Arcon keresztül csatlakoztatott AKS-fürtről van szó.

A probléma megoldása a Container Insights-ügynök meglévő erőforrásainak megtisztítása, ha létezik. Ezután engedélyezze az Azure Monitor Containers bővítményt.

Nem AKS-fürtök esetén

  1. Az Azure Archoz csatlakoztatott K8s-fürtön futtassa a következő parancsot annak ellenőrzéséhez, hogy létezik-e a azmon-containers-release-1 Helm-diagram kiadása:

    helm list -A

  2. Ha az előző parancs kimenete azt jelzi, hogy létezik azmon-containers-release-1 , törölje a Helm-diagram kiadását:

    helm del azmon-containers-release-1

AKS-fürtök esetén

  1. Futtassa a következő parancsokat, és keresse meg az Azure Monitor Agent bővítményprofilt annak ellenőrzéséhez, hogy engedélyezve van-e az AKS Monitorozási bővítmény:

    az  account set -s <clusterSubscriptionId>
    az aks show -g <clusterResourceGroup> -n <clusterName>
    
  2. Ha a kimenet tartalmaz egy Azure Monitor Agent bővítményprofil-konfigurációt Log Analytics-munkaterület erőforrás-azonosítójával, ez az információ azt jelzi, hogy az AKS monitorozási bővítmény engedélyezve van, és le kell tiltani:

    az aks disable-addons -a monitoring -g <clusterResourceGroup> -n <clusterName>

Ha az előző lépések nem oldották meg az Azure Monitor-tárolók bővítményével kapcsolatos problémákat, hozzon létre egy támogatási jegyet, amellyel további vizsgálat céljából elküldheti a Microsoftnak.

Ismétlődő riasztások érkeznek

Lehetséges, hogy engedélyezte a Prometheus riasztási szabályait a Container Insights által javasolt riasztások letiltása nélkül. Lásd: Migrálás a Container Insights ajánlott riasztásaiból a Prometheus által javasolt riasztási szabályokba (előzetes verzió).

"Nem rendelkezik a megfelelő fürtengedélyekkel, amelyek korlátozzák a Tároló Elemzések funkcióihoz való hozzáférést. Forduljon a fürt rendszergazdájához a megfelelő engedély beszerzéséhez"

A tároló Elemzések korábban engedélyezte a felhasználóknak az Azure Portal felületének elérését a Log Analytics-munkaterület hozzáférési engedélye alapján. Most ellenőrzi a fürtszintű engedélyt, hogy hozzáférést biztosítson az Azure Portal felületéhez. Előfordulhat, hogy ehhez az engedélyhez a fürt rendszergazdája szükséges.

Az egyszerű írásvédett fürtszintű hozzáféréshez rendelje hozzá a Figyelési olvasó szerepkört a következő típusú fürtökhöz.

  • AKS kubernetes szerepköralapú hozzáférés-vezérlés (RBAC) engedélyezése nélkül engedélyezve
  • AKS engedélyezve a Microsoft Entra SAML-alapú egyszeri bejelentkezéssel
  • Kubernetes RBAC-engedélyezéssel engedélyezett AKS
  • A fürtszerepkör-kötési fürttel konfigurált AKSMonitoringUser
  • Azure Arc-kompatibilis Kubernetes-fürtök

A szerepkör-hozzárendelésekről további információt az Azure Kubernetes Service (AKS) AKS-hez és hozzáférési és identitásbeállításokhoz való hozzárendelésével kapcsolatos részletekért tekintse meg a szerepkör-engedélyek hozzárendelése felhasználóhoz vagy csoporthoz című témakört.

A ContainerLog tábla lekérdezésekor nem jelennek meg a Kép és a Név tulajdonság értékei

A ciprod12042019-es és újabb ügynökverziók esetében alapértelmezés szerint ez a két tulajdonság nem lesz feltöltve minden naplósorhoz, így minimalizálva a gyűjtött naplóadatokkal kapcsolatos költségeket. A táblát kétféleképpen kérdezheti le, amelyek az értékükkel együtt tartalmazzák ezeket a tulajdonságokat:

1. lehetőség

Csatlakozzon más táblákhoz, hogy ezeket a tulajdonságértékeket belefoglalja az eredményekbe.

Módosítsa a lekérdezéseket úgy, hogy belefoglalják és ImageTag tulajdonságokat adjanak Image meg a táblából a ContainerInventory tulajdonsághoz ContainerID való csatlakozással. A tulajdonsághoz való csatlakozással felveheti a Name tulajdonságot a tábla mezőjéből KubepodInventory (ahogyan az korábban megjelent a ContainerID táblában ContainerLogContainerName). Ezt a lehetőséget javasoljuk.

Az alábbi példa egy részletes minta lekérdezés, amely bemutatja, hogyan szerezheti be ezeket a mezőértékeket illesztésekkel.

//Let's say we're querying an hour's worth of logs
let startTime = ago(1h);
let endTime = now();
//Below gets the latest Image & ImageTag for every containerID, during the time window
let ContainerInv = ContainerInventory | where TimeGenerated >= startTime and TimeGenerated < endTime | summarize arg_max(TimeGenerated, *)  by ContainerID, Image, ImageTag | project-away TimeGenerated | project ContainerID1=ContainerID, Image1=Image ,ImageTag1=ImageTag;
//Below gets the latest Name for every containerID, during the time window
let KubePodInv  = KubePodInventory | where ContainerID != "" | where TimeGenerated >= startTime | where TimeGenerated < endTime | summarize arg_max(TimeGenerated, *)  by ContainerID2 = ContainerID, Name1=ContainerName | project ContainerID2 , Name1;
//Now join the above 2 to get a 'jointed table' that has name, image & imagetag. Outer left is safer in case there are no kubepod records or if they're latent
let ContainerData = ContainerInv | join kind=leftouter (KubePodInv) on $left.ContainerID1 == $right.ContainerID2;
//Now join ContainerLog table with the 'jointed table' above and project-away redundant fields/columns and rename columns that were rewritten
//Outer left is safer so you don't lose logs even if we can't find container metadata for loglines (due to latency, time skew between data types, etc.)
ContainerLog
| where TimeGenerated >= startTime and TimeGenerated < endTime
| join kind= leftouter (
  ContainerData
) on $left.ContainerID == $right.ContainerID2 | project-away ContainerID1, ContainerID2, Name, Image, ImageTag | project-rename Name = Name1, Image=Image1, ImageTag=ImageTag1

2\. lehetőség

Ezeknek a tulajdonságoknak az újravehető gyűjteménye minden tárolónapló-sorhoz.

Ha az első lehetőség nem megfelelő a lekérdezési módosítások miatt, újra lehet gyűjteni ezeket a mezőket. Engedélyezze a beállítást log_collection_settings.enrich_container_logs az ügynök konfigurációs leképezésében az adatgyűjtés konfigurációs beállításaiban leírtak szerint.

Feljegyzés

Nem javasoljuk a második lehetőséget az 50-nél több csomópontot tartalmazó nagy fürtök esetében. Api-kiszolgálói hívásokat generál a fürt minden csomópontjáról ennek a bővítésnek a végrehajtásához. Ez a beállítás az összes összegyűjtött naplósor adatméretét is növeli.

Nem tudok fürtöt frissíteni az előkészítés után

A következő forgatókönyv: Engedélyezte a Container Insightst egy Azure Kubernetes Service-fürthöz. Ezután törölte a Log Analytics-munkaterületet, ahol a fürt elküldte az adatait. Most, amikor megpróbálja frissíteni a fürtöt, az sikertelen lesz. A probléma megoldásához le kell tiltania a monitorozást, majd újból el kell végeznie azt egy másik érvényes munkaterületre való hivatkozással az előfizetésben. Amikor újra megpróbálja végrehajtani a fürtfrissítést, a fürtnek sikeresen fel kell dolgoznia és végre kell hajtania.

Naplók nem gyűjtése az Azure Stack HCI-fürtön

Ha 2023 novembere előtt regisztrálta a fürtöt és/vagy konfigurálta a HCI-Elemzések, a HCI-n az Azure Monitor-ügynököt használó funkciók, például az Arc for Servers Elemzések, a VM Elemzések, a Container Elemzések, Felhőhöz készült Defendervagy a Microsoft Sentinel nem gyűjti megfelelően a naplókat és az eseményadatokat. Az ügynök és a HCI Elemzések újrakonfigurálásához tekintse meg a HCI-hez készült AMA-ügynök javításával kapcsolatos lépéseket.

Következő lépések

Ha a figyelés lehetővé teszi az AKS-fürtcsomópontok és -podok állapotmetrikáinak rögzítését, ezek az állapotmetrikák elérhetők az Azure Portalon. A Container Insights használatának megismeréséhez tekintse meg az Azure Kubernetes Szolgáltatásállapot című témakört.