Příjem dat ze streamu Cribl do Azure Data Exploreru

Cribl Stream je modul pro zpracování, který bezpečně shromažďuje, zpracovává a streamuje data událostí počítače z libovolného zdroje. Umožňuje analyzovat a zpracovávat tato data pro jakýkoli cíl pro účely analýzy a správy zabezpečeným způsobem.

Tento článek ukazuje, jak ingestovat data pomocí služby Cribl Stream.

Úplný seznam datových konektorů najdete v přehledu integrace dat.

Požadavky

  • Účet Dětská postýlka Stream
  • Cluster a databáze Azure Data Exploreru s výchozími zásadami ukládání do mezipaměti a uchovávání informací.
  • Dotazovací prostředí. Další informace najdete v tématu Přehled integrací dotazů.
  • Identifikátor URI clusteru Kusto pro hodnotu TargetURI ve formátu https://ingest-<clusteru.><region.kusto.windows.net>. Další informace najdete v tématu Přidání připojení ke clusteru.

Vytvoření instančního objektu Microsoft Entra

Instanční objekt Microsoft Entra je možné vytvořit prostřednictvím webu Azure Portal nebo programově, jako v následujícím příkladu.

Tento instanční objekt je identita, kterou konektor používá k zápisu dat do tabulky v Kusto. Udělíte oprávnění pro tento instanční objekt pro přístup k prostředkům Kusto.

  1. Přihlaste se ke svému předplatnému Azure prostřednictvím Azure CLI. Pak se ověřte v prohlížeči.

    az login
    
  2. Zvolte předplatné, které má být hostitelem objektu zabezpečení. Tento krok je potřeba v případě, že máte více předplatných.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Vytvořte instanční objekt. V tomto příkladu se instanční objekt nazývá my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Z vrácených dat JSON zkopírujte appIdpasswordtenant a pro budoucí použití.

    {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "displayName": "my-service-principal",
      "name": "my-service-principal",
      "password": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "tenant": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
    

Vytvořili jste aplikaci Microsoft Entra a instanční objekt.

Vytvoření cílové tabulky

Vytvořte cílovou tabulku pro příchozí data a mapování příjmu dat pro mapování přijatých sloupců dat na sloupce v cílové tabulce.

  1. Spuštěním následujícího příkazu pro vytvoření tabulky v editoru dotazů nahraďte zástupný název TableName názvem cílové tabulky:

    .create table <TableName> (_raw: string, _time: long, cribl_pipe: dynamic)
    
  2. Spusťte následující příkaz pro mapování příjmu dat a nahraďte zástupné symboly TableName názvem cílové tabulky a TableNameMapping názvem mapování příjmu dat:

    .create table <TableName> ingestion csv mapping '<TableNameMapping>' 'CriblLogMapping' '[{"Name":"_raw","DataType":"string","Ordinal":"0","ConstValue":null},{"Name":"_time","DataType":"long","Ordinal":"1","ConstValue":null},{"Name":"cribl_pipe","DataType":"dynamic","Ordinal":"2","ConstValue":null}]'
    
  3. Udělte instančnímu objektu z vytvoření oprávnění role Ingestor ingestor ingestor služby Microsoft Entra pro práci s databází. Další informace najdete v tématu Příklady. Zástupný název DatabaseName nahraďte názvem cílové databáze a ID aplikace AppId hodnotou, kterou jste uložili při vytváření instančního objektu Microsoft Entra.

    .add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'App Registration'
    

Vytvoření cíle služby Cribl Stream

Následující část popisuje, jak vytvořit cíl služby Cribl Stream, který zapisuje data do tabulky v Kusto. Každá tabulka vyžaduje samostatný cílový konektor kolébkového streamu.

Výběr cíle

Připojení služby Cribl Stream k tabulce:

  1. V horní navigaci v Dětské postýlkě vyberte Spravovat a pak vyberte skupinu pracovních procesů.

  2. Vyberte Směrování>QuickConnect (Stream)>Přidat cíl.

  3. V okně Nastavit nový cíl rychlého spojení zvolte Azure Data Explorer a pak přidat.

Nastavení obecných nastavení

V okně Nový Průzkumník dat nastavte v obecných nastaveních následující nastavení:

Nastavení Hodnota Popis
ID výstupu <OutputID>, například KustoDestination Název použitý k identifikaci cíle.
Režim příjmu dat Dávkování (výchozí) nebo streamování Nastavení režimu příjmu dat. Dávkování umožňuje tabulce načíst dávky dat z kontejneru úložiště Cribl při příjmu velkých objemů dat za krátkou dobu. Streamování odesílá data přímo do cílové tabulky KQL. Streamování je užitečné při ingestování menších objemů dat nebo například při odesílání kritické výstrahy v reálném čase. Streamování může dosáhnout nižší latence než dávkování. Pokud je režim příjmu dat nastavený na Streamování, budete muset povolit zásady streamování. Další informace najdete v tématu Zásady příjmu dat streamování.
Základní identifikátor URI clusteru základní identifikátor URI Základní identifikátor URI.
Identifikátor URI služby příjmu dat identifikátor URI příjmu dat Zobrazí se při výběru režimu dávkování . Identifikátor URI příjmu dat.
Název databáze <Název databáze> Název cílové databáze.
Název tabulky <TableName> Název cílové tabulky.
Ověření nastavení databáze Ano (výchozí) nebo Ne. Ověří přihlašovací údaje aplikace instančního objektu, které jste zadali při uložení nebo spuštění cíle. Ověří název tabulky, s výjimkou případu, kdy je zapnutý objekt Přidat mapování. Toto nastavení by mělo být zakázané, pokud vaše aplikace nemá role Prohlížeče databází i Prohlížeče tabulek.
Přidání objektu mapování Ano nebo Ne (výchozí.) Zobrazí se pouze v případech, kdy je režim dávkování vybrán místo výchozího textového pole mapování dat. Výběrem možnosti Ano se otevře okno pro zadání mapování dat jako objektu JSON.
Mapování dat Název mapování schématu definovaný v kroku Vytvoření cílové tabulky Název schématu mapování. Výchozí zobrazení při přidání objektu mapování je nastaveno na Ne.
Komprimovat gzip (výchozí) Pokud je formát dat nastavený na Parquet, komprese není k dispozici.
Formát dat JSON (výchozí), Raw nebo Parquet. Formát dat. Parquet je k dispozici pouze v režimu dávkování a podporuje se jenom v Linuxu.
Chování zpětného tlaku Blokovat (výchozí) nebo Drop Zvolte, jestli se mají blokovat nebo vypustit události, když příjemci pracují s backpressurem.
Značky Volitelné hodnoty Volitelné značky pro filtrování a seskupení cílů na stránce Spravovat cíle služby Cribl Stream. Mezi názvy značek použijte tabulátor nebo ho pevně vraťte. Tyto značky se nepřidávají ke zpracovaným událostem.

Po dokončení vyberte Další.

Nastavení ověřování

Na bočním panelu vyberte Nastavení ověřování. Hodnoty, které jste uložili v části Vytvoření instančního objektu Microsoft Entra, použijte společně se základním identifikátorem URI následujícím způsobem:

Nastavení Hodnota Popis
ID klientu <ID tenanta> Použijte hodnotu, kterou jste uložili v části Vytvoření instančního tenant objektu Microsoft Entra.
ID klienta <ID klienta> appId Použijte hodnoty, které jste uložili v části Vytvoření instančního objektu Microsoft Entra.
Scope <baseuri>/.default Pro baseURI použijte hodnotu ze základního identifikátoru URI.
Metoda ověřování Tajný klíč klienta, tajný klíč klienta (textový tajný kód) nebo certifikát Možnosti jsou Tajný klíč klienta Použít tajný klíč klienta aplikace Microsoft Entra, kterou jste vytvořili v vytvoření instančního objektu Microsoft Entra pro tajný klíč klienta. Pro certifikát váš certifikát používá veřejný klíč, který jste zaregistrovali nebo zaregistrujete pro aplikaci Microsoft Entra, kterou jste vytvořili v rámci vytvoření instančního objektu Microsoft Entra.

Pak vyberte Další.

Trvalá fronta

Zobrazí, když je režim příjmu dat nastavený na Streamování a chování backpressure je nastaveno na trvalou frontu.

Nastavení Hodnota Popis
Maximální velikost souboru 1 MB (výchozí) Maximální velikost souboru fronty, která se dostane před zavřením souboru. Při zadávání čísla zahrňte jednotky, například kB nebo MB.
Maximální velikost fronty 5 GB (výchozí) Maximální množství místa na disku, které může fronta spotřebovat pro každý pracovní proces, než cíl zastaví zařadí data do fronty. Požadovaná hodnota kladných čísel s jednotkami, jako jsou KB, MB nebo GB. Maximální hodnota je 1 TB.
Cesta k souboru fronty $CRIBL_HOME/state/queues (výchozí) Trvalé umístění souboru fronty. K této hodnotě se připojí Dětská postýlka /<worker‑id>/<output‑id> Stream.
Komprese None (výchozí), gzip Metoda komprese, která se má použít ke komprimaci trvalých dat při zavření.
Chování úplné fronty Blokování nebo přetažení Události můžete blokovat nebo vypustit, když fronta má zpětný tlak kvůli nízké nebo plné kapacitě disku.
Striktní řazení Ano (výchozí) nebo Ne Při nastavení na hodnotu Ano se události přeposílají na základě prvního odeslání objednávky. Pokud chcete odesílat nové události před dřívějšími událostmi zařazené do fronty, nastavte na hodnotu Ne .
Limit rychlosti odtoku (EPS) 0 (výchozí) Tato možnost se zobrazí, když je striktní řazení nastaveno na Ne, abyste mohli nastavit míru omezování (v událostech za sekundu) při zápisu z fronty do příjemců. Omezování rychlosti vyprázdnění událostí ve frontě zvyšuje novou nebo aktivní propustnost připojení. Nula zakáže omezování.
Vymazat trvalou frontu NA Vyberte, jestli chcete odstranit soubory, které jsou aktuálně zařazené do fronty pro doručení do cíle. Tuto akci budete muset potvrdit, protože se data ve frontě trvale odstraní bez doručení.

Po dokončení vyberte Další.

Nastavení zpracování

Nastavení Hodnota Popis
Potrubí <\defined_pipeline> Volitelný kanál pro zpracování dat před jejich odesláním pomocí tohoto výstupu.
Systémová pole cribl_pipe (výchozí), cribl_host, cribl_input, cribl_output, cribl_routenebo cribl_wp Seznam polí, která se automaticky přidají do událostí před odesláním do cíle. Podporují se zástupné kóty.

Po dokončení vyberte Další.

Nastavení Parquet

Zobrazí, když je pro formát dat vybrána možnost Parquet.

Když zvolíte Parquet, otevře se karta Nastavení Parquet a vyberete schéma Parquet.

Nastavení Hodnota Popis
Automatické schéma Zapnuto nebo vypnuto Výběrem možnosti Zapnuto vygenerujete schéma Parquet na základě událostí každého souboru Parquet, který kolébka Stream zapisuje.
Schéma Parquet rozevírací seznam Zobrazí, když je automatické schéma nastaveno na Vypnuto , abyste mohli vybrat schéma parquet.
Verze Parquet 1.0, 2.4, 2.6 (výchozí) Verze určuje podporované datové typy a způsob jejich znázornění.
Verze datové stránky V1, V2 (výchozí) Formát serializace datových stránek. Pokud vaše čtečka Parquet nepodporuje Parquet V2, použijte V1.
Omezení počtu řádků skupiny 1000 (výchozí) Maximální počet řádků, které může každá skupina obsahovat.
Velikost stránky 1 MB (výchozí) Cílová velikost paměti pro segmenty stránek. Nižší hodnoty můžou zlepšit rychlost čtení, zatímco vyšší hodnoty mohou zlepšit kompresi.
Protokolování neplatných řádků Ano nebo Ne Pokud je vybrána možnost Ano a úroveň protokolu je nastavená na debug, výstupy až 20 jedinečných řádků, které byly vynechány kvůli neshodě formátu dat.
Zápis statistiky Zapnuto (výchozí) nebo Vypnuto Pokud máte nakonfigurované nástroje pro prohlížení statistik Parquet, vyberte Zapnuto .
Zápis indexů stránek Zapnuto (výchozí) nebo Vypnuto Pokud vaše čtečka Parquet používá statistiku indexu stránky Parquet, vyberte Možnost Zapnuto , pokud chcete povolit přeskočení stránky.
Zápis kontrolního součtu stránky Zapnuto nebo vypnuto Pokud pomocí nástrojů Parquet zkontrolujete integritu dat pomocí kontrolních součtů stránek Parquet, zaškrtněte políčko Zapnuto .
Metadata (volitelné)* Vlastnosti metadat cílového souboru, které lze zahrnout jako páry klíč-hodnota.

Opakování

Zobrazí, když je režim příjmu dat nastavený na Streamování.

Nastavení Hodnota Popis
Honor Retry-After header Ano nebo Ne Zda se má respektovat hlavička Retry-After . Pokud je tato možnost povolená, má přednost před Retry-After dalšími nakonfigurovanými možnostmi v oddílu Opakování, pokud záhlaví určuje zpoždění 180 sekund nebo méně. Retry-After Jinak se záhlaví ignorují.
Nastavení neúspěšných požadavků HTTP Stavové kódy HTTP Seznam stavových kódů HTTP, které se mají automaticky opakovat, pokud se nepodaří připojit. Cribl Stream automaticky opakuje neúspěšné žádosti 429.
Opakované pokusy o vypršení časového limitu požadavků HTTP Zapnuto nebo vypnuto Po nastavení budou k dispozici další nastavení chování opakování.
Interval před backoffem (ms) 1000 ms (výchozí) Doba čekání před opakováním.
Násobitel backoffu 2 s (výchozí) Používá se jako základ pro exponenciální algoritmus backoff k určení intervalu mezi opakováními.
Limit zpětného odsud (ms) 10 000 ms (výchozí) Maximální interval zpětného přenosu pro poslední opakování streamování. Možné hodnoty jsou v rozsahu od 10 000 milisekund (10 sekund) do 180 000 milisekund (3 minuty.)

Po dokončení vyberte Další.

Rozšířené nastavení

Na bočním panelu vyberte Upřesnit nastavení . Následující část popisuje upřesňující nastavení při výběru služby Batching :

Nastavení Hodnota Popis
Okamžitě vyprázdnění Ano nebo Ne (výchozí.) Pokud chcete přepsat agregaci dat v Kusto, nastavte na ano . Další informace najdete v tématu Osvědčené postupy pro knihovnu Kusto Ingest.
Zachování objektu blob při úspěchu Ano nebo Ne (výchozí.) Pokud chcete po dokončení příjmu dat zachovat objekt blob dat, nastavte na ano .
Značky rozsahu <\ExtentTag, ET2,...> V případě potřeby nastavte značky na dělené rozsahy cílové tabulky.
Vynucení jedinečnosti prostřednictvím hodnot značek Výběrem možnosti Přidat hodnotu zadejte ingest-by seznam hodnot, který se má použít k filtrování příchozích rozsahů, a zahoďte rozsahy odpovídající uvedené hodnotě. Další informace najdete v tématu Rozsahy (horizontální oddíly dat)
Úroveň sestavy DoNotReport, FailuresOnly (výchozí) a FailuresAndSuccesses. Úroveň generování sestav o stavu příjmu dat.
Metoda sestavy Queue (výchozí), Table a QueueAndTable (doporučeno.) Cíl pro generování zpráv o stavu příjmu dat
Dodatečná pole V případě potřeby přidejte další vlastnosti konfigurace pro odeslání do služby pro příjem dat.
Pracovní umístění /tmp (výchozí) Umístění místního systému souborů, ve kterém se mají soubory ukládat do vyrovnávací paměti před komprimací a přesunutím do konečného cíle. Dětská postýlka doporučuje stabilní a vysoce výkonné umístění.
Výraz přípony názvu souboru .${C.env["CRIBL_WORKER_ID"]}.${__format}${__compression === "gzip" ? ".gz" : ""}(výchozí) Výraz JavaScriptu uzavřený v uvozovkách nebo zpětných jazycích, který se používá jako přípona výstupního názvu souboru. format může být JSON nebo raw a __compression může to být žádný nebo gzip. Na konec názvů souborů se připojí náhodná posloupnost šesti znaků, aby se zabránilo přepsání.
Maximální velikost souboru (MB) 32 MB (výchozí) Maximální nekomprimovaná velikost výstupního souboru, ke které se soubory dostanou dříve, než se zavřou a přesunou do kontejneru úložiště.
Maximální doba otevření souboru (s) 300 sekund (výchozí) Maximální doba zápisu do souboru před zavřeným a přesunutým do kontejneru úložiště v sekundách.
Maximální doba nečinnosti souboru (s) 30 sekund (výchozí) Maximální doba( v sekundách) pro zachování neaktivních souborů otevřených před jejich zavřením a přesunem do kontejneru úložiště.
Maximální počet otevřených souborů 100 (výchozí) Maximální početsouborůch
Maximální počet souběžných částí souborů 1 (výchozí) Maximální počet částí souboru, které se mají nahrát najednou. Výchozí hodnota je 1 a nejvyšší je 10. Nastavení hodnoty na jednu umožňuje postupně odesílat jednu část.
Odebrání prázdných pracovních dirů Ano (výchozí) nebo Ne Když je zapnutá funkce Cribl Stream, odstraní se po přesunutí souborů prázdné pracovní adresáře. Tím se zabrání šíření osamocených prázdných adresářů. Pokud je tato možnost povolená, zpřístupňuje pracovní období čištění.
Přípravná doba čištění 300 (výchozí) Množství v čase v sekundách, dokud nebudou odstraněny prázdné adresáře, když je povolená možnost Odebrat pracovní diry . Zobrazí, když je možnost Odebrat prázdné pracovní diry nastavená na Ano. Minimální hodnota je 10 sekund a maximum je 86 400 sekund (každých 24 hodin).)
Prostředí Pokud je konfigurace prázdná (výchozí) povolená všude. Pokud používáte GitOps, můžete zadat větev Gitu, ve které chcete konfiguraci povolit.

Po dokončení vyberte Uložit.

Konfigurace připojení

V okně Konfigurace připojení, které se otevře, vyberte Připojení Passthru a pak Uložit. Konektor začne zařadí data do fronty.

Potvrzení příjmu dat

  1. Jakmile data dorazí do tabulky, potvrďte přenos dat tak, že zkontrolujete počet řádků:

    <Tablename> 
    | count
    
  2. Potvrďte příjem dat zařazený do fronty za posledních pět minut:

    .show commands-and-queries 
    | where Database == "" and CommandType == "DataIngestPull" 
    | where LastUpdatedOn >= ago(5m)
    
  3. Ověřte, že v procesu příjmu dat nedošlo k žádným selháním:

    • Dávkování:
    .show ingestion failures
    
    • Streamování:
    .show streamingingestion failures 
    | order by LastFailureOn desc
    
  4. Ověření dat v tabulce:

    <TableName>
    | take 10
    

Příklady dotazů a pokyny najdete v dokumentaci k psaní dotazů v KQL a dotazovací jazyk Kusto.