Transformace dat v Přehledech kontejnerů
Tento článek popisuje, jak implementovat transformace dat v Přehledech kontejnerů. Transformace ve službě Azure Monitor umožňují upravit nebo filtrovat data před tím, než se ingestují v pracovním prostoru služby Log Analytics. Umožňují provádět takové akce, jako je filtrování dat shromážděných z clusteru, abyste ušetřili náklady nebo zpracovávali příchozí data, která vám pomůžou s dotazy na data.
Důležité
Články Konfigurace shromažďování protokolů v přehledech kontejnerů a filtrování shromažďování protokolů v Přehledech kontejnerů popisují standardní nastavení konfigurace pro konfiguraci a filtrování shromažďování dat pro přehledy kontejnerů. Před použitím transformací byste měli provést jakoukoli požadovanou konfiguraci pomocí těchto funkcí. Pomocí transformace můžete provádět filtrování nebo jinou konfiguraci dat, kterou nemůžete provést se standardním nastavením konfigurace.
Pravidlo shromažďování dat
Transformace se implementují v pravidlech shromažďování dat (DCR), která se používají ke konfiguraci shromažďování dat ve službě Azure Monitor. Konfigurace shromažďování dat pomocí DCR popisuje řadič domény, který se automaticky vytvoří při povolení přehledů kontejneru v clusteru. Pokud chcete vytvořit transformaci, musíte provést jednu z následujících akcí:
- Nový cluster K nasazení clusteru AKS do přehledů kontejnerů použijte existující šablonu ARM. Upravte řadič domény v této šabloně s požadovanou konfigurací, včetně transformace podobné jedné z níže uvedených ukázek.
- Stávající řadič domény. Po nasazení clusteru do přehledů kontejnerů a konfigurace shromažďování dat upravte jeho řadič domény tak, aby zahrnoval transformaci pomocí některé z metod v úpravách pravidel shromažďování dat.
Poznámka:
V současné době existuje minimální uživatelské rozhraní pro úpravy řadičů domény, které je potřeba k přidání transformací. Ve většině případů musíte řadič domény upravit ručně. Tento článek popisuje strukturu DCR, která se má implementovat. Pokyny k implementaci této struktury najdete v tématu Vytvoření a úprava pravidel shromažďování dat (DCR) ve službě Azure Monitor .
Zdroje dat
Část Zdroje dat dcR definuje různé typy příchozích dat, které bude dcR zpracovávat. V případě Container Insights se jedná o rozšíření Container Insights, které zahrnuje jednu nebo více předdefinovaných streams
předponou Od Microsoftu.
Seznam streamů Container Insights v DCR závisí na přednastavení nákladů, které jste vybrali pro cluster. Pokud shromáždíte všechny tabulky, dcR použije Microsoft-ContainerInsights-Group-Default
stream, což je skupinový stream, který obsahuje všechny streamy uvedené v hodnotách Streamu. Pokud použijete transformaci, musíte to změnit na jednotlivé datové proudy. Všechna ostatní nastavení přednastavení nákladů už budou používat jednotlivé datové proudy.
Následující ukázka ukazuje Microsoft-ContainerInsights-Group-Default
stream. Ukázkové řadiče domény najdete v ukázkách s využitím jednotlivých datových proudů.
"dataSources": {
"extensions": [
{
"streams": [
"Microsoft-ContainerInsights-Group-Default"
],
"name": "ContainerInsightsExtension",
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"namespaces": null,
"enableContainerLogV2": true
}
}
}
]
}
Toky dat
Část Toky dat dcR odpovídá datovým proudům s cíli definovanými v destinations
části DCR. Názvy tabulek nemusí být zadány pro známé datové proudy, pokud se data odesílají do výchozí tabulky. Datové proudy, které nevyžadují transformaci, je možné seskupit do jedné položky, která zahrnuje pouze cíl pracovního prostoru. Každá bude odeslána do výchozí tabulky.
Vytvořte samostatnou položku pro datové proudy, které vyžadují transformaci. To by mělo zahrnovat cíl pracovního prostoru a transformKql
vlastnost. Pokud odesíláte data do alternativní tabulky, musíte zahrnout outputStream
vlastnost, která určuje název cílové tabulky.
Následující ukázka ukazuje dataFlows
část jednoho datového proudu s transformací. Podívejte se na ukázkové dcrs pro více toků dat v jednom DCR.
"dataFlows": [
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where PodNamespace == 'kube-system'"
}
]
Ukázkové žádosti o řadič domény
Filtrování dat
První příklad vyfiltruje data z ContainerLogV2
závislosti na sloupci LogLevel
. Budou se shromažďovat pouze záznamy s LogLevel
nebo error
critical
budou shromažďovány, protože se jedná o položky, které můžete použít k upozorňování a identifikaci problémů v clusteru. Shromažďování a ukládání dalších úrovní, jako info
jsou a debug
generování nákladů bez významné hodnoty.
Tyto záznamy můžete načíst pomocí následujícího dotazu protokolu.
ContainerLogV2 | where LogLevel in ('error', 'critical')
Tato logika je znázorněna v následujícím diagramu.
V transformaci se název source
tabulky používá k reprezentaci příchozích dat. Následuje upravený dotaz, který se má použít v transformaci.
source | where LogLevel in ('error', 'critical')
Následující ukázka ukazuje tuto transformaci přidanou do DCR Container Insights. Všimněte si, že se používá Microsoft-ContainerLogV2
samostatný tok dat, protože se jedná o jediný příchozí datový proud, na který se má transformace použít. Pro ostatní datové proudy se používá samostatný tok dat.
{
"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')"
}
],
},
}
Odesílání dat do různých tabulek
V příkladu výše jsou shromažďovány pouze záznamy s určitou nebo error
critical
shromážděnouLogLevel
. Alternativní strategií místo shromažďování těchto záznamů je uložit je do alternativní tabulky nakonfigurované pro základní protokoly.
Pro tuto strategii jsou potřeba dvě transformace. První transformace odešle záznamy s LogLevel
error
výchozí tabulkou nebo critical
do výchozí tabulky. Druhá transformace odešle ostatní záznamy do vlastní tabulky s názvem ContainerLogV2_CL
. Níže uvedené dotazy se používají source
pro příchozí data, jak je popsáno v předchozím příkladu.
# 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')
Tato logika je znázorněna v následujícím diagramu.
Důležité
Před instalací DCR v této ukázce musíte vytvořit novou tabulku se stejným schématem jako ContainerLogV2
. Pojmenujte ho ContainerLogV2_CL
a nakonfigurujte ho pro základní protokoly.
Následující ukázka ukazuje tuto transformaci přidanou do DCR Container Insights. V tomto dcR existují dva toky Microsoft-ContainerLogV2
dat, jeden pro každou transformaci. První se odešle do výchozí tabulky, kterou nemusíte zadávat. Druhá vyžaduje outputStream
, aby vlastnost určila cílovou tabulku.
{
"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"
}
],
},
}
Další kroky
- Přečtěte si další informace o transformacích a pravidlech shromažďování dat ve službě Azure Monitor.