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.
- 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.
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.
Masuk ke langganan Azure Anda melalui Azure CLI. Kemudian autentikasi di browser.
az login
Pilih langganan untuk menghosting perwakilan. Langkah ini diperlukan saat Anda memiliki beberapa langganan.
az account set --subscription YOUR_SUBSCRIPTION_GUID
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}
Dari data JSON yang dikembalikan, salin
appId
,password
, dantenant
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.
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:
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>')
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>
Setelah data tiba dalam tabel, konfirmasikan transfer data, dengan memeriksa jumlah baris:
FluentBitLogs | count
Untuk menampilkan sampel data log, jalankan kueri berikut:
FluentBitLogs | take 100
- gambaran umum integrasi data
- gambaran umum Kusto Query Language (KQL)
- Menulis kueri