Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento kurz vás provede konfigurací ukázkové transformace v pravidle shromažďování dat pracovního prostoru pomocí šablon Resource Manageru. Transformace ve službě Azure Monitor umožňují filtrovat nebo upravovat příchozí data před jejich odesláním do cíle. Transformace pracovních prostorů poskytují podporu pro transformace během příjmu dat v pracovních postupech, které ještě nepoužívají kanál pro příjem dat služby Azure Monitor.
Transformace pracovních prostorů se ukládají společně v jednom pravidlu shromažďování dat (DCR) pro pracovní prostor označované jako DCR pracovního prostoru. Každá transformace je přidružená ke konkrétní tabulce. Transformace se použije na všechna data odesílaná do této tabulky z jakéhokoli pracovního postupu, který nepoužívá dcR.
Poznámka:
Tento kurz používá šablony Resource Manageru a rozhraní REST API ke konfiguraci transformace pracovního prostoru. Viz kurz: Přidání transformace v pravidle shromažďování dat pracovního prostoru do služby Azure Monitor pomocí webu Azure Portal pro stejný kurz pomocí webu Azure Portal.
V tomto kurzu se naučíte:
- Nakonfigurujte transformaci pracovního prostoru pro tabulku v pracovním prostoru služby Log Analytics.
- Napište dotaz protokolu pro transformaci v čase příjmu dat.
Poznámka:
Tento kurz používá PowerShell z Azure Cloud Shellu k volání rozhraní REST API pomocí rozhraní API pro tabulky služby Azure Monitor a webu Azure Portal k instalaci šablon Resource Manageru. K těmto voláním můžete použít jakoukoli jinou metodu.
Požadavky
K dokončení tohoto kurzu potřebujete:
- Pracovní prostor služby Log Analytics, kde máte alespoň práva přispěvatele.
- Oprávnění k vytváření objektů pravidla shromažďování dat v pracovním prostoru
- Tabulka už musí obsahovat nějaká data.
- Tabulku už není možné propojit s transformací DCR pracovního prostoru.
Přehled
V tomto kurzu snížíte požadavky na úložiště pro LAQueryLogs tabulku filtrováním určitých záznamů. Zároveň odeberete obsah sloupce a parsujete data sloupce a uložíte část dat do vlastního sloupce.
Tabulka LAQueryLogs se vytvoří, když povolíte auditování dotazů protokolu v pracovním prostoru, ale použije se jenom jako ukázka pro kurz. Stejný základní proces můžete použít k vytvoření transformace pro libovolnou podporovanou tabulku v pracovním prostoru služby Log Analytics.
Povolení protokolů auditu dotazů
Abyste mohli vytvořit tabulku, se kterou budete pracovat, musíte pro svůj pracovní prostor povolit LAQueryLogs. To není nutné pro všechny transformace doby příjmu dat. Stačí vygenerovat ukázková data, která tato ukázková transformace použije.
V nabídce pracovních prostorů služby Log Analytics na webu Azure Portal vyberte Nastavení diagnostiky a pak přidejte nastavení diagnostiky.
Zadejte název nastavení diagnostiky a vyberte pracovní prostor, aby se data auditování uložila do stejného pracovního prostoru. Vyberte kategorii Audit a potom kliknutím na Uložit uložte nastavení diagnostiky a zavřete stránku nastavení diagnostiky.
Vyberte Protokoly a poté spusťte některé dotazy, abyste naplnili
LAQueryLogsdaty. Tyto dotazy nemusí skutečně vracet žádná data.
Aktualizace schématu tabulky
Před vytvořením transformace je nutné v tabulce provést následující dvě změny:
- Tabulka musí být povolena pro transformaci pracovního prostoru. To se vyžaduje pro všechny tabulky, které budou mít transformaci, i když transformace nezmění schéma tabulky.
- Do tabulky musí být přidány všechny další sloupce naplněné transformací.
Pomocí Tables - Update rozhraní API nakonfigurujte tabulku kódem PowerShellu níže. Volání rozhraní API umožňuje tabulku pro transformace pracovního prostoru bez ohledu na to, jestli jsou definované vlastní sloupce. V této ukázce obsahuje vlastní sloupec s názvem Resources_CF , který se naplní transformačním dotazem.
Důležité
Všechny vlastní sloupce přidané do předdefinované tabulky musí končit _CF. Sloupce přidané do vlastní tabulky (tabulka s názvem končící _CL) nemusí mít tuto příponu.
Klikněte na tlačítko Cloud Shell na webu Azure Portal a ujistěte se, že je prostředí nastavené na PowerShell.
Zkopírujte následující kód PowerShellu a nahraďte parametr Path podrobnostmi pro váš pracovní prostor.
$tableParams = @' { "properties": { "schema": { "name": "LAQueryLogs", "columns": [ { "name": "Resources_CF", "description": "The list of resources, this query ran against", "type": "string", "isDefaultDisplay": true, "isHidden": false } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/LAQueryLogs?api-version=2021-12-01-preview" -Method PUT -payload $tableParamsVložte kód do výzvy Cloud Shellu, abyste ho spustili.
Přidání sloupce můžete ověřit tak, že přejdete do nabídky pracovního prostoru Log Analytics v Azure portálu. Výběrem Protokoly otevřete Log Analytics a rozbalte
LAQueryLogstabulku, aby se zobrazily její sloupce.
Definování transformačního dotazu
Před přidáním do pravidla shromažďování dat použijte Log Analytics k otestování transformačního dotazu.
Otevřete svůj pracovní prostor v nabídce pracovních prostorů služby Log Analytics v Azure portálu a vyberte Protokoly k otevření Log Analytics.
Spuštěním následujícího dotazu zobrazte obsah
LAQueryLogstabulky. Všimněte si obsahuRequestContextsloupce. Transformace načte název pracovního prostoru z tohoto sloupce a odebere zbývající data v tomto sloupci.LAQueryLogs | take 10Upravte dotaz na následující:
LAQueryLogs | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, ContextProvede se následující změny:
- Zahoďte řádky související s dotazováním
LAQueryLogssamotné tabulky, abyste ušetřili místo, protože tyto položky protokolu nejsou užitečné. - Přidejte sloupec pro název pracovního prostoru, který byl dotazován.
- Pokud chcete ušetřit místo, odeberte data ze
RequestContextsloupce.
- Zahoďte řádky související s dotazováním
Proveďte v dotazu následující změny, které ho mají použít v transformaci:
- Místo zadání názvu tabulky (
LAQueryLogsv tomto případě) jako zdroje dat pro tento dotaz použijtesourceklíčové slovo. Jedná se o virtuální tabulku, která vždy představuje příchozí data v transformačním dotazu. - Odeberte všechny operátory, které transformační dotazy nepodporují. Seznam podporovaných operátorů najdete v části Podporované funkce KQL .
- Zploštěte dotaz na jeden řádek, aby se vešl do FORMÁTU JSON DCR.
Následuje dotaz, který použijete v transformaci po těchto úpravách:
source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''- Místo zadání názvu tabulky (
Vytvoření pravidla shromažďování dat (DCR)
Vzhledem k tomu, že se jedná o první transformaci v pracovním prostoru, musíte vytvořit transformaci pracovního prostoru DCR. Pokud vytváříte transformace pracovního prostoru pro jiné tabulky ve stejném pracovním prostoru, musí být uloženy v tomto stejném řadiči domény.
Do vyhledávacího pole webu Azure Portal zadejte šablonu a pak vyberte Nasadit vlastní šablonu.
V editoru klikněte na Vytvořit vlastní šablonu.
Vložte níže šablonu Resource Manageru do editoru a potom klikněte na Uložit. Tato šablona definuje dcR a obsahuje transformační dotaz. Tuto šablonu nemusíte upravovat, protože bude shromažďovat hodnoty pro její parametry.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the Data Collection Rule to create." } }, "location": { "type": "string", "defaultValue": "westus2", "allowedValues": [ "westus2", "eastus2", "eastus2euap" ], "metadata": { "description": "Specifies the location in which to create the Data Collection Rule." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2021-09-01-preview", "kind": "WorkspaceTransforms", "properties": { "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "clv2ws1" } ] }, "dataFlows": [ { "streams": [ "Microsoft-Table-LAQueryLogs" ], "destinations": [ "clv2ws1" ], "transformKql": "source |where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }Na obrazovce Vlastní nasazení zadejte předplatné a skupinu prostředků , do které se uloží pravidlo shromažďování dat, a pak zadejte hodnoty definované v šabloně. To zahrnuje název pravidla shromažďování dat a ID prostředku pracovního prostoru , které jste shromáždili v předchozím kroku. Umístění by mělo být stejné jako pracovní prostor. Oblast se už naplní a použije se pro umístění pravidla shromažďování dat.
Klikněte na Zkontrolovat a vytvořit a potom Vytvořit, až si prohlédnete podrobnosti.
Po dokončení nasazení rozbalte pole Podrobnosti o nasazení a kliknutím na pravidlo shromažďování dat zobrazte jeho podrobnosti. Klikněte na JSON View.
Zkopírujte ID prostředku pro pravidlo shromažďování dat. Použijete ho v dalším kroku.
Propojení pracovního prostoru s DCR
Posledním krokem pro povolení transformace je propojení DCR s pracovním prostorem.
Důležité
Pracovní prostor je možné připojit pouze k jednomu řadiči domény a propojený řadič domény musí tento pracovní prostor obsahovat jako cíl.
Použijte Workspaces - Update API ke konfiguraci tabulky pomocí níže uvedeného kódu PowerShell.
Dalším kliknutím na tlačítko Cloud Shell otevřete Cloud Shell. Zkopírujte následující kód PowerShellu a nahraďte parametry hodnotami pro váš pracovní prostor a DCR.
$defaultDcrParams = @' { "properties": { "defaultDataCollectionRuleResourceId": "/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Insights/dataCollectionRules/{DCR}" } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version=2021-12-01-preview" -Method PATCH -payload $defaultDcrParamsVložte kód do výzvy Cloud Shellu, abyste ho spustili.
Testovací transformace
Počkejte přibližně 30 minut, než se transformace projeví, a pak ji můžete otestovat spuštěním dotazu na tabulku. Ovlivněna budou pouze data odeslaná do tabulky po použití transformace.
Pro účely tohoto kurzu spusťte několik ukázkových dotazů, které posílají data do LAQueryLogs tabulky. Zahrňte některé dotazy LAQueryLogs , abyste mohli ověřit, že transformace filtruje tyto záznamy. Všimněte si, že výstup obsahuje nový Workspace_CF sloupec a neexistují žádné záznamy pro LAQueryLogs.
Řešení problému
Tato část popisuje různé chybové stavy, které se mohou zobrazit a jak je opravit.
IntelliSense v Log Analytics nerozpoznává nové sloupce v tabulce
Aktualizace mezipaměti, která řídí technologii IntelliSense, může trvat až 24 hodin.
Transformace dynamického sloupce nefunguje
V současné době existuje známý problém ovlivňující dynamické sloupce. Dočasným alternativním řešením je explicitně analyzovat dynamická data sloupců před parse_json() provedením jakýchkoli operací s nimi.