Adatok betöltése a Fluent Bittel az Azure Data Explorerbe

Fluent Bit egy nyílt forráskódú ügynök, amely naplókat, metrikákat és nyomkövetéseket gyűjt különböző forrásokból. Lehetővé teszi az eseményadatok szűrését, módosítását és összesítését, mielőtt a tárolóba küldené azokat. Ez a cikk végigvezeti a Fluent Bit kQL-adatbázisba való adatküldési folyamatán.

Ez a cikk bemutatja, hogyan lehet adatokat betölteni a Fluent Bit használatával.

Az adatösszekötők teljes listáját az Adatösszekötők áttekintésecímű témakörben találja.

Előfeltételek

Microsoft Entra szolgáltatásnév létrehozása

A Microsoft Entra szolgáltatásnevet az Azure Portalon vagy programozott módon is létrehozhatja, ahogyan az alábbi példában is látható.

Az összekötő ezt a szolgáltatási főnevet használja identitásként, hogy adatokat írjon be a Kusto táblába. Engedélyeket ad a szolgáltatásazonosítónak a Kusto-erőforrások eléréséhez.

  1. Jelentkezzen be az Azure-előfizetésbe az Azure CLI-vel. Ezután hitelesítés a böngészőben.

    az login
    
  2. Válassza ki az előfizetést a fő szolgáltatás üzemeltetéséhez. Erre a lépésre akkor van szükség, ha több előfizetéssel rendelkezik.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Hozza létre a szolgáltatásnevet. Ebben a példában a szolgáltatásnév neve my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. A visszaadott JSON-adatokból másolja ki a appId, passwordés tenant későbbi használatra.

    {
      "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"
    }
    

Létrehozta a Microsoft Entra-alkalmazást és a szolgáltatásnevet.

Céltábla létrehozása

Fluent Bit három tulajdonsággal továbbítja a naplókat JSON formátumban: log (dinamikus), tag (karakterlánc) és timestamp (időbélyeg).

Mindegyik tulajdonsághoz létrehozhat oszlopokat tartalmazó táblázatot. Ha rendelkezik strukturált naplókkal, létrehozhat egy táblát, ahol a naplótulajdonságok egyéni oszlopokra vannak leképezve. További információért válassza a megfelelő lapot.

Tábla létrehozása bejövő naplókhoz a Fluent Bitből:

  1. Lépjen a lekérdezési környezetbe.

  2. Jelölje ki azt az adatbázist, amelyben létre szeretné hozni a táblát.

  3. Futtassa a következő .create table parancsot:

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

    A bejövő JSON-tulajdonságok automatikusan a megfelelő oszlopba vannak leképezve.

Engedélyek megadása a szolgáltatási főazonosítónak

Adjon a szolgáltatásfőnöknek Microsoft Entra-szolgáltatásfőnök létrehozásaadatbázis ingestor szerepkör-engedélyeket az adatbázissal való munkavégzéshez. További információ: Példák. Cserélje le a helyőrzőt DatabaseName a céladatbázis nevére, és ApplicationID a Microsoft Entra szolgáltatásnév létrehozásakor mentett AppId értékre.

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

A Fluent Bit konfigurálása naplók táblába való küldéséhez

Ha úgy szeretné konfigurálni a Fluent Bitet, hogy naplókat küldjön a kusto-i táblába, hozzon létre egy klasszikus módú vagy YAML-módot konfigurációs fájlt a következő kimeneti tulajdonságokkal:

Mező Leírás Szükséges Alapértelmezett
Név A csővezeték neve. azure_kusto
bérlő_azonosító A Microsoft Entra szolgáltatásnév létrehozásabérlőazonosítója. ✔️
kliens_azonosító A Microsoft Entra szolgáltatásnév létrehozása alkalmazásazonosítója. ✔️
ügyfél_titok A Microsoft Entra szolgáltatásnév létrehozásasorán megadott ügyfél titkos kulcs értéke (jelszó). ✔️
kezelt_azonosság_kliens_azonosító A hitelesítéshez használni kívánt felügyelt identitás ügyfélazonosítója. ✔️
adatfogadási végpont Adja meg a Ingestion_Endpointmegadott értéket. ✔️
adatbázis_név A naplótáblát tartalmazó adatbázis neve. ✔️
table_name A tábla neve Céltábla létrehozása. ✔️
adatbetöltési_térkép_hivatkozás A betöltési leképezés neve Céltábla létrehozása. Ha nem létrehozott betöltési leképezést, távolítsa el a tulajdonságot a konfigurációs fájlból.
log_key A naplótartalom kulcsneve. Például log. log
tartalmazza_a_címke_kulcsot Ha engedélyezve van, a rendszer hozzáfűzi a címkét a kimenethez. On
címke_kulcs A címke kulcsneve. Figyelmen kívül hagyja, ha include_tag_key hamis. tag
időkulcs_beillesztése Ha engedélyezve van, egy időbélyeg van hozzáfűzve a kimenethez. A time_key tulajdonságot használja. On
idő_kulcs Az időbélyeg kulcsneve a naplórekordokban. Akkor figyelmen kívül hagyja, ha include_time_key hamis. timestamp
adatbeviteli_végpont_kapcsolat_időtúllépés A különböző Kusto-végpontoknál beállított kapcsolati időtúllépés másodpercekben. 60
tömörítés_engedélyezve Ha engedélyezve van, tömörített HTTP-hasznos adatokat (gzip) küld a Kusto-nak. true
adatbevitel_erőforrások_frissítési_intervallum A betöltési erőforrások másodpercek alatt frissítik a Kusto-végpont időközét.
Munkavállalók Azon munkások száma, akik végeznek kiöblítési műveleteket ehhez a kimenethez. 0
pufferelés_engedélyezve Ha engedélyezve van, puffereli az adatokat a lemezre, mielőtt betöltené a Kusto-ba. Off
buffer_útvonal Megadja annak a könyvtárnak a helyét, ahol a pufferelt adatok tárolódnak, ha buffering_enabled van On. /tmp/fluent-bit/azure-kusto/
feltöltési időkorlát A feltöltések időtúllépését adja meg, ha buffering_enabledOn az érték. Az ennél régebbi fájlok akkor is betölthetők, ha a méretkorlát alatt vannak. 30m
feltöltési_fájlméret Meghatározza a fájl maximális méretét feltöltéskor, ha buffering_enabledOn. 200MB
azure_kusto_buffer_key Az Azure Kusto pufferkulcsa a beépülő modulok példányainak azonosításához.buffering_enabledOn Többszörös Azure Kusto-kimenethez pufferelést igényel. key
adatmappa_korlát_méret A könyvtár maximális mérete, ahol a pufferelt adatok tárolódnak, ha buffering_enabled értéke On. 8GB
puffer_fájl_törlés_korán Amikor buffering_enabled van On, döntsük el, hogy a sikeres bloblétrehozást követően korán töröljük-e a pufferelt fájlt. Off
unify_tag Egyetlen pufferfájlt hoz létre, ha buffering_enabled van On. On
blob_uri_hossz Állítsa be a létrehozott blob URI hosszát a Kusto-ba való betöltés előtt. 64
tervező_maximális_újrapróbálkozások Amikor buffering_enabledOn, állítsa be az adatbetöltéshez szükséges újrapróbálkozások maximális számát az ütemező használatával. 3
delete_on_max_upload_error (törlés a maximális feltöltési hiba esetén) Amikor buffering_enabled van On, arról kell dönteni, hogy maximális feltöltési hiba esetén töröljük-e a pufferfájlt. Off
IO_timeout Állítsa be a HTTP IO feltöltési időkorlátot. 60s

Egy példakonfigurációs fájl megtekintéséhez válassza a megfelelő lapot:

[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]
    [OUTPUT]
    Match *
    Name azure_kusto
    Tenant_Id <app_tenant_id>
    Client_Id <app_client_id>
    Client_Secret <app_secret>
    Ingestion_Endpoint https://ingest-<cluster>.<region>.kusto.windows.net
    Database_Name <database_name>
    Table_Name <table_name>
    Ingestion_Mapping_Reference <mapping_name>
    ingestion_endpoint_connect_timeout <ingestion_endpoint_connect_timeout>
    compression_enabled <compression_enabled>
    ingestion_resources_refresh_interval <ingestion_resources_refresh_interval>
    buffering_enabled On
    upload_timeout 2m
    upload_file_size 125M
    azure_kusto_buffer_key kusto1
    buffer_file_delete_early Off
    unify_tag On
    buffer_dir /var/log/
    store_dir_limit_size 16GB
    blob_uri_length 128
    scheduler_max_retries 3
    delete_on_max_upload_error Off
    io_timeout 60s

Adatbetöltés megerősítése

  1. Miután az adatok megérkeztek a táblába, erősítse meg az adattovábbítást a sorok számának ellenőrzésével:

    FluentBitLogs
    | count
    
  2. A naplóadatok mintájának megtekintéséhez futtassa a következő lekérdezést:

    FluentBitLogs
    | take 100