Pobieranie danych za pomocą interfejsu Fluent Bit
Fluent Bit to agent open source, który zbiera dzienniki, metryki i ślady z różnych źródeł. Umożliwia filtrowanie, modyfikowanie i agregowanie danych zdarzeń przed wysłaniem ich do magazynu. Azure Data Explorer to szybka i wysoce skalowalna usługa eksploracji danych na potrzeby danych dziennika i telemetrycznych. Ten artykuł przeprowadzi Cię przez proces wysyłania danych do bazy danych KQL przy użyciu języka Fluent Bit.
Ten artykuł obejmuje następujące zagadnienia:
Wymagania wstępne
- Fluent Bit.
- Obszar roboczy z pojemnością z włączoną usługą Microsoft Fabric
- Baza danych KQL z uprawnieniami pozyskiwania
- Zestaw zapytań KQL, który będzie później określany jako środowisko zapytań
Tworzenie tabeli do przechowywania dzienników
Fluent Bit przekazuje dzienniki w formacie JSON z trzema właściwościami: log
(dynamiczny), tag
(ciąg) i timestamp
(datetime).
Możesz utworzyć tabelę z kolumnami dla każdej z tych właściwości. Alternatywnie, jeśli masz dzienniki ustrukturyzowane, możesz utworzyć tabelę z właściwościami dziennika zamapowanymi na kolumny niestandardowe. Aby dowiedzieć się więcej, wybierz odpowiednią kartę.
Aby utworzyć tabelę dla dzienników przychodzących z poziomu fluent bitu:
Przejdź do środowiska zapytań.
Wybierz bazę danych, w której chcesz utworzyć tabelę.
Uruchom następujące
.create table
polecenie:.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
Przychodzące właściwości JSON są automatycznie mapowane na poprawną kolumnę.
Rejestrowanie aplikacji Microsoft Entra z uprawnieniami do pozyskiwania danych
Jednostkę usługi Microsoft Entra można utworzyć za pomocą witryny Azure Portal lub programowo, jak w poniższym przykładzie.
Ta jednostka usługi jest tożsamością używaną przez łącznik do zapisywania danych w tabeli w usłudze Kusto. Później przyznasz uprawnienia dla tej jednostki usługi w celu uzyskania dostępu do zasobów usługi Kusto.
Zaloguj się do subskrypcji platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure. Następnie uwierzytelnij się w przeglądarce.
az login
Wybierz subskrypcję do hostowania podmiotu zabezpieczeń. Ten krok jest wymagany, gdy masz wiele subskrypcji.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Utwórz jednostkę usługi. W tym przykładzie jednostka usługi nosi nazwę
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Z zwróconych danych JSON skopiuj wartości
appId
,password
itenant
do użycia w przyszłości.{ "appId": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn", "displayName": "my-service-principal", "name": "my-service-principal", "password": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn", "tenant": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn" }
Utworzono aplikację Microsoft Entra i jednostkę usługi.
Udzielanie uprawnień jednostce usługi
Uruchom następujące polecenie, zastępując <MyDatabase>
ciąg nazwą bazy danych:
.add database MyDatabase ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>')
To polecenie przyznaje aplikacji uprawnienia do pozyskiwania danych do tabeli. Aby uzyskać więcej informacji, zobacz Kontrola dostępu oparta na rolach.
Konfigurowanie usługi Fluent Bit w celu wysyłania dzienników do tabeli
Aby skonfigurować aplikację Fluent Bit do wysyłania dzienników do tabeli usługi Azure Data Explorer, utwórz plik konfiguracji trybu klasycznego lub pliku konfiguracji trybu YAML z następującymi właściwościami wyjściowymi:
Pole | Opis |
---|---|
Nazwa/nazwisko | azure_kusto |
Match | Wzorzec zgodny z tagami rekordów przychodzących. Uwzględniana jest wielkość liter i obsługuje znak gwiazdki (* ) jako symbol wieloznaczny. |
Tenant_Id | Identyfikator katalogu (dzierżawy) z rejestru aplikacji Microsoft Entra z uprawnieniami do pozyskiwania danych. |
Client_Id | Identyfikator aplikacji (klienta) z rejestru aplikacji Microsoft Entra z uprawnieniami do pozyskiwania danych. |
Client_Secret | Wartość klucza tajnego klienta Zarejestruj aplikację Microsoft Entra z uprawnieniami do pozyskiwania danych. |
Ingestion_Endpoint | Użyj identyfikatora URI pozyskiwania znalezionego na stronie szczegółów bazy danych KQL. Aby uzyskać więcej informacji, zobacz Kopiowanie identyfikatora URI. |
Database_Name | Nazwa bazy danych zawierającej tabelę dzienników. |
Table_Name | Nazwa tabeli z utwórz tabelę do przechowywania dzienników. |
Ingestion_Mapping_Reference | Nazwa mapowania pozyskiwania z utwórz tabelę. Jeśli nie utworzono mapowania pozyskiwania, usuń właściwość z pliku konfiguracji. |
Aby wyświetlić przykładowy plik konfiguracji, wybierz odpowiednią kartę:
[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]
Name azure_kusto
Match *
Tenant_Id azure-tenant-id
Client_Id azure-client-id
Client_Secret azure-client-secret
Ingestion_Endpoint azure-data-explorer-ingestion-endpoint
Database_Name azure-data-explorer-database-name
Table_Name azure-data-explorer-table-name
Sprawdź, czy dane wylądowały w tabeli
Po zakończeniu konfiguracji dzienniki powinny pojawić się w tabeli.
Aby sprawdzić, czy dzienniki są pozyskiwane, uruchom następujące zapytanie:
FluentBitLogs | count
Aby wyświetlić przykład danych dziennika, uruchom następujące zapytanie:
FluentBitLogs | take 100