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
- Fluent Bit.
- Cluster a databáze Azure Data Exploreru. Vytvořte cluster a databázi.
- Dotazovací prostředí. Další informace najdete v tématu Přehled integrace dotazů.
- URI vašeho Kusto clusteru pro hodnotu Ingestion_endpoint ve formátu https://ingest-<cluster>.<region>.kusto.windows.net. Další informace najdete v tématu Přidání připojení ke clusteru.
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.
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
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
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}
Z vrácených dat JSON zkopírujte
appId
password
tenant
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).tag
timestamp
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:
Přejděte do prostředí dotazu.
Vyberte databázi, ve které chcete tabulku vytvořit.
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
Jakmile data dorazí do tabulky, potvrďte přenos dat tak, že zkontrolujete počet řádků:
FluentBitLogs | count
Pokud chcete zobrazit ukázku dat protokolu, spusťte následující dotaz:
FluentBitLogs | take 100
Související obsah
- Přehled integrace dat
- Přehled
dotazovacího jazyka Kusto (KQL) - Zápis dotazů