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 = true van-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:
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
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
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
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
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
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.
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
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
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
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>
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 ContainerLog
ContainerName
). 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.