Baca dalam bahasa Inggris

Bagikan melalui


Menyerap data dengan Fluent Bit ke Azure Data Explorer

Fluent Bit adalah agen sumber terbuka yang mengumpulkan log, metrik, dan jejak dari berbagai sumber. Ini memungkinkan Anda untuk memfilter, memodifikasi, dan mengagregasi data peristiwa sebelum mengirimkannya ke penyimpanan. Artikel ini memandu Anda melalui proses penggunaan Fluent Bit untuk mengirim data ke database KQL Anda.

Artikel ini memperlihatkan cara menyerap data dengan Fluent Bit.

Untuk daftar lengkap konektor data, lihat Gambaran umum konektor data.

Prasyarat

  • Sedikit fasih.
  • Kluster dan database Azure Data Explorer. Membuat kluster dan database.
  • Lingkungan kueri. Untuk informasi selengkapnya, lihat gambaran umum integrasi kueri .
  • URI kluster Kusto Anda untuk nilai Ingestion_endpoint dalam format klusterhttps://ingest-<.>.<wilayah>.kusto.windows.net. Untuk informasi selengkapnya, lihat Menambahkan koneksi kluster.

Membuat perwakilan layanan Microsoft Entra

Perwakilan layanan Microsoft Entra dapat dibuat melalui portal Microsoft Azure atau secara terprogram, seperti dalam contoh berikut.

Prinsipal layanan ini adalah identitas yang digunakan oleh konektor untuk menulis data ke tabel Anda di Kusto. Anda memberikan izin bagi perwakilan layanan ini untuk mengakses sumber daya Kusto.

  1. Masuk ke langganan Azure Anda melalui Azure CLI. Kemudian autentikasi di browser.

    az login
    
  2. Pilih langganan untuk menghosting perwakilan. Langkah ini diperlukan saat Anda memiliki beberapa langganan.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Buat perwakilan layanan. Dalam contoh ini, perwakilan layanan disebut my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Dari data JSON yang dikembalikan, salin appId, password, dan tenant untuk penggunaan di masa mendatang.

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

Anda telah membuat aplikasi Microsoft Entra dan perwakilan layanan Anda.

Buat tabel target

Fluent Bit meneruskan log dalam format JSON dengan tiga properti: log (dinamis), tag (string), dan timestamp (tanggalwaktu).

Anda dapat membuat tabel dengan kolom untuk setiap properti ini. Atau, jika Anda memiliki log terstruktur, Anda dapat membuat tabel dengan properti log yang dipetakan ke kolom kustom. Untuk mempelajari lebih lanjut, pilih tab yang relevan.

Untuk membuat tabel untuk log masuk dari Fluent Bit:

  1. Telusuri ke lingkungan kueri Anda.

  2. Pilih database tempat Anda ingin membuat tabel.

  3. Jalankan perintah.create table:

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

    Properti JSON masuk secara otomatis dipetakan ke dalam kolom yang benar.

Memberikan izin kepada perwakilan layanan

Berikan perwakilan layanan dari Membuat perwakilan layanan Microsoft Entradatabase ingestor izin peran untuk bekerja dengan database. Untuk informasi selengkapnya, lihat contoh . Ganti placeholder DatabaseName dengan nama database target dan ApplicationID dengan nilai AppId yang Anda simpan saat membuat prinsipal layanan Microsoft Entra.

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

Mengonfigurasi Fluent Bit untuk mengirim log ke tabel Anda

Untuk mengonfigurasi Fluent Bit untuk mengirim log ke tabel Anda di Kusto, buat file konfigurasi mode klasik atau mode YAML dengan properti output berikut:

Bidang KETERANGAN Diperlukan Bawaan
Nama Nama jalur. azure_kusto
ID penyewa ID penyewa dari Membuat perwakilan layanan Microsoft Entra. ✔️
ID klien ID aplikasi dari Membuat perwakilan layanan Microsoft Entra. ✔️
client_secret Nilai kunci rahasia klien (kata sandi) dari Membuat perwakilan layanan Microsoft Entra. ✔️
ingestion_endpoint Masukkan nilai seperti yang dijelaskan untuk Ingestion_Endpoint. ✔️
database_name Nama database yang berisi tabel log Anda. ✔️
nama_tabel Nama tabel yang berasal dari Buat tabel target. ✔️
referensi_pemetaan_ingesti Nama pemetaan penyerapan dari Buat tabel target. Jika Anda tidak membuat pemetaan penyerapan, hapus properti dari file konfigurasi.
log_key Nama kunci konten log. Misalnya, log. log
tag_key Nama tag kunci. Diabaikan jika include_tag_key salah. tag
include_time_key Tanda waktu ditambahkan ke output, jika diaktifkan. Menggunakan properti time_key. true
time_key Nama kunci untuk tanda waktu dalam rekaman log. Diabaikan jika include_time_key false. timestamp
batas_waktu_koneksi_titik_akhir_ingesti Batas waktu koneksi berbagai titik akhir Kusto dalam hitungan detik. 60s
kompresi_aktif Mengirim payload HTTP terkompresi (gzip) ke Kusto, jika diaktifkan. true
interval_pembaruan_sumberdaya_ingesti Interval refresh sumber daya pengambilan data pada titik akhir Kusto dalam hitungan detik. 3600
Pekerja Jumlah pekerja yang diperlukan untuk melakukan operasi flush pada output ini. 0

Untuk melihat contoh file konfigurasi, pilih tab yang relevan:

[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>

Mengonfirmasi penyerapan data

  1. Setelah data tiba dalam tabel, konfirmasikan transfer data, dengan memeriksa jumlah baris:

    FluentBitLogs
    | count
    
  2. Untuk menampilkan sampel data log, jalankan kueri berikut:

    FluentBitLogs
    | take 100