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.