Sdílet prostřednictvím


Ingestování dat pomocí fluent Bitu do Azure Data Exploreru

Fluent Bit je opensourcový agent, který shromažďuje protokoly, metriky a trasování z různých zdrojů. Umožňuje filtrovat, upravovat a agregovat data událostí před jejich odesláním do úložiště. Tento článek vás provede procesem použití fluent Bit k odesílání dat do databáze KQL.

Tento článek popisuje, jak načíst data pomocí Fluent Bit.

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

Požadavky

Vytvořit službu principal Microsoft Entra

Instanční objekt Microsoft Entra je možné vytvořit prostřednictvím webu azure Portal nebo prostřednictvím kódu programu, jak je znázorněno 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ělujete oprávnění tomuto služebnímu principálovi k přístupu 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

Fluent Bit předává protokoly ve formátu JSON se třemi vlastnostmi: (dynamický), (řetězec) a log (datetime).tagtimestamp

Pro každou z těchto vlastností můžete vytvořit tabulku se sloupci. Pokud máte strukturované protokoly, můžete také vytvořit tabulku s vlastnostmi protokolu namapovanými na vlastní sloupce. Další informace získáte tak, že vyberete příslušnou kartu.

Vytvoření tabulky pro příchozí protokoly z fluent Bitu:

  1. Přejděte do prostředí dotazu.

  2. Vyberte databázi, ve které chcete tabulku vytvořit.

  3. Spusťte následující .create table příkaz:

    .create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
    

    Příchozí vlastnosti JSON se automaticky mapují do správného sloupce.

Udělení oprávnění instančnímu objektu

Udělte služebnímu hlavnímu objektu z části Vytvoření služebního hlavního objektu Microsoft Entraoprávnění role služby pro ingestování databáze pro práci s databází. Podívejte se na příkladypro více informací. Zástupný symbol DatabaseName nahraďte názvem cílové databáze a ApplicationID s hodnotou AppId, kterou jste uložili při vytváření servisního hlavního objektu Microsoft Entra.

.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')

Konfigurace fluent Bitu pro odesílání protokolů do tabulky

Pokud chcete nakonfigurovat Fluent Bit pro odesílání protokolů do tabulky v Kusto, vytvořte klasický režim nebo režimu YAML konfigurační soubor s následujícími výstupními vlastnostmi:

Pole Popis Povinný Výchozí
Name Název kanálu. azure_kusto
ID nájemce ID tenanta z Vytvoření aplikačního objektu Microsoft Entra. ✔️
identifikátor klienta ID aplikace z Vytvoření služebního principála Microsoft Entra. ✔️
client_secret Hodnota tajného klíče klienta (heslo) z Vytvoření zástupce služby Microsoft Entra. ✔️
koncový bod pro ingest Zadejte hodnotu popsanou pro Ingestion_Endpoint. ✔️
database_name Název databáze, která obsahuje tabulku protokolů. ✔️
název tabulky Název tabulky z Vytvoření cílové tabulky. ✔️
referenční mapa pro ingestaci Název mapování příjmu dat z Vytvoření cílové tabulky. Pokud jste nevytvořili mapování příjmu dat, odeberte vlastnost z konfiguračního souboru.
klíč_logu Název klíče obsahu protokolu. Například log. log
tag_key Hlavní název značky. Ignorováno, pokud je include_tag_key false. tag
include_time_key Časové razítko se připojí k výstupu, pokud je povoleno. Používá vlastnost time_key. true
časový klíč Název klíče pro časové razítko v záznamech protokolu. Ignorováno, pokud include_time_key false. timestamp
ingestion_endpoint_connect_timeout Časový limit připojení různých koncových bodů Kusto v sekundách. 60s
komprese_povolena V případě povolení odešle komprimovanou datovou část HTTP (gzip) do Kusto. true
interval_aktualizace_zdrojů_ingesce Interval aktualizace prostředků příjmu dat koncového bodu Kusto v sekundách 3600
dělníci Počet pracovníků k provádění operací vyprázdnění pro tento výstup. 0

Pokud chcete zobrazit ukázkový konfigurační soubor, vyberte příslušnou kartu:

[SERVICE]
    Daemon Off
    Flush 1
    Log_Level trace
    HTTP_Server On
    HTTP_Listen 0.0.0.0
    HTTP_Port 2020
    Health_Check On

[INPUT]
    Name tail
    Path /var/log/containers/*.log
    Tag kube.*
    Mem_Buf_Limit 1MB
    Skip_Long_Lines On
    Refresh_Interval 10

[OUTPUT]
    match *
    name azure_kusto
    tenant_id <TenantId>
    client_id <ClientId>
    client_secret <AppSecret>
    ingestion_endpoint <IngestionEndpoint>
    database_name <DatabaseName>
    table_name <TableName>
    ingestion_mapping_reference <MappingName>
    ingestion_endpoint_connect_timeout <IngestionEndpointConnectTimeout>
    compression_enabled <CompressionEnabled>
    ingestion_resources_refresh_interval <IngestionResourcesRefreshInterval>

Potvrzení příjmu dat

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

    FluentBitLogs
    | count
    
  2. Pokud chcete zobrazit ukázku dat protokolu, spusťte následující dotaz:

    FluentBitLogs
    | take 100