Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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. Ten artykuł przeprowadzi Cię przez proces wysyłania danych do bazy danych KQL przy użyciu języka Fluent Bit.
W tym artykule pokazano, jak pozyskiwać dane za pomocą Fluent Bit.
Aby uzyskać pełną listę łączników danych, zobacz Omówienie łączników danych.
Wymagania wstępne
- Fluent Bit.
- Baza danych i klaster usługi Azure Data Explorer. Utwórz klaster i bazę danych.
- Środowisko zapytań. Aby uzyskać więcej informacji, zobacz Integracja zapytań — omówienie.
- Identyfikator URI klastra Kusto dla wartości Ingestion_endpoint w formacie klastra https://ingest-<>.<region>.kusto.windows.net. Aby uzyskać więcej informacji, zobacz Dodawanie połączenia klastra.
Tworzenie jednostki usługi Entra firmy Microsoft
Jednostkę usługi Microsoft Entra można utworzyć za pomocą witryny Azure Portal lub programowo, jak w poniższym przykładzie.
Ta główna jednostka usługi to tożsamość używana przez łącznik do zapisywania danych w tabeli w Kusto. 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 loginWybierz subskrypcję do hostowania podmiotu zabezpieczeń. Ten krok jest wymagany, gdy masz wiele subskrypcji.
az account set --subscription YOUR_SUBSCRIPTION_GUIDUtwó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,passworditenantdo użycia w przyszłości.{ "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" }
Utworzono aplikację Microsoft Entra i jednostkę usługi.
Tworzenie tabeli docelowej
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 tablepolecenie:.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)Przychodzące właściwości JSON są automatycznie mapowane na poprawną kolumnę.
Udzielanie uprawnień jednostce usługi
Udziel jednostce usługi z Utwórz jednostkę usługi Microsoft Entrauprawnienia roli ingestor bazy danych do pracy z bazą danych. Aby uzyskać więcej informacji, zobacz Przykłady. Zastąp symbol zastępczy DatabaseName nazwą docelowej bazy danych i symbol zastępczy ApplicationID wartością AppId, którą zapisałeś podczas tworzenia inspektora usługi Microsoft Entra.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')
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 w usłudze Kusto, utwórz tryb klasyczny lub tryb YAML pliku konfiguracji z następującymi właściwościami wyjściowymi:
| Pole | Opis | Wymagane | Domyślny |
|---|---|---|---|
| Nazwa/nazwisko | Nazwa rurociągu. | azure_kusto |
|
| identyfikator_najemcy | Identyfikator dzierżawy z Utwórz jednostkę usługi Microsoft Entra. | ✔️ | |
| identyfikator_klienta | Identyfikator aplikacji z Utworzenie jednostki usługi Microsoft Entra. | ✔️ | |
| tajny_klucz_klienta | Wartość klucza tajnego klienta (hasło) z Utwórz podmiot usługi Microsoft Entra. | ✔️ | |
| id_klienta_zarządzanej_tożsamości | Identyfikator klienta zarządzanej tożsamości używany do uwierzytelniania. | ✔️ | |
| punkt odbioru danych | Wprowadź wartość zgodnie z opisem dla Ingestion_Endpoint. | ✔️ | |
| nazwa_bazy_danych | Nazwa bazy danych zawierającej tabelę dzienników. | ✔️ | |
| nazwa_tabeli | Nazwa tabeli z Utwórz tabelę docelową. | ✔️ | |
| odniesienie_do_mapowania_importu | Nazwa mapowania pozyskiwania z Utwórz tabelę docelową. Jeśli nie utworzono mapowania pozyskiwania, usuń właściwość z pliku konfiguracji. | ||
| klucz_logu | Kluczowa nazwa zawartości dziennika. Na przykład log. |
log |
|
| włącz_klucz_tagu | W przypadku włączenia tag jest dołączany do danych wyjściowych. | On |
|
| klucz_tag | Kluczowa nazwa tagu. Ignorowane, jeśli include_tag_key ma wartość false. |
tag |
|
| include_time_key | Znacznik czasu jest dołączany do danych wyjściowych, jeśli jest włączony. Używa właściwości time_key. |
On |
|
| klucz_czasu | Nazwa klucza znacznika czasu w rekordach dziennika. Ignorowane, jeśli include_time_key jest fałszywe. |
timestamp |
|
| czas oczekiwania na połączenie z punktem końcowym przyjmowania | Limit czasu oczekiwania na połączenie różnych punktów końcowych Kusto w sekundach. | 60 |
|
| kompresja_włączona | Wysyła skompresowany ładunek HTTP (gzip) do usługi Kusto, jeśli jest włączony. | true |
|
| interwał_odświeżania_zasobów_ingestion | Interwał odświeżania zasobów do pozyskiwania danych w punkcie końcowym usługi Kusto w sekundach. | ||
| Pracownicy | Liczba pracowników do wykonywania operacji czyszczenia dla tego wyniku. | 0 |
|
| buforowanie_włączone | Jeśli to ustawienie jest włączone, dane są buforowane na dysku przed przesłaniem do Kusto. | Off |
|
| ścieżka_buforu | Określa lokalizację katalogu, w którym buforowane dane będą przechowywane, jeśli buffering_enabled ma wartość On. |
/tmp/fluent-bit/azure-kusto/ |
|
| upload_timeout | Określa limit czasu dla przesyłania, jeśli buffering_enabled ma wartość On. Pliki starsze niż ten są przetwarzane, nawet jeśli są poniżej limitu rozmiaru. |
30m |
|
| rozmiar_pliku_do_przesłania | Określa maksymalny rozmiar pliku, który ma zostać przekazany, jeśli buffering_enabled ma wartość On. |
200MB |
|
| azure_kusto_buffer_key | Klucz buforujący w Azure Kusto do identyfikacji wystąpień wtyczek, gdy buffering_enabled jest On. Wymagane dla wielu danych wyjściowych usługi Azure Kusto z buforowaniem. |
key |
|
| maksymalny_rozmiar_katalogu_sklepu | Maksymalny rozmiar katalogu, w którym buforowane dane są przechowywane, jeśli buffering_enabled ma wartość On. |
8GB |
|
| wczesne_usunięcie_pliku_bufora | Gdy buffering_enabled jest On, czy wcześnie usunąć buforowany plik po pomyślnym utworzeniu obiektu blob. |
Off |
|
| uogólnij_tag | Tworzy pojedynczy plik buforu, gdy buffering_enabled ma wartość On. |
On |
|
| długość_uri_bloba | Ustaw długość wygenerowanego adresu URI obiektu blob przed przesłaniem do usługi Kusto. | 64 |
|
| scheduler_max_retries | Gdy buffering_enabled jest On, ustaw maksymalną liczbę ponownych prób pozyskiwania za pomocą harmonogramu. |
3 |
|
| usuń_przy_błędzie_max_ładowania | Gdy buffering_enabled jest On, czy usunąć plik buforu w przypadku maksymalnych błędów przesyłania. |
Off |
|
| limit czasu operacji I/O | Skonfiguruj limit czasu dla operacji we/wy HTTP podczas przesyłania. | 60s |
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]
[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
Potwierdzanie pozyskiwania danych
Po nadejściu danych w tabeli potwierdź transfer danych, sprawdzając liczbę wierszy:
FluentBitLogs | countAby wyświetlić przykład danych dziennika, uruchom następujące zapytanie:
FluentBitLogs | take 100
Powiązana zawartość
- omówienie integracji danych
- omówienie języka Kusto Query Language (KQL)
- Pisanie zapytań