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.
Pravidla shromažďování dat (DCR)
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. Když nasadíte přehledy kontejneru pro cluster, vytvoří se pro něj DCR s názvem MSCI-cluster-region><-<\cluster-name>. Tento řadič domény můžete zobrazit z pravidel shromažďování dat v nabídce Monitorování na webu Azure Portal. Pokud chcete vytvořit transformaci, musíte buď upravit tento řadič domény, nebo nasadit cluster pomocí vlastního řadiče domény, který zahrnuje vaši transformaci.
Následující tabulka popisuje různé metody úprav dcR, zatímco zbytek tohoto článku obsahuje podrobnosti o úpravách, které je potřeba provést k transformaci dat Container Insights.
metoda | Popis |
---|---|
Nový cluster | K nasazení clusteru AKS do přehledů kontejnerů použijte existující šablonu ARM. dataFlows Upravte oddíl DCR v této šabloně tak, aby zahrnoval transformaci, podobně jako v některé z ukázek níže. |
Stávající řadič domény | Po nasazení clusteru do přehledů kontejnerů upravte jeho řadič domény tak, aby zahrnoval transformaci pomocí procesu úprav pravidel shromažďování dat. |
Zdroje dat
Oddíl Zdroje dat DCR definuje různé typy příchozích dat, které bude DCR zpracovávat. Pro Container Insights to zahrnuje ContainerInsights
rozšíření, které zahrnuje jedno nebo více předdefinovaných streams
počínaje předponou Microsoft-.
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í fragment kódu ukazuje Microsoft-ContainerInsights-Group-Default
stream. Ukázkové řadiče domény najdete v ukázce jednotlivých datových proudů.
"dataSources": {
"extensions": [
{
"name": "ContainerInsightsExtension",
"extensionName": "ContainerInsights",
"extensionSettings": { },
"streams": [
"Microsoft-ContainerInsights-Group-Default"
]
}
]
}
Toky dat
Oddíl toků dat v DCR odpovídá datovým proudům s cíli. Datové proudy, které nevyžadují transformaci, je možné seskupit do jedné položky, která zahrnuje pouze cíl pracovního prostoru. Vytvořte samostatnou položku pro datové proudy, které vyžadují transformaci, která zahrnuje cíl pracovního prostoru a transformKql
vlastnost.
Následující fragment kódu 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
Následující ukázky ukazují dcrs pro přehledy kontejnerů pomocí transformací. Tyto ukázky použijte jako výchozí bod a přizpůsobte si je podle potřeby tak, aby splňovaly vaše konkrétní požadavky.
Filtrování pro konkrétní obor názvů
Tato ukázka používá dotaz source | where PodNamespace == 'kube-system'
protokolu ke shromažďování dat pro jeden obor názvů v ContainerLogsV2
. V tomto dotazu můžete nahradit kube-system
jiným oborem názvů nebo nahradit where
klauzuli jiným filtrem tak, aby odpovídala konkrétním datům, která chcete shromáždit. Ostatní datové proudy jsou seskupené do samostatného toku dat a nemají použitou transformaci.
{
"properties": {
"dataSources": {
"syslog": [],
"extensions": [
{
"name": "ContainerInsightsExtension",
"extensionName": "ContainerInsights",
"extensionSettings": { },
"streams": [
"Microsoft-ContainerLog",
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory",
"Microsoft-KubeNodeInventory",
"Microsoft-KubePVInventory",
"Microsoft-KubeServices",
"Microsoft-KubeMonAgentEvents",
"Microsoft-InsightsMetrics",
"Microsoft-ContainerInventory",
"Microsoft-ContainerNodeInventory",
"Microsoft-Perf"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-ContainerLog",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory",
"Microsoft-KubeNodeInventory",
"Microsoft-KubePVInventory",
"Microsoft-KubeServices",
"Microsoft-KubeMonAgentEvents",
"Microsoft-InsightsMetrics",
"Microsoft-ContainerNodeInventory",
"Microsoft-Perf"
],
"destinations": [
"ciworkspace"
]
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where PodNamespace == 'kube-system'"
}
]
}
}
Přidání sloupce do tabulky
Tato ukázka používá dotaz source | extend new_CF = ContainerName
protokolu k odeslání dat do vlastního sloupce přidaného ContainerLogV2
do tabulky. Tato transformace vyžaduje přidání vlastního sloupce do tabulky pomocí procesu popsaného v části Přidání nebo odstranění vlastního sloupce. Ostatní datové proudy jsou seskupené do samostatného toku dat a nemají použitou transformaci.
{
"properties": {
"dataSources": {
"syslog": [],
"extensions": [
{
"extensionName": "ContainerInsights",
"extensionSettings": { },
"name": "ContainerInsightsExtension",
"streams": [
"Microsoft-ContainerLog",
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory",
"Microsoft-KubeNodeInventory",
"Microsoft-KubePVInventory",
"Microsoft-KubeServices",
"Microsoft-KubeMonAgentEvents",
"Microsoft-InsightsMetrics",
"Microsoft-ContainerInventory",
"Microsoft-ContainerNodeInventory",
"Microsoft-Perf"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-ContainerLog",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory",
"Microsoft-KubeNodeInventory",
"Microsoft-KubePVInventory",
"Microsoft-KubeServices",
"Microsoft-KubeMonAgentEvents",
"Microsoft-InsightsMetrics",
"Microsoft-ContainerNodeInventory",
"Microsoft-Perf"
],
"destinations": [
"ciworkspace"
]
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source\n | extend new_CF = ContainerName"
}
]
}
}
Další kroky
- Přečtěte si další informace o transformacích a pravidlech shromažďování dat ve službě Azure Monitor.