Metrikák gyűjtése és átvitele
A következőkre vonatkozik: IoT Edge 1.5 IoT Edge 1.4
Fontos
Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
Az IoT Edge-flottát távolról monitorozhatja az Azure Monitor és a beépített metrikák integrációjával. Ha engedélyezni szeretné ezt a képességet az eszközön, adja hozzá a metrikagyűjtő modult az üzembe helyezéshez, és konfigurálja a modulmetrikák gyűjtésére és az Azure Monitorba való átvitelére.
Az IoT Edge-eszköz monitorozásának konfigurálásához kövesse az IoT Edge-eszközök monitorozása című oktatóanyagot. Megtudhatja, hogyan vehet fel metrikák gyűjtő modult az eszközére. Ez a cikk áttekintést nyújt a monitorozási architektúráról, és ismerteti a metrikák eszközre való konfigurálásának lehetőségeit.
IoT Edge-integráció az Azure Monitorral (4:06)
Architektúra
Feljegyzés | Leírás |
---|---|
0 | Minden modulnak metrikákat kell kibocsátania a Prometheus adatmodell használatával. Bár a beépített metrikák alapértelmezés szerint széles körű láthatóságot tesznek lehetővé a számítási feladatok számára, az egyéni modulok a forgatókönyv-specifikus metrikák kibocsátására is használhatók a monitorozási megoldás továbbfejlesztése érdekében. Az Egyéni metrikák hozzáadása című cikkből megtudhatja, hogyan hozhat létre egyéni modulokat nyílt forráskódú kódtárak használatával. |
2️ | A metrikagyűjtő modul egy Microsoft által biztosított IoT Edge-modul, amely összegyűjti a számítási feladatok moduljának metrikáit, és azokat az eszközről szállítja. A metrikák gyűjteménye lekéréses modellt használ. A gyűjtési gyakoriság, a végpontok és a szűrők konfigurálhatók a modulból kimenő adatok szabályozására. További információt a jelen cikk későbbi, metrikák gyűjtőkonfigurációs szakaszában talál. |
3️ | Két lehetősége van metrikák küldésére a metrikák gyűjtő modulból a felhőbe. Az 1 . lehetőség elküldi a metrikákat a Log Analyticsnek.1 Az összegyűjtött metrikák a megadott Log Analytics-munkaterületre kerülnek egy rögzített, natív, úgynevezett InsightsMetrics táblával. A táblázat sémája kompatibilis a Prometheus metrikák adatmodelljével.Ehhez a beállításhoz hozzá kell férnie a munkaterülethez a 443-at kimenő porton. A Log Analytics-munkaterület azonosítóját és kulcsát a modulkonfiguráció részeként kell megadni. A korlátozott hálózatokban való engedélyezésről a cikk későbbi, korlátozott hálózati hozzáférési forgatókönyvekben való engedélyezéséről szóló cikkben olvashat. |
4️ | Minden metrikabejegyzés tartalmazza a ResourceId modulkonfiguráció részeként megadott értéket. Ez a társítás automatikusan összekapcsolja a metrikát a megadott erőforrással (például IoT Hub). Ennek eredményeképpen a válogatott IoT Edge-munkafüzetsablonok lekérhetik a metrikákat, ha lekérdezéseket bocsátanak ki az erőforráson. Ezzel a módszerrel több IoT Hub is biztonságosan megoszthat egy Log Analytics-munkaterületet metrikák adatbázisaként. |
5️ | A 2 . lehetőség elküldi a metrikákat az IoT Hubnak.1 A gyűjtőmodul konfigurálható úgy, hogy az összegyűjtött metrikákat UTF-8 kódolt JSON-eszközről felhőbe irányuló üzenetként küldje el a edgeHub modulon keresztül. Ez a beállítás feloldja a zárolt IoT Edge-eszközök figyelését, amelyek csak az IoT Hub-végponthoz engedélyezik a külső hozzáférést. Emellett lehetővé teszi a gyermek IoT Edge-eszközök figyelését beágyazott konfigurációban, ahol a gyermekeszközök csak a szülőeszközükhöz férhetnek hozzá. |
6️ | Ha a metrikákat az IoT Hubon keresztül irányítják, be kell állítani egy (egyszeri) felhőalapú munkafolyamatot. A munkafolyamat feldolgozza a metrikák gyűjtő modulból érkező üzeneteket, és elküldi őket a Log Analytics-munkaterületre. A munkafolyamat lehetővé teszi a válogatott vizualizációk és riasztások funkciót még az ezen az opcionális útvonalon érkező metrikák esetében is. A felhőbeli munkafolyamat beállításával kapcsolatos részletekért tekintse meg az Útválasztási metrikák az IoT Hubon keresztül című szakaszt. |
1 Jelenleg az 1. lehetőség használata a metrikáknak az IoT Edge-eszközről a Log Analyticsbe való közvetlen átvitelére az egyszerűbb útvonal, amely minimális beállítást igényel. Az első lehetőség akkor ajánlott, ha az adott forgatókönyv megköveteli a 2 . lehetőség megközelítését, hogy az IoT Edge-eszköz csak az IoT Hubbal kommunikáljon.
Metrikagyűjtő modul
A Microsoft által biztosított metrikák gyűjtő modulja hozzáadható egy IoT Edge-üzembe helyezéshez a modulmetrikák gyűjtéséhez és az Azure Monitorba való elküldéséhez. A modul kódja nyílt forráskódú, és az IoT Edge GitHub-adattárban érhető el.
A metrikák gyűjtő modulja egy többíves Docker-tárolórendszerkép, amely támogatja a Linux X64, ARM32, ARM64 és Windows X64 (1809-es verzió) rendszert. Nyilvánosan elérhető a következő címen mcr.microsoft.com/azureiotedge-metrics-collector
: .
Metrikák gyűjtőkonfigurációja
A metrikagyűjtő összes konfigurációja környezeti változók használatával történik. Minimálisan meg kell adni a táblában kötelezőként megjelölt változókat.
Környezeti változó neve | Leírás |
---|---|
ResourceId |
Annak az IoT Hubnak az erőforrás-azonosítója, amellyel az eszköz kommunikál. További információ: Erőforrás-azonosító szakasz. Szükséges Alapértelmezett érték: nincs |
UploadTarget |
Azt szabályozza, hogy a metrikák közvetlenül az Azure Monitorba https-en keresztül vagy az IoT Hubba D2C-üzenetként legyenek-e elküldve. További információ: feltöltési cél. Lehet AzureMonitor vagy IoTMessage Nem kötelező Alapértelmezett érték: AzureMonitor |
LogAnalyticsWorkspaceId |
Log Analytics-munkaterület azonosítója. Csak akkor szükséges , ha az UploadTarget az AzureMonitor Alapértelmezett érték: nincs |
LogAnalyticsSharedKey |
Log Analytics-munkaterület kulcsa. Csak akkor szükséges , ha az UploadTarget az AzureMonitor Alapértelmezett érték: nincs |
ScrapeFrequencyInSecs |
Ismétlődő időintervallum másodpercben, amely során metrikákat gyűjthet és szállíthat. Példa: 600 Nem kötelező Alapértelmezett érték: 300 |
MetricsEndpointsCSV |
Vesszővel tagolt végpontok listája a Prometheus-metrikák gyűjtéséhez. Ebben a listában minden olyan modulvégpontnak szerepelnie kell, amelyből metrikákat gyűjthet. Példa: http://edgeAgent:9600/metrics, http://edgeHub:9600/metrics, http://MetricsSpewer:9417/metrics Nem kötelező Alapértelmezett érték: http://edgeHub:9600/metrics, http://edgeAgent:9600/metrics |
AllowedMetrics |
A gyűjtendő metrikák listája, az összes többi metrika figyelmen kívül lesz hagyva. Állítsa be egy üres sztringre a letiltáshoz. További információ: Listák engedélyezése és tiltása. Példa: metricToScrape{quantile=0.99}[endpoint=http://MetricsSpewer:9417/metrics] Nem kötelező Alapértelmezett érték: üres |
BlockedMetrics |
Figyelmen kívül hagyandó metrikák listája. Felülbírálja az AllowedMetrics értéket, így a metrikák nem jelennek meg, ha mindkét lista tartalmazza. További információ: Listák engedélyezése és tiltása. Példa: metricToIgnore{quantile=0.5}[endpoint=http://VeryNoisyModule:9001/metrics], docker_container_disk_write_bytes Nem kötelező Alapértelmezett érték: üres |
CompressForUpload |
Szabályozza, hogy a metrikák feltöltésekor szükség van-e tömörítésre. Az összes feltöltési célra vonatkozik. Példa: igaz Nem kötelező Alapértelmezett érték: igaz |
AzureDomain |
Meghatározza a metrikák közvetlenül a Log Analyticsbe való betöltésekor használni kívánt legfelső szintű Azure-tartományt. Példa: azure.us Nem kötelező Alapértelmezett érték: azure.com |
Erőforrás-azonosító
A metrikagyűjtő modulhoz annak az IoT Hubnak az Azure Resource Manager-azonosítója szükséges, amelyhez az IoT Edge-eszköz tartozik. Adja meg ezt az azonosítót a ResourceID környezeti változó értékeként.
Az erőforrás-azonosító formátuma a következő:
/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name>
Az erőforrás-azonosítót az IoT Hub Tulajdonságok lapján találja az Azure Portalon.
Vagy lekéri az azonosítót az az resource show paranccsal:
az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"
Cél feltöltése
Az UploadTarget konfigurációs beállítás szabályozza, hogy a metrikák közvetlenül az Azure Monitorba vagy az IoT Hubba érkeznek-e.
Ha az UploadTargetet IoTMessage értékre állítja, akkor a modulmetrikái IoT-üzenetekként lesznek közzétéve. Ezek az üzenetek UTF8 kódolású jsonként vannak kibocsátva a végpontról /messages/modules/<metrics collector module name>/outputs/metricOutput
. Ha például az IoT Edge Metrics Collector modul neve IoTEdgeMetricsCollector, a végpont az /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutput
. A formátum a következő:
[{
"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"
}
}]
Listák engedélyezése és letiltása
BlockedMetrics
A AllowedMetrics
és a konfigurációs beállítások helyet vagy vesszővel elválasztott listát foglalnak le a metrikaválasztókról. A metrikák megegyeznek a listával, és akkor jelennek meg vagy zárhatók ki, ha egy vagy több metrikával egyezik valamelyik listában.
A metrikaválasztók a PromQL lekérdezési nyelv egy részhalmazához hasonló formátumot használnak.
metricToSelect{quantile=0.5,otherLabel=~Re[ge]*|x}[http://VeryNoisyModule:9001/metrics]
A metrikaválasztók három részből állnak:
Metrika neve (metricToSelect
).
- A metrikanevekben helyettesítő karakterek
*
(bármely karakter) és?
(bármely karakter) használhatók. Például egyeznemaxCPU
minCPU
,*CPU
de nemCPUMaximum
.???CPU
egyeznemaxCPU
,minCPU
de nemmaximumCPU
. - Ez az összetevő szükséges a metrikák választójában.
Címkealapú választók ({quantile=0.5,otherLabel=~Re[ge]*|x}
).
- Több metrikaérték is szerepelhet a kapcsos zárójelekben. Az értékeket vesszővel kell elválasztani.
- A metrikák akkor egyeznek meg, ha a választóban legalább az összes címke megtalálható és egyezik.
- A PromQL-hez hasonlóan a következő egyező operátorok is engedélyezettek.
=
A címkék pontosan megegyeznek a megadott sztringgel (a kis- és nagybetűk megkülönböztetésével).!=
A címkék nem egyeznek pontosan a megadott sztringgel.=~
A címkék egy megadott regexhez való egyeztetése. volt:label=~CPU|Mem|[0-9]*
!~
A megadott regexnek nem megfelelő címkék egyeztetése.- A Regex teljes mértékben rögzítve van (A
^
, és$
automatikusan hozzá lesz adva az egyes regexek elejéhez és végéhez) - Ez az összetevő nem kötelező a metrikák választójában.
Végpontválasztó ([http://VeryNoisyModule:9001/metrics]
).
- Az URL-címnek pontosan meg kell egyeznie a listában szereplő URL-címével
MetricsEndpointsCSV
. - Ez az összetevő nem kötelező a metrikák választójában.
A metrikának meg kell egyeznie egy adott választó minden részével a kijelöléshez. Meg kell egyeznie a névvel , és az összes címkének egyező értékekkel kell rendelkeznie, és az adott végpontról kell származnia. Például mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics]
nem egyezik a választóval mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]
. Az and-like viselkedés helyett több választót kell használni a viselkedés létrehozásához vagy hasonló viselkedéséhez.
Ha például egy modul bármely címkéjével szeretné engedélyezni az egyéni metrikátmem
, de ugyanazt a metrikát module2
csak a címkével agg=p99
együtt engedélyezi, a következő választógombot lehet hozzáadni a következőhözAllowedMetrics
:module1
mem{}[http://module1:9001/metrics] mem{agg="p99"}[http://module2:9001/metrics]
Vagy ha engedélyezni szeretné az egyéni metrikákat mem
, illetve cpu
bármely címkét vagy végpontot, adja hozzá a következőket a következőhöz AllowedMetrics
:
mem cpu
Engedélyezés korlátozott hálózati hozzáférési forgatókönyvekben
Ha metrikákat küld közvetlenül a Log Analytics-munkaterületre, engedélyezze a kimenő hozzáférést a következő URL-címekhez:
https://<LOG_ANALYTICS_WORKSPACE_ID>.ods.opinsights.azure.com/*
https://<LOG_ANALYTICS_WORKSPACE_ID>.oms.opinsights.azure.com/*
Proxyval kapcsolatos szempontok
A metrikagyűjtő modul a .NET Core-ban van megírva. Ezért használja ugyanazt az útmutatást, mint a rendszermodulok esetében a proxykiszolgálón keresztüli kommunikáció engedélyezéséhez.
A helyi modulokból származó metrikák gyűjteménye HTTP protokollt használ. Zárja ki a helyi kommunikációt a proxykiszolgálón való áthaladásból a NO_PROXY
környezeti változó beállításával.
Állítsa be NO_PROXY
az értéket a kizárandó gazdagépnevek vesszővel tagolt listájára. A gazdagépnevekhez használjon modulneveket. Például: edgeHub,edgeAgent,myCustomModule.
Útvonalmetrikák
Előfordulhat, hogy a metrikákat az IoT Hubon keresztül kell betölteni ahelyett, hogy közvetlenül a Log Analyticsbe küldené őket. Ha például az IoT Edge-eszközöket beágyazott konfigurációban figyeli, ahol a gyermekeszközök csak a szülőeszközük IoT Edge-központjához férnek hozzá. Egy másik példa egy olyan IoT Edge-eszköz üzembe helyezése, amely csak az IoT Hub felé irányuló kimenő hálózati hozzáféréssel rendelkezik.
Ebben a forgatókönyvben a metrikagyűjtő modul úgy konfigurálható, hogy eszközről felhőbe irányuló (D2C) üzenetként küldjön metrikákat az edgeHub-modulon keresztül. A funkció bekapcsolható úgy, hogy IoTMessage
a UploadTarget
környezeti változót a gyűjtő konfigurációjában állítja be.
Tipp.
Ne felejtsen el hozzáadni egy edgeHub-útvonalat, amely metrikákat küld a gyűjtőmodulból az IoT Hubba. A következőhöz hasonlít: FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream
.
Ehhez a beállításhoz extra beállításra, egy felhőalapú munkafolyamatra van szükség az IoT Hubra érkező metrikáknak a Log Analytics-munkaterületre érkező metrikák továbbításához. A beállítás nélkül az integráció többi része, például a válogatott vizualizációk és riasztások nem működnek.
Feljegyzés
Ezzel a lehetőséggel vegye figyelembe a további költségeket. A metrikák üzenetei beleszámítanak az IoT Hub üzenetkvótáiba. A Log Analytics-betöltési és a felhőbeli munkafolyamat-erőforrásokért is díjat számítunk fel.
Mintafelhő-munkafolyamat
Az IoT Edge naplózási és monitorozási mintájának részeként elérhető egy felhőalapú munkafolyamat, amely metrikákat küld az IoT Hubról a Log Analyticsbe. A minta üzembe helyezhető a meglévő felhőerőforrásokon, vagy üzemi üzembe helyezési referenciaként szolgálhat.
Következő lépések
Megismerheti az Azure Monitor által lehetővé tevő válogatott vizualizációk típusait.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: