Adatok betöltése a Telegrafból az Azure Data Explorer
Fontos
Ez az összekötő használható a Microsoft Fabric valós idejű elemzéseiben . Használja a cikkben található utasításokat a következő kivételekkel:
- Ha szükséges, hozzon létre adatbázisokat a KQL-adatbázis létrehozása című cikk utasításait követve.
- Ha szükséges, hozzon létre táblákat az Üres tábla létrehozása című témakör utasításait követve.
- Lekérdezési vagy betöltési URI-k lekérése az URI másolása című témakör utasításait követve.
- Lekérdezések futtatása KQL-lekérdezéskészletben.
Az Azure Data Explorer támogatja a Telegrafból történő adatbetöltést. A Telegraf egy nyílt forráskód, könnyű, minimális memórianyomtatási ügynök telemetriai adatok gyűjtésére, feldolgozására és írására, beleértve a naplókat, metrikákat és IoT-adatokat. A Telegraf több száz bemeneti és kimeneti beépülő modult támogat. Széles körben használják és támogatják a nyílt forráskód közösség. Az Azure Data Explorer kimeneti beépülő modul a Telegraf összekötőjeként szolgál, és támogatja az adatok betöltését számos típusú bemeneti beépülő modulból az Azure Data Explorer.
Előfeltételek
- Azure-előfizetés. Hozzon létre egy ingyenes Azure-fiókot.
- Egy Azure-Data Explorer-fürt és -adatbázis. Hozzon létre egy fürtöt és egy adatbázist.
- Telegraf. A Telegraf gazdagépe virtuális gépen vagy tárolóban. A Telegraf helyileg üzemeltethető, ahol a figyelt alkalmazás vagy szolgáltatás üzembe van helyezve, vagy távolról egy dedikált monitorozási számításon/tárolón.
Támogatott hitelesítési módszerek
A beépülő modul a következő hitelesítési módszereket támogatja:
Microsoft Entra alkalmazáskulcsokkal vagy tanúsítványokkal rendelkező alkalmazásokat.
- Az alkalmazások Microsoft Entra-azonosítóban való létrehozásával és regisztrálásával kapcsolatos információkért lásd: Alkalmazás regisztrálása.
- További információ a szolgáltatásnevekről: Alkalmazás- és szolgáltatásnév-objektumok Microsoft Entra-azonosítóban.
felhasználói jogkivonatok Microsoft Entra
- Lehetővé teszi, hogy a beépülő modul felhasználóként hitelesítse magát. Ezt a módszert csak fejlesztési célokra javasoljuk.
Azure Managed Service Identity- (MSI-) jogkivonat
- Ez az előnyben részesített hitelesítési módszer, ha a Telegrafot egy támogató Azure-környezetben futtatja, például az Azure Virtual Machines.
Bármelyik módszert is használja, a kijelölt rendszerbiztonsági taghoz hozzá kell rendelni az Adatbázis-felhasználó szerepkört az Azure Data Explorer. Ez a szerepkör lehetővé teszi, hogy a beépülő modul létrehozza az adatok betöltéséhez szükséges táblákat. Ha a beépülő modul a-val create_tables=false
van konfigurálva, a kijelölt rendszerbiztonsági tagnak legalább adatbázis-betöltési szerepkörrel kell rendelkeznie.
Hitelesítési módszer konfigurálása
A beépülő modul a környezeti változók adott konfigurációit ellenőrzi annak meghatározásához, hogy melyik hitelesítési módszert kell használnia. A konfigurációk kiértékelése a megadott sorrendben történik, és a rendszer az első észlelt konfigurációt használja. Ha a rendszer nem észlel érvényes konfigurációt, a beépülő modul hitelesítése sikertelen lesz.
A beépülő modul hitelesítésének konfigurálásához állítsa be a választott hitelesítési módszernek megfelelő környezeti változókat:
Ügyfél-hitelesítő adatok (Microsoft Entra alkalmazásjogkivonatok): Microsoft Entra alkalmazásazonosítót és titkos kódot.
-
AZURE_TENANT_ID
: A hitelesítéshez használt Microsoft Entra bérlőazonosító. -
AZURE_CLIENT_ID
: Egy alkalmazásregisztráció ügyfél-azonosítója a bérlőben. -
AZURE_CLIENT_SECRET
: Az alkalmazásregisztrációhoz létrehozott titkos ügyfélkód.
-
Ügyféltanúsítvány (Microsoft Entra alkalmazásjogkivonatok): Microsoft Entra alkalmazásazonosító és egy X.509-tanúsítvány.
-
AZURE_TENANT_ID
: A hitelesítéshez használt Microsoft Entra bérlőazonosító. -
AZURE_CERTIFICATE_PATH
: A tanúsítvány és a titkos kulcspár elérési útja PEM vagy PFX formátumban, amely hitelesíti az alkalmazásregisztrációt. -
AZURE_CERTIFICATE_PASSWORD
: A tanúsítványhoz beállított jelszó.
-
Erőforrás-tulajdonos jelszava (Microsoft Entra felhasználói jogkivonatok): Microsoft Entra felhasználó és jelszó. Nem javasoljuk, hogy ezt a támogatási típust használja. Ha interaktív bejelentkezésre van szüksége, használja az eszközbejelentkezést.
-
AZURE_TENANT_ID
: A hitelesítéshez használt Microsoft Entra bérlőazonosító. -
AZURE_CLIENT_ID
: Egy alkalmazásregisztráció ügyfél-azonosítója a bérlőben. -
AZURE_USERNAME
: Egy Microsoft Entra felhasználói fiók felhasználóneve, más néven upn. -
AZURE_PASSWORD
: A Microsoft Entra felhasználói fiók jelszava. Vegye figyelembe, hogy ez nem támogatja az MFA-t engedélyező fiókokat.
-
Azure Managed Service Identity: Hitelesítő adatok kezelésének delegálása a platformra. Ez a módszer megköveteli, hogy a kód az Azure-ban fusson, például virtuális gépen. Minden konfigurációt az Azure kezel. További információ: Azure Managed Service Identity. Ez a módszer csak az Azure Resource Manager használatakor érhető el.
A Telegraf konfigurálása
A Telergraf egy konfigurációalapú ügynök. Elsőként telepítenie kell a Telegrafot, és konfigurálnia kell a szükséges bemeneti és kimeneti beépülő modulokat. A konfigurációs fájl alapértelmezett helye a következő:
- Windows esetén : C:\Program Files\Telegraf\telegraf.conf
- Linux esetén: etc/telegraf/telegraf.conf
Az Azure Data Explorer kimeneti beépülő modul engedélyezéséhez az automatikusan létrehozott konfigurációs fájl következő szakaszát kell megszüntetnie:
[[outputs.azure_data_explorer]]
## The URI property of the Azure Data Explorer resource on Azure
## ex: https://myadxresource.australiasoutheast.kusto.windows.net
# endpoint_url = ""
## The Azure Data Explorer database that the metrics will be ingested into.
## The plugin will NOT generate this database automatically, it's expected that this database already exists before ingestion.
## ex: "exampledatabase"
# database = ""
## Timeout for Azure Data Explorer operations, default value is 20 seconds
# timeout = "20s"
## Type of metrics grouping used when ingesting to Azure Data Explorer
## Default value is "TablePerMetric" which means there will be one table for each metric
# metrics_grouping_type = "TablePerMetric"
## Name of the single table to store all the metrics (Only needed if metrics_grouping_type is "SingleTable").
# table_name = ""
## Creates tables and relevant mapping if set to true(default).
## Skips table and mapping creation if set to false, this is useful for running telegraf with the least possible access permissions i.e. table ingestor role.
# create_tables = true
Támogatott betöltési típusok
A beépülő modul támogatja a felügyelt (streamelési) és az üzenetsoros (kötegelt) betöltést. Az alapértelmezett betöltési típus várólistán van.
Fontos
A felügyelt adatbetöltés használatához engedélyeznie kell a streambetöltést a fürtön.
A beépülő modul betöltési típusának konfigurálásához módosítsa az automatikusan létrehozott konfigurációs fájlt az alábbiak szerint:
## Ingestion method to use.
## Available options are
## - managed -- streaming ingestion with fallback to batched ingestion or the "queued" method below
## - queued -- queue up metrics data and process sequentially
# ingestion_type = "queued"
Betöltött adatok lekérdezése
Az alábbi példák az SQL és a syslog bemeneti beépülő modullal, valamint az Azure Data Explorer kimeneti beépülő moduljával gyűjtött adatokra mutatnak be példákat. Minden bemeneti módszerhez tartozik egy példa az adatátalakítások és -lekérdezések használatára az Azure Data Explorer.
SQL-bemenet beépülő modul
Az alábbi táblázat az SQL bemeneti beépülő modulja által gyűjtött mintametrikaadatokat mutatja be:
name | tags | időbélyeg | fields |
---|---|---|---|
sqlserver_database_io | {"database_name":"azure-sql-db2","file_type":"DATA","host":"adx-vm","logical_filename":"tempdev","measurement_db_type":"AzureSQLDB","physical_filename":"tempdb.mdf","replica_updateability":"READ_WRITE","sql_instance":"adx-sql-server"} | 2021-09-09T13:51:20Z | {"current_size_mb":16,"database_id":2,"file_id":1,"read_bytes":2965504,"read_latency_ms":68,"reads":47,"" rg_read_stall_ms":42,"rg_write_stall_ms":0,"space_used_mb":0,"write_bytes":1220608,"write_latency_ms":103,"writes":149} |
sqlserver_waitstats | {"database_name":"azure-sql-db2","host":"adx-vm","measurement_db_type":"AzureSQLDB","replica_updateability":"READ_WRITE","sql_instance":"adx-sql-server","wait_category":"Worker Thread","wait_type":"THREADPOOL"} | 2021-09-09T13:51:20Z | {"max_wait_time_ms":15,"resource_wait_ms":4469,"signal_wait_time_ms":0,"wait_time_ms":4469,"waiting_tasks_count":1464} |
Mivel az összegyűjtött metrikaobjektum egy összetett típus, a mezők és címkék oszlopai dinamikus adattípusokként vannak tárolva. Ezeket az adatokat többféleképpen is lekérdezheti, például:
JSON-attribútumok közvetlen lekérdezése: A JSON-adatokat nyers formátumban kérdezheti le elemzés nélkül.
1\. példa
Tablename | where name == "sqlserver_azure_db_resource_stats" and todouble(fields.avg_cpu_percent) > 7
2\. példa
Tablename | distinct tostring(tags.database_name)
Megjegyzés
Ez a megközelítés nagy mennyiségű adat használata esetén befolyásolhatja a teljesítményt. Ilyen esetekben használja a frissítési szabályzat megközelítését.
Frissítési szabályzat használata: Dinamikus adattípusú oszlopok átalakítása frissítési szabályzat használatával. Ezt a módszert nagy mennyiségű adat lekérdezéséhez javasoljuk.
// Function to transform data .create-or-alter function Transform_TargetTableName() { SourceTableName | mv-apply fields on (extend key = tostring(bag_keys(fields)[0])) | project fieldname=key, value=todouble(fields[key]), name, tags, timestamp } // Create destination table with above query's results schema (if it doesn't exist already) .set-or-append TargetTableName <| Transform_TargetTableName() | take 0 // Apply update policy on destination table .alter table TargetTableName policy update @'[{"IsEnabled": true, "Source": "SourceTableName", "Query": "Transform_TargetTableName()", "IsTransactional": true, "PropagateIngestionProperties": false}]'
Syslog bemeneti beépülő modul
Az alábbi táblázat a Syslog bemeneti beépülő modulja által gyűjtött mintametrikaadatokat mutatja be:
name | tags | időbélyeg | fields |
---|---|---|---|
syslog | {"appname":"azsecmond","facility":"user","host":"adx-linux-vm","hostname":"adx-linux-vm","severity":"info"} | 2021-09-20T14:36:44Z | {"facility_code":1,"message":" 2021/09/20 14:36:44.890110 Nem sikerült csatlakozni az mdsd-hez: a unix /var/run tárcsázása /mdsd/default_djson.socket: connect: no such file or directory","procid":"2184","severity_code":6,"timestamp":"1632148604890477000","version":1} |
syslog | {"appname":"CRON","facility":"authpriv","host":"adx-linux-vm","hostname":"adx-linux-vm","severity":"info"} | 2021-09-20T14:37:01Z | {"facility_code":10,"message":" pam_unix(cron:session): a (uid=0)","procid":"26446","severity_code":6,"timestamp":"1632148621120781000","version":1} |
A dinamikus oszlopok simítására többféleképpen is lehetőség van a kiterjesztő operátor vagy bag_unpack() beépülő modul használatával. Bármelyiket használhatja a frissítési szabályzat Transform_TargetTableName() függvényben.
A kiterjesztő operátor használata: Javasoljuk, hogy használja ezt a megközelítést, mivel gyorsabb és robusztusabb. Még ha a séma megváltozik is, az nem fogja megszakítani a lekérdezéseket vagy az irányítópultokat.
Tablename | extend facility_code=toint(fields.facility_code), message=tostring(fields.message), procid= tolong(fields.procid), severity_code=toint(fields.severity_code), SysLogTimestamp=unixtime_nanoseconds_todatetime(tolong(fields.timestamp)), version= todouble(fields.version), appname= tostring(tags.appname), facility= tostring(tags.facility),host= tostring(tags.host), hostname=tostring(tags.hostname), severity=tostring(tags.severity) | project-away fields, tags
Bag_unpack() beépülő modul használata: Ez a módszer automatikusan kicsomagolja a dinamikus típusú oszlopokat. A forrásséma módosítása problémákat okozhat az oszlopok dinamikus kibontásakor.
Tablename | evaluate bag_unpack(tags, columnsConflict='replace_source') | evaluate bag_unpack(fields, columnsConflict='replace_source')