Příjem dat z Telegrafu do Azure Data Exploreru
Důležité
Tento konektor se dá použít v sadě Microsoft Fabric v reálném čase. Postupujte podle pokynů v tomto článku s následujícími výjimkami:
- V případě potřeby vytvořte databáze pomocí pokynů v části Vytvoření databáze KQL.
- V případě potřeby vytvořte tabulky podle pokynů v části Vytvoření prázdné tabulky.
- Pomocí pokynů v identifikátoru URI pro kopírování získejte identifikátory URI pro dotazy nebo příjem dat.
- Spouštění dotazů v sadě dotazů KQL
Azure Data Explorer podporuje příjem dat z Telegrafu. Telegraf je opensourcový, jednoduchý a minimální agent pro tisk zápatí paměti pro shromažďování, zpracování a zápis telemetrických dat, včetně protokolů, metrik a dat IoT. Telegraf podporuje stovky vstupních a výstupních modulů plug-in. Je široce využívaná a dobře podporovaná opensourcovou komunitou. Výstupní modul plug-in Azure Data Exploreru slouží jako konektor z Telegrafu a podporuje příjem dat z mnoha typů vstupních modulů plug-in do Azure Data Exploreru.
Požadavky
- Předplatné Azure. Vytvořte bezplatný účet Azure.
- Cluster a databáze Azure Data Exploreru. Vytvořte cluster a databázi.
- Telegraf. Hostování Telegrafu ve virtuálním počítači nebo kontejneru Telegraf je možné hostovat místně, kde je nasazená aplikace nebo služba monitorovaná, nebo vzdáleně ve vyhrazeném výpočetním prostředí nebo kontejneru monitorování.
Podporované metody ověřování
Modul plug-in podporuje následující metody ověřování:
Aplikace Microsoft Entra s klíči aplikací nebo certifikáty
- Informace o tom, jak vytvořit a zaregistrovat aplikaci v Microsoft Entra ID, najdete v tématu Registrace aplikace.
- Informace o instančních objektech naleznete v tématu Objekty aplikace a instanční objekty v Microsoft Entra ID.
Tokeny uživatele Microsoft Entra
- Umožňuje modulu plug-in ověřit, jako je uživatel. Tuto metodu doporučujeme používat pouze pro účely vývoje.
Token Identity spravované služby Azure (MSI)
- Toto je upřednostňovaná metoda ověřování, pokud používáte Telegraf v podpůrném prostředí Azure, jako je Azure Virtual Machines.
Ať už použijete jakoukoli metodu, musí mít určený objekt zabezpečení přiřazenou roli Uživatel databáze v Azure Data Exploreru. Tato role umožňuje modulu plug-in vytvořit tabulky potřebné k ingestování dat. Pokud je modul plug-in nakonfigurovaný create_tables=false
, musí mít určený objekt zabezpečení alespoň roli Ingestor databáze.
Konfigurace metody ověřování
Modul plug-in zkontroluje konkrétní konfigurace proměnných prostředí a určí, jakou metodu ověřování použít. Konfigurace se posuzují v zadaném pořadí a použije se první zjištěná konfigurace. Pokud se nezjistí platná konfigurace, modul plug-in se nepodaří ověřit.
Pokud chcete nakonfigurovat ověřování pro modul plug-in, nastavte příslušné proměnné prostředí pro zvolenou metodu ověřování:
Přihlašovací údaje klienta (tokeny aplikace Microsoft Entra):: ID a tajný kód aplikace Microsoft Entra.
AZURE_TENANT_ID
: ID tenanta Microsoft Entra použité k ověřování.AZURE_CLIENT_ID
: ID klienta registrace aplikace v tenantovi.AZURE_CLIENT_SECRET
: Tajný klíč klienta vygenerovaný pro registraci aplikace.
Klientský certifikát (tokeny aplikace Microsoft Entra): ID aplikace Microsoft Entra a certifikát X.509.
AZURE_TENANT_ID
: ID tenanta Microsoft Entra použité k ověřování.AZURE_CERTIFICATE_PATH
: Cesta k páru certifikátů a privátních klíčů ve formátu PEM nebo PFX, která může ověřit registraci aplikace.AZURE_CERTIFICATE_PASSWORD
: Heslo nastavené pro certifikát.
Heslo vlastníka prostředku (tokeny uživatele Microsoft Entra): Uživatel a heslo Microsoft Entra. Tento typ udělení nedoporučujeme používat. Pokud potřebujete interaktivní přihlášení, použijte přihlášení zařízení.
AZURE_TENANT_ID
: ID tenanta Microsoft Entra použité k ověřování.AZURE_CLIENT_ID
: ID klienta registrace aplikace v tenantovi.AZURE_USERNAME
: Uživatelské jméno, označované také jako upn, uživatelského účtu Microsoft Entra.AZURE_PASSWORD
: Heslo uživatelského účtu Microsoft Entra. Mějte na paměti, že nepodporuje účty s povoleným vícefaktorovým ověřováním.
Identita spravované služby Azure: Delegujte správu přihlašovacích údajů na platformu. Tato metoda vyžaduje, aby se kód spouštěl v Azure, například virtuální počítač. Azure zpracovává veškerou konfiguraci. Další informace najdete v tématu Identita spravované služby Azure. Tato metoda je k dispozici pouze při použití Azure Resource Manageru.
Konfigurace Telegrafu
Telergraf je agent řízený konfigurací. Abyste mohli začít, musíte nainstalovat Telegraf a nakonfigurovat požadované vstupní a výstupní moduly plug-in. Výchozí umístění konfiguračního souboru je následující:
- Pro Windows: C:\Program Files\Telegraf\telegraf.conf
- Pro Linux: etc/telegraf/telegraf.conf
Pokud chcete povolit výstupní modul plug-in Azure Data Exploreru, musíte odkomentovat následující část v automaticky generovaném konfiguračním souboru:
[[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
Podporované typy příjmu dat
Modul plug-in podporuje spravované (streamování) a příjem dat ve frontě (dávkování). Výchozí typ příjmu dat je zařazen do fronty.
Důležité
Pokud chcete používat spravovaný příjem dat, musíte povolit příjem dat streamování ve vašem clusteru.
Pokud chcete pro modul plug-in nakonfigurovat typ příjmu dat, upravte automaticky vygenerovaný konfigurační soubor následujícím způsobem:
## 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"
Dotazování přijatých dat
Tady jsou příklady dat shromážděných pomocí modulů plug-in SQL a syslog input spolu s výstupním modulem plug-in Azure Data Exploreru. Pro každou metodu zadávání existuje příklad použití transformací dat a dotazů v Azure Data Exploreru.
Vstupní modul plug-in SQL
Následující tabulka ukazuje ukázková data metrik shromažďovaná vstupním modulem plug-in SQL:
name | značky | časové razítko | pole |
---|---|---|---|
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":"Pracovní vlákno","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} |
Vzhledem k tomu, že objekt shromážděných metrik je složitý typ, jsou sloupce polí a značek uloženy jako dynamické datové typy. Existuje mnoho způsobů, jak se na tato data dotazovat, například:
Dotazy na atributy JSON přímo: Můžete dotazovat data JSON v nezpracované podobě bez jejich analýzy.
Příklad 1
Tablename | where name == "sqlserver_azure_db_resource_stats" and todouble(fields.avg_cpu_percent) > 7
Příklad 2
Tablename | distinct tostring(tags.database_name)
Poznámka:
Tento přístup může mít vliv na výkon při používání velkých objemů dat. V takových případech použijte přístup k zásadám aktualizace.
Použijte zásadu aktualizace: Transformujte sloupce dynamického datového typu pomocí zásad aktualizace. Tento přístup doporučujeme pro dotazování velkých objemů dat.
// 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}]'
Vstupní modul plug-in Syslog
Následující tabulka ukazuje ukázková data metrik shromažďovaná vstupním modulem plug-in Syslog:
name | značky | časové razítko | pole |
---|---|---|---|
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 Se nezdařilo připojení k mdsd: dial unix /var/run/run/. 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): relace otevřená pro uživatele root uživatele (uid=0)","procid":"26446","severity_code":6;"timestamp":"1632148621120781000","version":1} |
Dynamické sloupce lze zploštět několika způsoby pomocí operátoru rozšíření nebo modulu plug-in bag_unpack(). Kteroukoli z nich můžete použít ve funkci Transform_TargetTableName() zásad aktualizací.
Použijte operátor rozšíření: Tento přístup doporučujeme použít, protože je rychlejší a robustní. I když se schéma změní, neporuší dotazy ani řídicí panely.
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
Použijte modul plug-in bag_unpack(): Tento přístup automaticky rozbalí sloupce dynamického typu. Změna zdrojového schématu může způsobit problémy při dynamickém rozšiřování sloupců.
Tablename | evaluate bag_unpack(tags, columnsConflict='replace_source') | evaluate bag_unpack(fields, columnsConflict='replace_source')