IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS is het einde van de levensduur vanaf 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
U kunt uw IoT Edge-vloot op afstand bewaken met behulp van Azure Monitor en ingebouwde integratie van metrische gegevens. Als u deze mogelijkheid op uw apparaat wilt inschakelen, voegt u de module metrics-collector toe aan uw implementatie en configureert u deze om metrische gegevens van de module te verzamelen en te transporteren naar Azure Monitor.
Als u bewaking op uw IoT Edge-apparaat wilt configureren, volgt u de zelfstudie: IoT Edge-apparaten bewaken. U leert hoe u de module metrics-collector toevoegt aan uw apparaat. In dit artikel vindt u een overzicht van de bewakingsarchitectuur en worden uw opties voor het configureren van metrische gegevens op uw apparaat uitgelegd.
Alle modules moeten metrische gegevens verzenden met behulp van het Prometheus-gegevensmodel. Hoewel ingebouwde metrische gegevens standaard algemene zichtbaarheid van workloads mogelijk maken, kunnen aangepaste modules ook worden gebruikt om scenariospecifieke metrische gegevens te verzenden om de bewakingsoplossing te verbeteren. Meer informatie over het instrumenteren van aangepaste modules met behulp van opensource-bibliotheken in het artikel Aangepaste metrische gegevens toevoegen.
2️
De module metrics-collector is een door Microsoft geleverde IoT Edge-module die metrische gegevens van de workloadmodule verzamelt en deze buiten het apparaat transporteert. Verzameling met metrische gegevens maakt gebruik van een pull-model . Verzamelingsfrequentie, eindpunten en filters kunnen worden geconfigureerd om de gegevens te beheren die afkomstig zijn van de module. Zie de sectie configuratie van metrische gegevensverzamelaar verderop in dit artikel voor meer informatie.
3️
U hebt twee opties voor het verzenden van metrische gegevens van de module metrics-collector naar de cloud.
Optie 1 verzendt de metrische gegevens naar Log Analytics.1 De verzamelde metrische gegevens worden opgenomen in de opgegeven Log Analytics-werkruimte met behulp van een vaste, systeemeigen tabel met de naam InsightsMetrics. Het schema van deze tabel is compatibel met het prometheus-gegevensmodel voor metrische gegevens.
Deze optie vereist toegang tot de werkruimte op uitgaande poort 443. De Log Analytics-werkruimte-id en -sleutel moeten worden opgegeven als onderdeel van de moduleconfiguratie. Zie Inschakelen in scenario's voor beperkte netwerktoegang verderop in dit artikel om beperkte netwerken in te schakelen.
4️
Elke metrische vermelding bevat de ResourceId vermelding die is opgegeven als onderdeel van de moduleconfiguratie. Deze koppeling koppelt de metrische gegevens automatisch aan de opgegeven resource (bijvoorbeeld IoT Hub). Als gevolg hiervan kunnen de gecureerde IoT Edge-werkmapsjablonen metrische gegevens ophalen door query's uit te voeren op de resource.
Met deze aanpak kunnen meerdere IoT-hubs ook veilig één Log Analytics-werkruimte delen als een database met metrische gegevens.
5️
Optie 2 verzendt de metrische gegevens naar IoT Hub.1 De collectormodule kan worden geconfigureerd om de verzamelde metrische gegevens te verzenden als UTF-8 gecodeerde JSON-apparaat-naar-cloud-berichtenvia de edgeHub module. Met deze optie wordt bewaking ontgrendeld van vergrendelde IoT Edge-apparaten die externe toegang hebben tot alleen het IoT Hub-eindpunt. Het maakt ook bewaking mogelijk van onderliggende IoT Edge-apparaten in een geneste configuratie waarbij onderliggende apparaten alleen toegang hebben tot hun bovenliggende apparaat.
6️
Wanneer metrische gegevens worden gerouteerd via IoT Hub, moet er een (eenmalige) cloudwerkstroom worden ingesteld. De werkstroom verwerkt berichten die afkomstig zijn van de module metrische gegevensverzamelaar en verzendt deze naar de Log Analytics-werkruimte. De werkstroom maakt de functionaliteit voor gecureerde visualisaties en waarschuwingen mogelijk, zelfs voor metrische gegevens die via dit optionele pad binnenkomen. Zie de sectie Metrische routegegevens via IoT Hub voor meer informatie over het instellen van deze cloudwerkstroom.
1 Op dit moment is het eenvoudiger om metrische gegevens rechtstreeks te transporteren naar Log Analytics vanaf het IoT Edge-apparaat. Hiervoor is minimale installatie vereist. De eerste optie heeft de voorkeur, tenzij voor uw specifieke scenario de benadering van optie 2 is vereist, zodat het IoT Edge-apparaat alleen communiceert met IoT Hub.
Notitie
Beschrijving
1
Alle modules moeten metrische gegevens verzenden met behulp van het Prometheus-gegevensmodel. Hoewel ingebouwde metrische gegevens standaard algemene zichtbaarheid van workloads mogelijk maken, kunnen aangepaste modules ook worden gebruikt om scenariospecifieke metrische gegevens te verzenden om de bewakingsoplossing te verbeteren. Meer informatie over het instrumenteren van aangepaste modules met behulp van opensource-bibliotheken in het artikel Aangepaste metrische gegevens toevoegen.
2️
De module metrics-collector is een door Microsoft geleverde IoT Edge-module die metrische gegevens van de workloadmodule verzamelt en deze buiten het apparaat transporteert. Verzameling met metrische gegevens maakt gebruik van een pull-model . Verzamelingsfrequentie, eindpunten en filters kunnen worden geconfigureerd om de gegevens te beheren die afkomstig zijn van de module. Zie de sectie configuratie van metrische gegevensverzamelaar verderop in dit artikel voor meer informatie.
3️
U hebt twee opties voor het verzenden van metrische gegevens van de module metrics-collector naar de cloud.
Optie 1 verzendt de metrische gegevens naar Log Analytics. De verzamelde metrische gegevens worden opgenomen in de opgegeven Log Analytics-werkruimte met behulp van een vaste, systeemeigen tabel met de naam InsightsMetrics. Het schema van deze tabel is compatibel met het prometheus-gegevensmodel voor metrische gegevens.
Deze optie vereist toegang tot de werkruimte op uitgaande poort 443. De Log Analytics-werkruimte-id en -sleutel moeten worden opgegeven als onderdeel van de moduleconfiguratie. Zie Inschakelen in scenario's voor beperkte netwerktoegang verderop in dit artikel om beperkte netwerken in te schakelen.
4️
Elke metrische vermelding bevat de ResourceId vermelding die is opgegeven als onderdeel van de moduleconfiguratie. Deze koppeling koppelt de metrische gegevens automatisch aan de opgegeven resource (bijvoorbeeld IoT Central). Als gevolg hiervan kunnen de gecureerde IoT Edge-werkmapsjablonen metrische gegevens ophalen door query's uit te voeren op de resource.
Met deze aanpak kunnen meerdere IoT Central-toepassingen ook veilig één Log Analytics-werkruimte delen als een database met metrische gegevens.
5️
Met optie 2 worden de metrische gegevens naar IoT Central verzonden. Met deze optie kan een operator de metrische gegevens en apparaattelemetrie op één locatie bekijken. De collectormodule kan worden geconfigureerd om de verzamelde metrische gegevens te verzenden als UTF-8 gecodeerde JSON-apparaat-naar-cloud-berichten via de edgeHub module. Met deze optie wordt de bewaking van vergrendelde IoT Edge-apparaten ontgrendeld die externe toegang hebben tot alleen het IoT Central-eindpunt. Het maakt ook bewaking mogelijk van onderliggende IoT Edge-apparaten in een geneste configuratie waarbij onderliggende apparaten alleen toegang hebben tot hun bovenliggende apparaat.
Module voor metrische gegevensverzamelaar
Een door Microsoft geleverde module voor metrische gegevensverzamelaar kan worden toegevoegd aan een IoT Edge-implementatie om metrische modulegegevens te verzamelen en naar Azure Monitor te verzenden. De modulecode is opensource en beschikbaar in de GitHub-opslagplaats van IoT Edge.
De module metrics-collector wordt geleverd als een Docker-containerinstallatiekopieën met meerdere archen die ondersteuning biedt voor Linux X64, ARM32, ARM64 en Windows X64 (versie 1809). Het is openbaar beschikbaar op mcr.microsoft.com/azureiotedge-metrics-collector.
Configuratie van metrische gegevensverzamelaar
Alle configuraties voor de metrische gegevensverzamelaar worden uitgevoerd met behulp van omgevingsvariabelen. De variabelen die in deze tabel zijn genoteerd als Vereist , moeten minimaal worden opgegeven.
Resource-id van de IoT-hub waarmee het apparaat communiceert. Zie de sectie Resource-id voor meer informatie.
Vereist
Standaardwaarde: geen
UploadTarget
Hiermee bepaalt u of metrische gegevens rechtstreeks naar Azure Monitor via HTTPS of naar IoT Hub worden verzonden als D2C-berichten. Zie uploaddoel voor meer informatie.
Terugkerend tijdsinterval in seconden voor het verzamelen en transporteren van metrische gegevens.
Voorbeeld: 600
Niet vereist
Standaardwaarde: 300
MetricsEndpointsCSV
Door komma's gescheiden lijst met eindpunten voor het verzamelen van metrische gegevens van Prometheus. Alle module-eindpunten waaruit metrische gegevens moeten worden verzameld, moeten worden weergegeven in deze lijst.
Lijst met metrische gegevens die moeten worden verzameld, alle andere metrische gegevens worden genegeerd. Ingesteld op een lege tekenreeks om uit te schakelen. Zie lijsten toestaan en weigeren voor meer informatie.
Lijst met metrische gegevens die moeten worden genegeerd. Overschrijft AllowedMetrics, dus een metrische waarde wordt niet gerapporteerd als deze is opgenomen in beide lijsten. Zie lijsten toestaan en weigeren voor meer informatie.
Hiermee bepaalt u of compressie moet worden gebruikt bij het uploaden van metrische gegevens. Is van toepassing op alle uploaddoelen.
Voorbeeld: waar
Niet vereist
Standaardwaarde: true
AzureDomain
Hiermee geeft u het Azure-domein op het hoogste niveau op dat moet worden gebruikt bij het rechtstreeks opnemen van metrische gegevens naar Log Analytics.
Voorbeeld: azure.us
Niet vereist
Standaardwaarde: azure.com
Environment variable name
Beschrijving
ResourceId
Resource-id van de IoT Central-toepassing waarmee het apparaat communiceert. Zie de sectie Resource-id voor meer informatie.
Vereist
Standaardwaarde: geen
UploadTarget
Hiermee bepaalt u of metrische gegevens rechtstreeks naar Azure Monitor worden verzonden via HTTPS of naar IoT Central als D2C-berichten. Zie uploaddoel voor meer informatie.
Terugkerend tijdsinterval in seconden voor het verzamelen en transporteren van metrische gegevens.
Voorbeeld: 600
Niet vereist
Standaardwaarde: 300
MetricsEndpointsCSV
Door komma's gescheiden lijst met eindpunten voor het verzamelen van metrische gegevens van Prometheus. Alle module-eindpunten waaruit metrische gegevens moeten worden verzameld, moeten worden weergegeven in deze lijst.
Lijst met metrische gegevens die moeten worden verzameld, alle andere metrische gegevens worden genegeerd. Ingesteld op een lege tekenreeks om uit te schakelen. Zie lijsten toestaan en weigeren voor meer informatie.
Lijst met metrische gegevens die moeten worden genegeerd. Overschrijft AllowedMetrics, dus er wordt een metrische waarde gerapporteerd als deze is opgenomen in beide lijsten. Zie lijsten toestaan en weigeren voor meer informatie.
Hiermee bepaalt u of compressie moet worden gebruikt bij het uploaden van metrische gegevens. Is van toepassing op alle uploaddoelen.
Voorbeeld: waar
Niet vereist
Standaardwaarde: true
AzureDomain
Hiermee geeft u het Azure-domein op het hoogste niveau op dat moet worden gebruikt bij het rechtstreeks opnemen van metrische gegevens naar Log Analytics.
De module met metrische gegevensverzamelaar vereist de Azure Resource Manager-id van de IoT-hub waartoe het IoT Edge-apparaat behoort. Geef deze id op als de waarde van de ResourceID-omgevingsvariabele .
De resource-id heeft de volgende indeling:
input
/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name>
U vindt de resource-id op de pagina Eigenschappen van de IoT-hub in Azure Portal.
az resource show -g<resource group>-n<hub name>--resource-type"Microsoft.Devices/IoTHubs"
Voor de module met metrische gegevensverzamelaar is de Azure Resource Manager-id vereist van de IoT Central-toepassing waartoe het IoT Edge-apparaat behoort. Geef deze id op als de waarde van de ResourceID-omgevingsvariabele .
De resource-id heeft de volgende indeling:
input
/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.IoTCentral/IoTApps/<iot central app name>
U vindt de resource-id op de pagina Eigenschappen van de IoT Central-toepassing in Azure Portal.
Met de configuratieoptie UploadTarget bepaalt u of metrische gegevens rechtstreeks naar Azure Monitor of naar IoT Hub worden verzonden.
Als u UploadTarget instelt op IoTMessage, worden de metrische gegevens van uw module gepubliceerd als IoT-berichten. Deze berichten worden verzonden als UTF8-gecodeerde json van het eindpunt /messages/modules/<metrics collector module name>/outputs/metricOutput. Als uw IoT Edge Metrics Collector-module bijvoorbeeld IoTEdgeMetricsCollector heet, is /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutputhet eindpunt . De indeling is als volgt:
Met de configuratieoptie UploadTarget bepaalt u of metrische gegevens rechtstreeks naar Azure Monitor of Naar IoT Central worden verzonden.
Als u UploadTarget instelt op IoTMessage, worden de metrische gegevens van uw module gepubliceerd als IoT-berichten. Deze berichten worden verzonden als UTF8-gecodeerde json van het eindpunt /messages/modules/<metrics collector module name>/outputs/metricOutput. Als uw IoT Edge Metrics Collector-module bijvoorbeeld IoTEdgeMetricsCollector heet, is /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutputhet eindpunt . De indeling is als volgt:
De AllowedMetrics opties voor en BlockedMetrics configuratie nemen ruimte- of door komma's gescheiden lijsten met metrische selectors in beslag. Een metrische waarde komt overeen met de lijst en wordt opgenomen of uitgesloten als deze overeenkomt met een of meer metrische gegevens in een van beide lijsten.
Metrische selectors gebruiken een indeling die vergelijkbaar is met een subset van de PromQL-querytaal .
Jokertekens * (alle tekens) en ? (elk willekeurig teken) kunnen worden gebruikt in metrische namen. Zou bijvoorbeeld *CPU overeenkomen maxCPU en minCPU maar niet CPUMaximum.
???CPU zou overeenkomen maxCPU en minCPU maar niet maximumCPU.
Dit onderdeel is vereist in een metrische selector.
De URL moet exact overeenkomen met een URL die wordt vermeld in MetricsEndpointsCSV.
Dit onderdeel is optioneel in een metrische selector.
Een metrische waarde moet overeenkomen met alle onderdelen van een bepaalde selector die moet worden geselecteerd. Deze moet overeenkomen met de naam en dezelfde labels hebben met overeenkomende waarden en afkomstig zijn van het opgegeven eindpunt. Zou bijvoorbeeld mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics] niet overeenkomen met de kiezer mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]. Er moeten meerdere selectors worden gebruikt voor het maken van of-achtig gedrag in plaats van en-achtig gedrag.
Als u bijvoorbeeld de aangepaste metrische gegevens mem wilt toestaan met een label uit een module module1 , maar alleen dezelfde metrische gegevens van module2 het label agg=p99wilt toestaan, kan de volgende selector worden toegevoegd aan AllowedMetrics:
De module metrics-collector is geschreven in .NET Core. Gebruik dus dezelfde richtlijnen als voor systeemmodules om communicatie via een proxyserver mogelijk te maken.
Verzameling met metrische gegevens van lokale modules maakt gebruik van http-protocol. Sluit lokale communicatie uit van het doorlopen van de proxyserver door de NO_PROXY omgevingsvariabele in te stellen.
Stel NO_PROXY een waarde in op een door komma's gescheiden lijst met hostnamen die moeten worden uitgesloten. Gebruik modulenamen voor hostnamen. Bijvoorbeeld: edgeHub, edgeAgent, myCustomModule.
Soms is het nodig om metrische gegevens via IoT Hub op te nemen in plaats van ze rechtstreeks naar Log Analytics te verzenden. Wanneer u bijvoorbeeld IoT Edge-apparaten bewaakt in een geneste configuratie waarbij onderliggende apparaten alleen toegang hebben tot de IoT Edge-hub van hun bovenliggende apparaat. Een ander voorbeeld is bij het implementeren van een IoT Edge-apparaat met alleen uitgaande netwerktoegang tot IoT Hub.
Als u bewaking in dit scenario wilt inschakelen, kan de module metrics-collector worden geconfigureerd voor het verzenden van metrische gegevens als D2C-berichten (device-to-cloud) via de edgeHub-module. De mogelijkheid kan worden ingeschakeld door de UploadTarget omgevingsvariabele IoTMessage in te stellen in de collectorconfiguratie.
Tip
Vergeet niet om een edgeHub-route toe te voegen om metrische berichten van de collectormodule te leveren aan IoT Hub. Deze ziet er uit als FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.
Deze optie vereist extra instellingen, een cloudwerkstroom, om metrische berichten te leveren die bij IoT Hub binnenkomen bij de Log Analytics-werkruimte. Zonder deze configuratie werken de andere delen van de integratie, zoals gecureerde visualisaties en waarschuwingen , niet.
Notitie
Houd rekening met extra kosten met deze optie. Berichten met metrische gegevens tellen mee voor uw IoT Hub-berichtquotum. Er worden ook kosten in rekening gebracht voor Log Analytics-opname en cloudwerkstroomresources.
Voorbeeld van cloudwerkstroom
Een cloudwerkstroom die metrische berichten van IoT Hub naar Log Analytics levert, is beschikbaar als onderdeel van het ioT Edge-logboekregistratie- en bewakingsvoorbeeld. Het voorbeeld kan worden geïmplementeerd op bestaande cloudresources of dienen als referentiemateriaal voor productie-implementaties.
Soms is het nodig om metrische gegevens via IoT Central op te nemen in plaats van ze rechtstreeks naar Log Analytics te verzenden. Wanneer u bijvoorbeeld IoT Edge-apparaten bewaakt in een geneste configuratie waarbij onderliggende apparaten alleen toegang hebben tot de IoT Edge-hub van hun bovenliggende apparaat. Een ander voorbeeld is het implementeren van een IoT Edge-apparaat met alleen uitgaande netwerktoegang tot IoT Central.
Als u bewaking in dit scenario wilt inschakelen, kan de module metrics-collector worden geconfigureerd voor het verzenden van metrische gegevens als D2C-berichten (device-to-cloud) via de edgeHub-module. De mogelijkheid kan worden ingeschakeld door de UploadTarget omgevingsvariabele IoTMessage in te stellen in de collectorconfiguratie.
In het volgende voorbeeldimplementatiemanifest ziet u de configuratie:
Vergeet niet om een edgeHub-route toe te voegen om metrische berichten van de collectormodule aan IoT Central te leveren. Deze ziet er uit als FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.
De metrische gegevens van uw IoT Edge-apparaat weergeven in uw IoT Central-toepassing:
Voeg de standaardinterface van IoT Edge Metrics toe als een overgenomen interface aan uw apparaatsjabloon:
Gebruik de telemetriewaarden die zijn gedefinieerd in de interface om dashboards te bouwen die u nodig hebt om uw IoT Edge-apparaten te bewaken:
Notitie
Houd rekening met extra kosten met deze optie. Berichten met metrische gegevens tellen mee voor uw IoT Central-berichtquotum.
Meer informatie over het bewaken van IoT Edge-modules en -apparaten met behulp van Azure Monitor Workbooks for IoT. De status en prestaties van uw IoT Edge-implementaties bewaken.