Metrikák gyűjtése és átvitele

A következőkre vonatkozik:IoT Edge 1.4 checkmark IoT Edge 1.4

Fontos

IoT Edge 1.4 is the supported release. If you are on an earlier release, see Update IoT Edge.

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

Screenshot of the metrics monitoring architecture with IoT Hub.

Megjegyzés: Leírás
1 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 InsightsMetricstá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: .

Az IoT Edge-modul marketplace-en is elérhető.

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.

Screenshot the shows how to retrieve your resource ID from the IoT Hub properties.

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 egyezne maxCPUminCPU, *CPU de nemCPUMaximum. ???CPU egyezne maxCPU , minCPU de nem maximumCPU.
  • 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. Ex: 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=p99együ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.

Megjegyzé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.