Vytvoření transformace ve službě Azure Monitor
Transformace ve službě Azure Monitor umožňují filtrovat nebo upravovat příchozí data před jejich uložením v pracovním prostoru služby Log Analytics. Implementují se jako příkaz dotazovací jazyk Kusto (KQL) v pravidle shromažďování dat (DCR). Tento článek obsahuje pokyny k vytvoření a testování transformačního dotazu a jeho přidání do DCR.
Poznámka:
Pokud neznáte KQL nebo vytváříte dotazy na protokoly pro data služby Azure Monitor, začněte přehledem služby Log Analytics ve službě Azure Monitor a dotazy na protokoly ve službě Azure Monitor.
Základní struktura dotazu
Všechny transformační dotazy začínají source
na virtuální tabulku, která představuje vstupní datový proud. Pomocí libovolných podporovaných operátorů KQL pak můžete filtrovat, upravovat nebo přidávat sloupce k datům stejně jako u jakékoli jiné tabulky. Dotaz se použije jednotlivě pro každou položku odesílanou zdrojem dat.
Výstup dotazu se musí shodovat se schématem cílové tabulky s následujícími aspekty:
- Můžete vynechat všechny sloupce, které by neměly být vyplněny. Sloupec bude prázdný pro záznam v cílové tabulce.
- Nezapomeňte vyloučit všechny sloupce, které nejsou zahrnuty do výstupní tabulky. Data budou přijata bez chyby, ale za příjem dalších dat se vám budou účtovat poplatky, i když nejsou uložená.
- Výstup každé transformace musí obsahovat platné časové razítko ve sloupci nazvaném
TimeGenerated
typudatetime
. Pokud zdroj dat tuto vlastnost neobsahuje, můžete ji přidat do transformace pomocíextend
neboproject
.
Následuje příklad transformace, která provádí několik funkcí:
- Filtruje příchozí data pomocí
where
příkazu. - Přidá nový sloupec pomocí operátoru
extend
. - Formátuje výstup tak, aby odpovídal sloupcům cílové tabulky pomocí operátoru
project
.
source
| where severity == "Critical"
| extend Properties = parse_json(properties)
| project
TimeGenerated = todatetime(["time"]),
Category = category,
StatusDescription = StatusDescription,
EventName = name,
EventId = tostring(Properties.EventId)
Poznámka:
Vytvoření transformačního dotazu
Než vytvoříte nebo upravíte řadič domény, který bude zahrnovat vaši transformaci, budete muset vytvořit a otestovat transformační dotaz. Obvykle to uděláte spuštěním testovacích dotazů na existující data nebo testovací data. Až získáte požadované výsledky, můžete název source
tabulky nahradit a vložit ho do dcR, jak je vysvětleno níže v části Přidání transformace do DCR.
Důležité
Transformace nepodporují všechny funkce KQL. Informace o podporovaných funkcích a omezeních najdete v části Podporované funkce KQL v transformacích služby Azure Monitor.
Pokud například vytváříte transformaci pro filtrování událostí Syslogu, můžete začít následujícím dotazem, který můžete spustit v Log Analytics.
Syslog | where SeverityLevel != 'info'
Tento dotaz můžete vložit do dcR a pak změnit název tabulky na source
.
source | where SeverityLevel != 'info'
K otestování dotazu použijte jednu z následujících strategií pro data.
- Pokud už shromažďujete data, která chcete transformovat, můžete pomocí Log Analytics napsat dotaz, který filtruje nebo upraví data podle potřeby. Zkopírujte text dotazu a vložte ho do řadiče domény.
- Pomocí Log Analytics napište svůj dotaz pomocí operátoru
datatable
k vytvoření ukázkové datové sady, která představuje příchozí data. Zkopírujte text dotazu bez operátorudatatable
a vložte ho do řadiče domény. - Pomocí procesu vytvořte novou tabulku na webu Azure Portal a zadejte ukázková data. Pomocí zahrnutého rozhraní můžete vytvořit a otestovat transformační dotaz. Zkopírujte text dotazu a vložte ho do řadiče domény, nebo proces dokončete a pak upravte řadič domény a zkopírujte transformační dotaz. Pokud ji nepotřebujete, můžete novou tabulku odstranit.
Přidání transformace do DCR
Jakmile budete mít transformační dotaz, můžete ho přidat do dcR. Pokyny k vytvoření a úpravě pravidel shromažďování dat (DCR) ve službě Azure Monitor použijte k vytvoření nebo úpravě DCR s využitím informací v této části, abyste do definice DCR zahrnuli transformační dotaz.
Poznámka:
Některé zdroje dat poskytují metodu pomocí webu Azure Portal pro přidání transformace do DCR. Například shromažďování textu z virtuálního počítače umožňuje zadat transformační dotaz na webu Azure Portal. Většina scénářů shromažďování dat v současné době vyžaduje, abyste při přidání transformace pracovali přímo s definicí DCR. To je postup popsaný v této části.
Transformační dotaz se zadává ve vlastnosti v transformKql
části Tok dat s řadiče domény. Toto je oddíl, který spáruje zdroj dat s cílem. Transformace se použije u příchozího streamu toku dat před odesláním do cíle. Tok dat se použije jenom v případě, že se stejný datový proud nebo cíl použije v jiných tocích dat.
Pokud je transformKql
tato vlastnost vynechána nebo pokud je její hodnota jednoduše source
, nepoužije se žádná transformace a příchozí data se odešlou do cíle beze změny.
Důležité
Transformační dotaz musí být na jednom řádku dcR. Pokud vytváříte transformaci na webu Azure Portal, můžete pro čitelnost použít více řádků a \n
bude zahrnuta v dotazu pro každý nový řádek.
V následujícím příkladu neexistuje žádná transformKql
vlastnost, takže příchozí data se odešlou do cíle beze změny.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"centralWorkspace"
]
}
]
V následujícím příkladu má jednoduchý dotaz source
, transformKql
takže příchozí data se odesílají do cíle beze změny. Funkce je stejná jako v předchozím příkladu.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source",
"destinations": [
"centralWorkspace"
]
}
]
V následujícím příkladu má dotaz, transformKql
který filtruje data, takže se do cíle odesílají jenom chybové zprávy.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source | where message has 'error'",
"destinations": [
"centralWorkspace"
]
}
]
Vytvoření transformace pracovního prostoru – DCR
Pravidlo pro shromažďování dat transformace pracovního prostoru (DCR) je speciální řadič domény, který se použije přímo u pracovního prostoru služby Log Analytics. Pro každý pracovní prostor může existovat pouze jedna transformace pracovního prostoru, ale může obsahovat transformace pro libovolný počet tabulek.
Pomocí jedné z následujících metod vytvořte transformační řadič domény pracovního prostoru pro váš pracovní prostor a přidejte do něj jednu nebo více transformací.
Transformační řadič domény pracovního prostoru můžete vytvořit na webu Azure Portal přidáním transformace do podporované tabulky.
V nabídce pracovních prostorů služby Log Analytics na webu Azure Portal vyberte Tabulky. Klikněte napravo od tabulky, kterou vás zajímá, a vyberte Vytvořit transformaci.
Pokud dcR transformace pracovního prostoru ještě není pro tento pracovní prostor vytvořený, vyberte možnost, kterou chcete vytvořit. Pokud už je vytvořený, bude už vybraný řadič domény. Každý pracovní prostor může mít pouze jednu transformaci pracovního prostoru DCR.
Výběrem možnosti Další zobrazíte ukázková data z tabulky. Kliknutím na Editor transformací definujte transformační dotaz.
Pak můžete upravit a spustit transformační dotaz, abyste viděli výsledky oproti skutečným datům z tabulky. Pokračujte v úpravách a testování dotazu, dokud nedostanete požadované výsledky.
Až budete s dotazem spokojení, klikněte na Použít a potom na Další a Vytvořit , aby se řadič domény uložil s novou transformací.
Optimalizace a monitorování transformací
Transformace spouští dotaz KQL na každý záznam shromážděný pomocí DCR, takže je důležité, aby fungovaly efektivně. Doba provádění transformace přispívá k celkové latenci příjmu dat a transformace, které zabírají příliš dlouho, mohou ovlivnit výkon kanálu shromažďování dat a vést ke ztrátě dat. Spuštění optimálních transformací by nemělo trvat déle než 1 sekundu. Pokyny k testování dotazu před implementací jako transformace a doporučení k optimalizaci dotazů, které neběží efektivně, najdete v tématu Optimalizace dotazů ve službě Azure Monitor .
Důležité
Pokud transformace trvá déle než 20 sekund, může dojít ke ztrátě dat.
Protože transformace neběží interaktivně, je důležité je průběžně monitorovat, aby se zajistilo, že jsou správně spuštěné a nezbírají příliš dlouho zpracování dat. Podrobnosti o protokolech a metrikách, které monitorují stav a výkon transformací, najdete v tématu Monitorování a řešení potíží se shromažďováním dat DCR ve službě Azure Monitor . To zahrnuje identifikaci všech chyb, ke kterým dochází v KQL, a metriky ke sledování jejich doby trvání.
Následující metriky se automaticky shromažďují pro transformace a měly by se pravidelně kontrolovat, abyste ověřili, že vaše transformace stále běží podle očekávání. Vytvořte pravidla upozornění na metriky, která se mají automaticky informovat, když jedna z těchto metrik překročí prahovou hodnotu.
- Doba trvání transformace protokolů za minutu
- Chyby transformace protokolů za minutu
Povolte protokoly chyb DCR ke sledování chyb, ke kterým dochází v transformacích nebo jiných dotazech. Vytvořte pravidlo upozornění protokolu, které bude automaticky upozorněno při zápisu položky do této tabulky.
Pokyny
Existuje několik metod pro vytváření transformací v závislosti na metodě shromažďování dat. Následující tabulka obsahuje pokyny pro různé metody vytváření transformací.
Shromažďování dat | Reference |
---|---|
Rozhraní API pro příjem protokolů | Odesílání dat do protokolů služby Azure Monitor pomocí rozhraní REST API (Azure Portal) Odesílání dat do protokolů služby Azure Monitor pomocí rozhraní REST API (šablony Azure Resource Manageru) |
Virtuální počítač s agentem Azure Monitoru | Přidání transformace do protokolu služby Azure Monitor |
Cluster Kubernetes se službou Container Insights | Transformace dat v Přehledech kontejnerů |
Azure Event Hubs | Kurz: Ingestování událostí ze služby Azure Event Hubs do protokolů služby Azure Monitor (Public Preview) |
Další kroky
- Vytvořte pravidlo shromažďování dat a přidružení k němu z virtuálního počítače pomocí agenta služby Azure Monitor.