Sdílet prostřednictvím


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í sourcena 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 typu datetime. Pokud zdroj dat tuto vlastnost neobsahuje, můžete ji přidat do transformace pomocí extend nebo project.

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)

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átoru datatable 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.

  1. 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.

    Snímek obrazovky znázorňující možnost vytvoření transformace pro tabulku na webu Azure Portal

  2. 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.

    Snímek obrazovky znázorňující vytvoření nového pravidla shromažďování dat

  3. Výběrem možnosti Další zobrazíte ukázková data z tabulky. Kliknutím na Editor transformací definujte transformační dotaz.

    Snímek obrazovky znázorňující ukázková data z tabulky protokolů

  4. 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.

  5. 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í.

    Snímek obrazovky znázorňující uložení transformace

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.