Sdílet prostřednictvím


Ukázkové transformace ve službě Azure Monitor

Transformace ve službě Azure Monitor umožňují filtrovat nebo upravovat příchozí data před jejich odesláním do pracovního prostoru služby Log Analytics. Tento článek obsahuje ukázkové dotazy pro běžné scénáře, které můžete použít k zahájení vytváření vlastních transformací. Podrobnosti o testování těchto transformací a jejich přidání do pravidla shromažďování dat (DCR) najdete v tématu Vytvoření transformace ve službě Azure Monitor .

Snížení nákladů na data

Protože se vám účtují poplatky za příjem dat za všechna data odesílaná do pracovního prostoru služby Log Analytics, chcete vyfiltrovat všechna data, která nepotřebujete ke snížení nákladů.

Filtrování řádků dat

where Pomocí příkazu můžete filtrovat příchozí data, která odpovídají konkrétním požadavkům. Pokud příchozí záznam neodpovídá příkazu, záznam se do cíle neodesílají. V následujícím příkladu se shromažďují pouze záznamy se závažností Critical .

source | where severity == "Critical" 

Filtrování sloupců dat

Odeberte sloupce ze zdroje dat, které nejsou potřeba k úspoře nákladů na příjem dat. project Pomocí příkazu určete sloupce ve výstupu nebo použijte project-away k určení pouze sloupců, které chcete odebrat. V následujícím příkladu RawData se sloupec odebere z výstupu.

source | project-away RawData

Analýza důležitých dat ze sloupce

Můžete mít sloupec s důležitými daty uloženými v nadměrném textu. Uchovávejte jenom cenná data a odeberte text, který není potřeba. Použijte řetězcové funkce , jako substring je a extract parsujte požadovaná data. Data můžete také analyzovat pomocí parse nebo split rozdělit jeden sloupec na více hodnot a vybrat požadovaný sloupec. Pak použijte extend k vytvoření nového sloupce s analyzovanými daty a project-away k odebrání původního sloupce.

Upozorňující

Tipy k používání složitých příkazů analýzy najdete v tématu Rozdělení velkých příkazů analýzy.

V následujícím příkladu RequestContext obsahuje sloupec JSON s ID prostředku pracovního prostoru. split Funkce parse_json slouží k extrahování jednoduchého názvu pracovního prostoru. Pro tuto hodnotu se vytvoří nový sloupec a ostatní sloupce se odeberou.

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

Odesílání řádků do základních protokolů

Odesílání řádků v datech, které vyžadují základní možnosti dotazů do základních tabulek protokolů za účelem snížení nákladů na příjem dat. Podrobnosti o tom, jak odesílat data do více tabulek, najdete v tématu Odesílání dat do více tabulek .

Odebrání citlivých dat

Je možné, že máte zdroj dat, který odesílá informace, které nechcete ukládat z důvodů ochrany osobních údajů nebo kompliancy.

Filtrování citlivých informací

Použijte stejné strategie popsané v tématu Snížení nákladů na data k vyfiltrování celých řádků nebo konkrétních sloupců, které obsahují citlivé informace. V následujícím příkladu ClientIP se sloupec odebere z výstupu.

source | project-away ClientIP

Obfuscate citlivé informace

Funkce řetězců slouží k nahrazení informací, jako jsou číslice v IP adrese nebo telefonním čísle běžným znakem. Následující příklad nahradí uživatelské jméno v e-mailové adrese "*****".

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

Odeslání do alternativní tabulky

Odesílání citlivých záznamů do alternativní tabulky s jinou konfigurací řízení přístupu na základě role Podrobnosti o tom, jak odesílat data do více tabulek, najdete v tématu Odesílání dat do více tabulek .

Obohacení dat

Transformace slouží k přidání informací do dat, která poskytují obchodní kontext nebo usnadňují pozdější dotazování na data. Pomocí řetězcových funkcí extrahujte důležité informace ze sloupce a pak pomocí extend příkazu přidejte do zdroje dat nový sloupec. Následující příklad přidá sloupec určující, jestli je IP adresa v jiném sloupci interní nebo externí.

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

Formátování dat pro cíl

Můžete mít zdroj dat, který odesílá data ve formátu, který neodpovídá struktuře cílové tabulky. Transformace slouží k přeformátování dat na požadované schéma.

Úprava schématu

Použijte příkazy, například extend a project upravte schéma příchozích dat tak, aby odpovídalo cílové tabulce. V následujícím příkladu se do odchozích dat pomocí funkce KQL přidá nový sloupec TimeGenerated , který vrátí aktuální čas.

source | extend TimeGenerated = now()

Analýza dat

Pomocí operátoru split nebo parse analyzujte data do více sloupců v cílové tabulce. V následujícím příkladu mají příchozí data sloupec oddělený čárkami, RawData který je rozdělený na jednotlivé sloupce cílové tabulky.

source 
| project d = split(RawData,",") 
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

Upozorňující

Tipy k používání složitých příkazů analýzy najdete v tématu Rozdělení velkých příkazů analýzy.

Další kroky