Shromažďování a přenos metrik

Platí pro:Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Flotilu IoT Edge můžete vzdáleně monitorovat pomocí služby Azure Monitor a integrované integrace metrik. Pokud chcete tuto funkci povolit na vašem zařízení, přidejte do nasazení modul kolektoru metrik a nakonfigurujte ho tak, aby shromažďovat a přenášel metriky modulů do služby Azure Monitor.

Pokud chcete nakonfigurovat monitorování na zařízení IoT Edge, postupujte podle kurzu: Monitorování zařízení IoT Edge. Dozvíte se, jak do zařízení přidat modul kolektoru metrik. Tento článek obsahuje přehled architektury monitorování a vysvětluje možnosti konfigurace metrik na vašem zařízení.

Integrace IoT Edge se službou Azure Monitor (4:06)

Architektura

Snímek obrazovky s architekturou monitorování metrik se službou IoT Hub

Poznámka: Popis
1 Všechny moduly musí generovat metriky pomocí datového modelu Prometheus. Integrované metriky sice ve výchozím nastavení umožňují širokou viditelnost úloh, ale vlastní moduly se dají použít také k generování metrik specifických pro scénáře k vylepšení řešení monitorování. Naučte se instrumentovat vlastní moduly pomocí opensourcových knihoven v článku Přidání vlastních metrik .
2️ Modul kolektoru metrik je modul IoT Edge, který poskytuje Microsoft, který shromažďuje metriky modulů úloh a přenáší je mimo zařízení. Kolekce metrik používá model vyžádané replikace . Četnost shromažďování, koncové body a filtry je možné nakonfigurovat tak, aby kontrolovaly výchozí přenos dat z modulu. Další informace najdete v části konfigurace kolektoru metrik dále v tomto článku.
3️ Máte dvě možnosti pro odesílání metrik z modulu kolektoru metrik do cloudu. Možnost 1 odesílá metriky do Log Analytics.1 Shromažďované metriky se ingestují do zadaného pracovního prostoru služby Log Analytics pomocí pevné nativní tabulky s názvem InsightsMetrics. Schéma této tabulky je kompatibilní s datovým modelem metrik Prometheus.

Tato možnost vyžaduje přístup k pracovnímu prostoru na odchozím portu 443. ID a klíč pracovního prostoru služby Log Analytics musí být zadány jako součást konfigurace modulu. Pokud chcete povolit v sítích s omezeným přístupem, přečtěte si část Povolení ve scénářích omezeného přístupu k síti dále v tomto článku.
4️ Každá položka metriky obsahuje ResourceId zadanou v rámci konfigurace modulu. Toto přidružení automaticky propojování metriky se zadaným prostředkem (například IoT Hub). V důsledku toho můžou kurátorované šablony sešitů IoT Edge načítat metriky tak, že zadají dotazy na daný prostředek.

Tento přístup také umožňuje více center IoT bezpečně sdílet jeden pracovní prostor služby Log Analytics jako databázi metrik.
5️ Možnost 2 odesílá metriky do IoT Hubu.1 Modul kolektoru lze nakonfigurovat tak, aby prostřednictvím modulu odeslal shromážděné metriky jako zprávyedgeHub JSON s kódováním UTF-8 typu zařízení-cloud. Tato možnost odemkne monitorování uzamčených zařízení IoT Edge, která mají povolený externí přístup pouze ke koncovému bodu IoT Hubu. Umožňuje také monitorování podřízených zařízení IoT Edge v vnořené konfiguraci, kde podřízená zařízení mají přístup jenom k nadřazeným zařízením.
6️ Když se metriky směrují přes IoT Hub, je potřeba nastavit (jednorázový) cloudový pracovní postup. Pracovní postup zpracovává zprávy přicházející z modulu kolektoru metrik a odesílá je do pracovního prostoru služby Log Analytics. Pracovní postup umožňuje kurátorované vizualizace a funkce upozornění i pro metriky přicházející přes tuto volitelnou cestu. Podrobnosti o nastavení tohoto cloudového pracovního postupu najdete v části Metriky směrování prostřednictvím služby IoT Hub .

1 V současné době je použití možnosti 1 k přímému přenosu metrik do Log Analytics ze zařízení IoT Edge jednodušší cestou, která vyžaduje minimální nastavení. První možnost je upřednostňovaná, pokud váš konkrétní scénář nepožaduje přístup typu 2 , aby zařízení IoT Edge komunikovala pouze se službou IoT Hub.

Modul kolektoru metrik

Do nasazení IoT Edge je možné přidat modul kolektoru metrik od Microsoftu, který shromažďuje metriky modulů a odesílá je do služby Azure Monitor. Kód modulu je opensourcový a dostupný v úložišti GitHubu IoT Edge.

Modul kolektoru metrik se poskytuje jako image kontejneru Dockeru s více archy, která podporuje Linux X64, ARM32, ARM64 a Windows X64 (verze 1809). Je veřejně dostupná na adrese mcr.microsoft.com/azureiotedge-metrics-collector.

K dispozici je také na marketplace modulů IoT Edge.

Konfigurace kolektoru metrik

Veškerá konfigurace kolektoru metrik se provádí pomocí proměnných prostředí. Proměnné uvedené v této tabulce musí být zadány minimálně jako Povinné .

Environment variable name Popis
ResourceId ID prostředku centra IoT, se kterým zařízení komunikuje. Další informace najdete v části ID prostředku.

Povinní účastníci

Výchozí hodnota: žádná
UploadTarget Určuje, jestli se metriky odesílají přímo do služby Azure Monitor přes HTTPS nebo do IoT Hubu jako zprávy D2C. Další informace najdete v tématu nahrání cíle.

Může to být AzureMonitor nebo IoTMessage.

Nepožaduje se

Výchozí hodnota: AzureMonitor
LogAnalyticsWorkspaceId ID pracovního prostoru služby Log Analytics

Vyžaduje se pouze v případě, že UploadTarget je AzureMonitor.

Výchozí hodnota: žádná
LogAnalyticsSharedKey Klíč pracovního prostoru služby Log Analytics

Vyžaduje se pouze v případě, že UploadTarget je AzureMonitor.

Výchozí hodnota: žádná
ScrapeFrequencyInSecs Opakovaný časový interval v sekundách, ve kterých se mají shromažďovat a přenášet metriky.

Příklad: 600

Nepožaduje se

Výchozí hodnota: 300
MetricsEndpointsCSV Čárkami oddělený seznam koncových bodů pro shromažďování metrik Prometheus. Všechny koncové body modulu, ze které se mají shromažďovat metriky, se musí zobrazit v tomto seznamu.

Příklad: http://edgeAgent:9600/metrics, http://edgeHub:9600/metricshttp://MetricsSpewer:9417/metrics

Nepožaduje se

Výchozí hodnota: http://edgeHub:9600/metrics, http://edgeAgent:9600/metrics
AllowedMetrics Seznam metrik, které se mají shromažďovat, se všechny ostatní metriky ignorují. Nastavte na prázdný řetězec, který chcete zakázat. Další informace najdete v tématu povolení a zakázání seznamů.

Příklad: metricToScrape{quantile=0,99}[endpoint=http://MetricsSpewer:9417/metrics]

Nepožaduje se

Výchozí hodnota: prázdná
BlockedMetrics Seznam metrik, které se mají ignorovat Přepíše povolené metriky, takže pokud je metrika zahrnutá v obou seznamech, není metrika hlášena. Další informace najdete v tématu povolení a zakázání seznamů.

Příklad: metricToIgnore{quantile=0,5}[endpoint=http://VeryNoisyModule:9001/metrics], docker_container_disk_write_bytes

Nepožaduje se

Výchozí hodnota: prázdná
CompressForUpload Určuje, jestli se má při nahrávání metrik použít komprese. Platí pro všechny cíle nahrávání.

Příklad: true

Nepožaduje se

Výchozí hodnota: true
AzureDomain Určuje doménu Azure nejvyšší úrovně, která se má použít při ingestování metrik přímo do Log Analytics.

Příklad: azure.us

Nepožaduje se

Výchozí hodnota: azure.com

ID zdroje

Modul kolektoru metrik vyžaduje ID Azure Resource Manageru centra IoT, do kterého zařízení IoT Edge patří. Zadejte toto ID jako hodnotu proměnné prostředí ResourceID .

ID prostředku má následující formát:

/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name>

ID prostředku najdete na stránce Vlastnosti centra IoT na webu Azure Portal.

Snímek obrazovky znázorňující, jak načíst ID prostředku z vlastností služby IoT Hub

Nebo id načtete příkazem az resource show :

az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"

Nahrát cíl

Možnost konfigurace UploadTarget řídí, jestli se metriky odesílají přímo do služby Azure Monitor nebo do služby IoT Hub.

Pokud nastavíte UploadTarget na IoTMessage, metriky modulu se publikují jako zprávy IoT. Tyto zprávy se z koncového bodu /messages/modules/<metrics collector module name>/outputs/metricOutputvygenerují jako kód JSON s kódováním UTF8 . Pokud je například modul IoT Edge Metrics Collector pojmenovaný IoTEdgeMetricsCollector, koncový bod je /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutput. Formát je následující:

[{
    "TimeGeneratedUtc": "<time generated>",
    "Name": "<prometheus metric name>",
    "Value": <decimal value>,
    "Label": {
        "<label name>": "<label value>"
    }
}, {
    "TimeGeneratedUtc": "2020-07-28T20:00:43.2770247Z",
    "Name": "docker_container_disk_write_bytes",
    "Value": 0.0,
    "Label": {
        "name": "AzureMonitorForIotEdgeModule"
    }
}]

Povolit a zakázat seznamy

BlockedMetrics Možnosti AllowedMetrics konfigurace zabírají mezery nebo čárkami oddělené seznamy selektorů metrik. Metrika odpovídá seznamu a je zahrnuta nebo vyloučena, pokud odpovídá jedné nebo více metrikám v některém seznamu.

Selektory metrik používají formát podobný podmnožině dotazovacího jazyka PromQL .

metricToSelect{quantile=0.5,otherLabel=~Re[ge]*|x}[http://VeryNoisyModule:9001/metrics]

Selektory metrik se skládají ze tří částí:

Název metriky (metricToSelect).

  • Zástupné * znaky (libovolné znaky) a ? (libovolný jeden znak) lze použít v názvech metrik. Například *CPU by se shodoval maxCPU , minCPU ale ne CPUMaximum. ???CPU by se shodovala maxCPU , minCPU ale ne maximumCPU.
  • Tato komponenta se vyžaduje ve selektoru metrik.

Selektory založené na popiscích ({quantile=0.5,otherLabel=~Re[ge]*|x}).

  • Do složených závorek je možné zahrnout více hodnot metrik. Hodnoty by měly být oddělené čárkami.
  • Metrika se porovná, pokud jsou aspoň všechny popisky ve selektoru přítomny a odpovídají.
  • Podobně jako PromQL jsou povoleny následující odpovídající operátory.
    • = Porovná popisky přesně stejné zadanému řetězci (rozlišují se malá a velká písmena).
    • != Porovná popisky, které nejsou přesně rovny zadanému řetězci.
    • =~ Porovná popisky se zadaným regulárním výrazem. Ex: label=~CPU|Mem|[0-9]*
    • !~ Porovná popisky, které neodpovídají zadanému regulárnímu výrazu.
    • Regulární výraz je plně ukotvený (A ^ a $ automaticky se přidají na začátek a konec každého regulárního výrazu).
    • Tato komponenta je volitelná v selektoru metrik.

Selektor koncového bodu ([http://VeryNoisyModule:9001/metrics]).

  • Adresa URL by se měla přesně shodovat s adresou URL uvedenou v MetricsEndpointsCSVseznamu .
  • Tato komponenta je volitelná v selektoru metrik.

Metrika musí odpovídat všem částem daného selektoru, které se má vybrat. Musí odpovídat názvu a mít všechny stejné popisky s odpovídajícími hodnotami a pocházet z daného koncového bodu. mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics] Například neodpovídá selektoru mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]. K vytvoření nebo podobnému chování by se mělo použít více selektorů.

Pokud chcete například povolit vlastní metriku mem s libovolným popiskem z modulu module1 , ale povolit stejnou metriku pouze s module2 popiskem agg=p99, můžete do AllowedMetricstohoto modulu přidat následující selektor:

mem{}[http://module1:9001/metrics] mem{agg="p99"}[http://module2:9001/metrics]

Nebo pokud chcete povolit vlastní metriky mem a cpu pro všechny popisky nebo koncový bod, přidejte následující položky:AllowedMetrics

mem cpu

Povolení ve scénářích s omezeným přístupem k síti

Pokud odesíláte metriky přímo do pracovního prostoru služby Log Analytics, povolte odchozí přístup k následujícím adresám URL:

  • https://<LOG_ANALYTICS_WORKSPACE_ID>.ods.opinsights.azure.com/*
  • https://<LOG_ANALYTICS_WORKSPACE_ID>.oms.opinsights.azure.com/*

Důležité informace o proxy serveru

Modul kolektoru metrik je napsaný v .NET Core. Proto použijte stejné pokyny jako pro systémové moduly, které umožňují komunikaci přes proxy server.

Shromažďování metrik z místních modulů používá protokol HTTP. Vyloučí místní komunikaci z průchodu proxy serverem nastavením NO_PROXY proměnné prostředí.

Nastavte NO_PROXY hodnotu na seznam názvů hostitelů oddělených čárkami, které by měly být vyloučeny. Názvy modulů použijte pro názvy hostitelů. Příklad: edgeHub,edgeAgent,myCustomModule.

Metriky směrování

Někdy je potřeba ingestovat metriky prostřednictvím služby IoT Hub, místo abyste je odesílali přímo do Log Analytics. Například při monitorování zařízení IoT Edge v vnořené konfiguraci , kde mají podřízená zařízení přístup pouze k centru IoT Edge nadřazeného zařízení. Dalším příkladem je nasazení zařízení IoT Edge s odchozím síťovým přístupem jenom do IoT Hubu.

Pokud chcete v tomto scénáři povolit monitorování, je možné modul kolektoru metrik nakonfigurovat tak, aby přes modul EdgeHub odesílal metriky jako zprávy typu zařízení-cloud (D2C). Tuto funkci můžete zapnout nastavením UploadTarget proměnné prostředí do IoTMessage konfigurace kolektoru.

Tip

Nezapomeňte přidat trasu edgeHubu pro doručování zpráv metrik z modulu kolektoru do IoT Hubu. Vypadá takto: FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.

Tato možnost vyžaduje dodatečné nastavení, cloudový pracovní postup pro doručování zpráv metrik přicházejících do IoT Hubu do pracovního prostoru služby Log Analytics. Bez tohoto nastavení nefungují ostatní části integrace, jako jsou kurátorované vizualizace a upozornění .

Poznámka:

Mějte na paměti další náklady s touto možností. Zprávy metrik se započítávají do kvóty zpráv služby IoT Hub. Také se vám budou účtovat poplatky za příjem dat Log Analytics a prostředky cloudového pracovního postupu.

Ukázkový cloudový pracovní postup

Cloudový pracovní postup, který poskytuje zprávy metrik ze služby IoT Hub do Log Analytics, je k dispozici jako součást ukázky protokolování a monitorování IoT Edge. Ukázku je možné nasadit na existující cloudové prostředky nebo sloužit jako referenční informace k produkčnímu nasazení.

Další kroky

Prozkoumejte typy kurátorovaných vizualizací , které Azure Monitor umožňuje.