Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a cikk azt ismerteti, hogyan implementálhat adatátalakításokat a Kubernetes-fürtből származó tárolónapló-adatokkal. Az átalakítások az Azure Monitorban lehetővé teszik az adatok módosítását vagy szűrését, mielőtt azok bekerülnének a Log Analytics munkaterületére. Lehetővé teszik, hogy olyan műveleteket hajtson végre, mint a fürtből gyűjtött adatok szűrése a költségek megtakarítása vagy a bejövő adatok feldolgozása az adat lekérdezések segítése érdekében.
- Sorok szűrése adott feltételek alapján
- Oszlopok elvetése vagy átnevezése
- Bizalmas mezők maszkolása
- Számított mezők hozzáadása
Jótanács
Bár az átalakítások hatékony és megbízható funkciók, csak akkor használhatók, ha más szűrési módszereket használnak a Kubernetes-naplókhoz. Az átalakítások összetettebbek a hálózati használat implementálásához és növeléséhez, mivel az adatok a fürtből lesznek elküldve a szűrés előtt. Nézze meg a Kubernetes-fürtök adatgyűjtésének szűrését és testreszabását a különböző konfigurációk leírásáért.
Adatgyűjtési szabályok
Az átalakítások olyan adatgyűjtési szabályokban (DCR-ekben) valósulnak meg, amelyek az Azure Monitor adatgyűjtésének konfigurálására szolgálnak. Ha engedélyezi a Prometheus-metrikák és a tárolónaplózás figyelését a Kubernetes-fürtökhöz az Azure Monitorban, minden adattípushoz külön DCR-ek jönnek létre. Az átalakítások hozzáadhatók a tárolónaplókat gyűjtő DCR-hez.
Megjegyzés
A Kubernetes-fürtökhöz létrehozott DCR-ek részletes listájáért lásd a DCR-eket és a kapcsolódó erőforrásokat.
Átalakítás létrehozásához hajtsa végre az alábbi műveletek egyikét:
- Új klaszter. Egy meglévő ARM-sablonnal bekapcsolhat egy AKS-fürtöt a Container Insights szolgáltatásba. Módosítsa a sablonban lévő DCR-t a szükséges konfigurációval, beleértve az alábbi mintákhoz hasonló átalakítást is.
- Meglévő DCR. Miután egy fürt be lett állítva a Container Insights szolgáltatásba és az adatgyűjtés konfigurálva van, szerkessze az adatgyűjtési szabályait (DCR), hogy az átalakítást tartalmazza a szerkesztési módszerek bármelyikével .
Megjegyzés
A DCR-ek szerkesztéséhez jelenleg minimális felhasználói felület szükséges, ami átalakítások hozzáadásához szükséges. A legtöbb esetben manuálisan kell szerkesztenie a DCR-t. Ez a cikk a megvalósítandó DCR-struktúrát ismerteti. A struktúra megvalósításával kapcsolatos útmutatásért tekintse meg az Azure Monitor adatgyűjtési szabályainak (DCR-k) létrehozását és szerkesztését.
Adatforrások
A DCR Adatforrások szakasza határozza meg a DCR által feldolgozni kívánt bejövő adatok különböző típusait. A Container Insights esetében ez a Container Insights bővítmény, amely egy vagy több előre definiált streams microsoftos előtaggal kezdődik.
A Kontejner-elemzési adatfolyamok listája a DCR-ben a fürthöz kiválasztott költségbeállítástól függ. Ha összegyűjti az összes táblát, a DCR a Microsoft-ContainerInsights-Group-Default streamet fogja használni, amely egy csoportos stream, amely tartalmazza a Stream-értékekben felsorolt összes streamet. Ha átalakítást szeretne használni, ezt egyéni streamekre kell módosítania. Minden más előre beállított költségbeállítás eleve különálló streameket használ.
Az alábbi mintában a Microsoft-ContainerInsights-Group-Default adatfolyam látható. Az egyes streameket használó mintákért tekintse meg az alábbi szakaszokat.
"dataSources": {
"extensions": [
{
"streams": [
"Microsoft-ContainerInsights-Group-Default"
],
"name": "ContainerInsightsExtension",
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"namespaces": null,
"enableContainerLogV2": true
}
}
}
]
}
Adatfolyamok
A DCR Adatfolyamok szakasza megegyezik a destinations szakaszában definiált rendeltetési helyekkel a DCR-ben. Az ismert streamekhez nem kell táblaneveket megadni, ha az adatokat az alapértelmezett táblába küldik. Az átalakítást nem igénylő streamek egyetlen bejegyzésben csoportosíthatók, amely csak a munkaterület célhelyét tartalmazza. Mindegyik az alapértelmezett táblába lesz elküldve.
Hozzon létre egy külön bejegyzést az átalakítást igénylő streamekhez. Ennek tartalmaznia kell a munkaterület célját és a tulajdonságot transformKql . Ha másik táblába küld adatokat, akkor a outputStream céltábla nevét meghatározó tulajdonságot is tartalmaznia kell.
Az alábbi minta egyetlen adatfolyam dataFlows szakaszát mutatja be, átalakítással. Az alábbi mintákban több adatfolyamot is megtekinthet egyetlen DCR-ben.
"dataFlows": [
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where PodNamespace == 'kube-system'"
}
]
Adatok szűrése
Az alábbi példa az ContainerLogV2 adatait szűri ki a LogLevel oszlop alapján. Csak olyan rekordokat gyűjtünk össze, amelyek rendelkeznek LogLevel, error vagy critical értékkel, mivel ezek azok a bejegyzések, amelyeket a problémafigyeléshez és a fürt problémáinak azonosításához használhat. Más szintek összegyűjtése és tárolása, például info és debug költségeket okoz jelentős érték nélkül.
Ezeket a rekordokat az alábbi napló lekérdezéssel kérdezheti le.
ContainerLogV2 | where LogLevel in ('error', 'critical')
Ez a logika az alábbi ábrán látható.
Az átalakítás során a rendszer a tábla nevét source használja a bejövő adatok megjelenítéséhez. Az alábbiakban az átalakításhoz használandó módosított lekérdezés látható.
source | where LogLevel in ('error', 'critical')
Az alábbi minta a Container Insights DCR-hez hozzáadott átalakítást mutatja be. Vegye figyelembe, hogy a rendszer külön adatfolyamot Microsoft-ContainerLogV2 használ, mivel ez az egyetlen bejövő adatfolyam, amellyel az átalakítást alkalmazni kell. A rendszer külön adatfolyamot használ a többi adatfolyamhoz.
{
"properties": {
"location": "eastus2",
"kind": "Linux",
"dataSources": {
"syslog": [],
"extensions": [
{
"streams": [
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"enableContainerLogV2": true
}
},
"name": "ContainerInsightsExtension"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"destinations": [
"ciworkspace"
],
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel in ('error', 'critical')"
}
],
},
}
Adatok küldése különböző táblákba
A fenti példában csak azok a rekordok gyűjtjük össze, amelyek LogLevel vagy error vagy critical állapotúak. Alternatív stratégia ahelyett, hogy egyáltalán nem gyűjtené ezeket a rekordokat, konfigurálja a ContainerLogV2-t az alapszintű naplókhoz, és küldje el ezeket a rekordokat egy másik táblába.
Ehhez a stratégiához két átalakításra van szükség. Az első átalakítás a rekordokat egy névvel ellátott egyéni táblával LogLevelerror vagy critical annak továbbítja ContainerLogV2_CL. A második átalakítás elküldi a többi rekordot a standardnak ContainerLogV2. Az egyes lekérdezések alább láthatók a bejövő adatokhoz az source használatával, a korábbi példában leírtak szerint.
# Return error and critical logs
source | where LogLevel in ('error', 'critical')
# Return logs that aren't error or critical
source | where LogLevel !in ('error', 'critical')
Ez a logika az alábbi ábrán látható.
Fontos
Mielőtt telepíti a DCR-t ebben a mintában, létre kell hoznia egy új táblát ugyanazzal a sémával, mint ContainerLogV2a . Nevezze el a következőképpen: ContainerLogV2_CL.
Az alábbi minta a Container Insights DCR-hez hozzáadott átalakítást mutatja be. Ebben a DCR-ben két adatfolyam van Microsoft-ContainerLogV2 számára, egy-egy minden átalakításhoz. Az elsőt az alapértelmezett táblába küldi, amelyben nem kell megadnia a tábla nevét. A másodikhoz a outputStream tulajdonságnak meg kell adnia a céltáblát.
{
"properties": {
"location": "eastus2",
"kind": "Linux",
"dataSources": {
"syslog": [],
"extensions": [
{
"streams": [
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"enableContainerLogV2": true
}
},
"name": "ContainerInsightsExtension"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"destinations": [
"ciworkspace"
],
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel !in ('error', 'critical')"
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel in ('error','critical')",
"outputStream": "Custom-ContainerLogV2_CL"
}
],
},
}
Következő lépések
- További információ az Azure Monitor átalakításairól és adatgyűjtési szabályairól.