Überwachen von Azure IoT Hub
Dieser Artikel beschreibt Folgendes:
- Die Arten von Überwachungsdaten, die Sie für diesen Dienst sammeln können
- Möglichkeiten zum Analysieren dieser Daten.
Hinweis
Wenn Sie bereits mit diesem Dienst und/oder Azure Monitor vertraut sind und nur wissen möchten, wie Überwachungsdaten analysiert werden, lesen Sie den Abschnitt Analysieren am Ende dieses Artikels.
Wenn Sie über unternehmenskritische Anwendungen und Geschäftsprozesse verfügen, die auf Azure-Ressourcen basieren, müssen Sie diese überwachen und Warnungen für Ihr System abrufen. Der Azure Monitor-Dienst sammelt und aggregiert Metriken und Protokolle aus jeder Komponente Ihres Systems. Azure Monitor bietet Ihnen eine Übersicht über Verfügbarkeit, Leistung und Resilienz und benachrichtigt Sie über Probleme. Sie können das Azure-Portal, PowerShell, die Azure CLI, die REST-API oder Clientbibliotheken verwenden, um Überwachungsdaten einzurichten und anzuzeigen.
- Weitere Informationen zu Azure Monitor finden Sie unter Azure Monitor – Übersicht.
- Weitere Informationen zum Überwachen von Azure-Ressourcen im Allgemeinen finden Sie unter Überwachen von Azure-Ressourcen mit Azure Monitor.
Überwachen der Verbindungstrennungen pro Gerät mithilfe von Event Grid
Azure Monitor bietet eine Metrik namens Verbundene Geräte, mit der Sie die Anzahl der mit Ihrem IoT Hub verbundenen Geräte überwachen können. Diese Metrik löst eine Warnung aus, wenn die Anzahl der verbundenen Geräte einen Schwellenwert unterschreitet. Azure Monitor gibt auch Ereignisse in der Verbindungskategorie aus, die Sie zum Überwachen von Geräteverbindungen, Verbindungstrennungen und Verbindungsfehlern verwenden können. Während diese Ereignisse für einige Szenarien vielleicht ausreichen, bietet Azure Event Grid eine Überwachungslösung mit niedriger Latenz pro Gerät, anhand derer Sie Geräteverbindungen bei kritischen Geräten und einer kritischen Infrastruktur nachverfolgen können.
Mit Event Grid können Sie die Ereignisse DeviceConnected und DeviceDisconnected in IoT Hub abonnieren, um Warnungen auszulösen und den Geräteverbindungsstatus zu überwachen. Weil Event Grid eine viel niedrigere Ereignislatenz als Azure Monitor bietet, können Sie die Überwachung pro Gerät statt für alle verbundenen Geräte durchführen. Diese Faktoren machen Event Grid zur bevorzugten Methode für die Überwachung von Verbindungen von kritischen Geräten und einer kritischen Infrastruktur. Es wird dringend empfohlen, Event Grid zur Überwachung von Geräteverbindungen in Produktionsumgebungen zu verwenden.
Weitere Informationen zum Überwachen der Gerätekonnektivität mithilfe von Event Grid und Azure Monitor finden Sie unter Überwachen, Diagnostizieren und Beheben von Problemen bei der Gerätekonnektivität mit Azure IoT Hub.
Ressourcentypen
Azure verwendet das Konzept von Ressourcentypen und IDs, um alles in einem Abonnement zu identifizieren. Ressourcentypen sind auch Teil der Ressourcen-IDs für jede Ressource, die in Azure ausgeführt wird. Beispiel: Ein Ressourcentyp für eine VM ist Microsoft.Compute/virtualMachines
. Eine Liste der Dienste und ihrer zugehörigen Ressourcentypen finden Sie unter Ressourcenanbieter.
Ähnliche organisiert Azure Monitor die Kernüberwachungsdaten in Metriken und Protokollen basierend auf Ressourcentypen, die auch als Namespaces bezeichnet werden. Für unterschiedliche Ressourcentypen stehen unterschiedliche Metriken und Protokolle zur Verfügung. Ihr Dienst ist möglicherweise mehr als einem Ressourcentyp zugeordnet.
Weitere Informationen zu den Ressourcentypen für IoT Hub finden Sie unter Referenz zu Azure IoT Hub-Überwachungsdaten.
Datenspeicher
For Azure Monitor:
- Metrikdaten werden in der Azure Monitor-Metrikendatenbank gespeichert.
- Protokolldaten werden im Azure Monitor-Protokollspeicher gespeichert. Log Analytics ist ein Tool im Azure-Portal zum Abfragen dieses Speichers.
- Das Azure-Aktivitätsprotokoll ist ein separater Speicher mit eigener Schnittstelle im Azure-Portal.
Optional können Sie Metrik- und Aktivitätsprotokolldaten an den Azure Monitor-Protokollspeicher weiterleiten. Anschließend können Sie Log Analytics verwenden, um die Daten abzufragen und mit anderen Protokolldaten zu korrelieren.
Viele Dienste können Diagnoseeinstellungen verwenden, um Metrik- und Protokolldaten an andere Speicherorte außerhalb von Azure Monitor zu senden. Beispiele umfassen Azure Storage, gehostete Partnersysteme und Nicht-Azure-Partnersysteme, die Event Hubs verwenden.
Detaillierte Informationen dazu, wie Azure Monitor Daten speichert, finden Sie unter Azure Monitor-Datenplattform.
Sammlung und Routing
Bei Plattformmetriken, dem Aktivitätsprotokoll und Ressourcenprotokollen gibt es eindeutige Spezifikationen für Sammlung, Speicher und Routing.
Im Azure-Portal können Sie aus Ihrem IoT-Hub unter Überwachung die Option Diagnoseeinstellungen und dann Diagnoseeinstellung hinzufügen auswählen, um Diagnoseeinstellungen zu erstellen, die auf die von Ihrem IoT-Hub ausgegebenen Protokolle und Plattformmetriken festgelegt sind.
Der folgende Screenshot zeigt eine Diagnoseeinstellung für die Weiterleitung des Ressourcenprotokolltyps Verbindungsvorgänge und aller Plattformmetriken an einen Log Analytics-Arbeitsbereich:
Beim Routing von IoT Hub-Plattformmetriken an andere Speicherorte gilt:
Diese Plattformmetriken können nicht über Diagnoseeinstellungen exportiert werden: Verbundene Geräte und Geräte gesamt.
Mehrdimensionale Metriken, z B. einige Routingmetriken, werden zurzeit als vereinfachte eindimensionale Metriken exportiert, die über Dimensionswerte aggregiert werden. Weitere Informationen finden Sie unter Exportieren von Plattformmetriken an andere Speicherorte.
Azure Monitor-Plattformmetriken
Azure Monitor stellt Plattformmetriken für die meisten Dienste bereit. Diese Metriken sind:
- Einzeln für jeden Namespace definiert.
- In der Azure Monitor-Datenbank für Zeitreihenmetriken gespeichert.
- Einfach strukturiert und in der Lage, Warnmeldungen in Quasi-Echtzeit zu unterstützen.
- Verwendet zum Nachverfolgen der Leistung einer Ressource im Zeitverlauf.
Erfassung: Azure Monitor sammelt Plattformmetriken automatisch. Es ist keine Konfiguration erforderlich.
Routing: Sie können einige Plattformmetriken auch an Azure Monitor-Protokolle/Log Analytics weiterleiten, damit Sie diese mit anderen Protokolldaten abfragen können. Überprüfen Sie anhand der Einstellung DS-Export für die einzelnen Metriken, ob Sie eine Diagnoseeinstellung zum Weiterleiten der jeweiligen Metrik an Azure Monitor-Protokolle/Log Analytics verwenden können.
- Weitere Informationen finden Sie in der Diagnoseeinstellung „Metriken“.
- Informationen zum Konfigurieren von Diagnoseeinstellungen für einen Dienst finden Sie unter Erstellen von Diagnoseeinstellungen in Azure Monitor.
Eine Liste aller Metriken, die für alle Ressourcen in Azure Monitor gesammelt werden können, finden Sie unter Unterstützte Metriken in Azure Monitor.
Azure Monitor: Übersicht
Die Seite Übersicht im Azure-Portal für jeden IoT-Hub enthält Diagramme, die einige Nutzungsmetriken bereitstellen, z. B. die Anzahl der verwendeten Nachrichten und die Anzahl der mit dem IoT-Hub verbundenen Geräte.
Ein richtiger Zählwert für Nachrichten wird möglicherweise um 1 Minute verzögert. Aufgrund der Infrastruktur des IoT Hub-Dienstes kann der Wert bei der Aktualisierung manchmal zwischen höheren und niedrigeren Werten springen (bounce). Dieser Zähler sollte nur bei Werten, die während der letzten Minute aufgelaufen sind, falsch sein.
Die im Bereich „Übersicht“ angezeigten Informationen sind zwar nützlich, stellen aber nur eine kleine Menge der Überwachungsdaten dar, die für einen IoT-Hub verfügbar sind. Einige Überwachungsdaten werden automatisch gesammelt und sind zur Analyse verfügbar, sobald Sie Ihren IoT-Hub erstellen. Mit einigen Konfigurationsschritten können Sie zusätzliche Typen von Datensammlungen aktivieren.
Wichtig
Die vom IoT Hub-Dienst mithilfe von Azure Monitor-Ressourcenprotokollen ausgegebenen Ereignisse sind nicht unbedingt zuverlässig oder geordnet. Einige Ereignisse sind möglicherweise verloren gegangen oder nicht in der richtigen Reihenfolge. Weil Ressourcenprotokolle nicht als Echtzeitprotokolle vorgesehen sind, kann es mehrere Minuten dauern, bis Ereignisse an dem von Ihnen gewählten Zielort protokolliert werden.
Azure Monitor-Ressourcenprotokolle
Ressourcenprotokolle bieten Einblicke in Vorgänge, die von einer Azure-Ressourcen ausgeführt wurden. Protokolle werden automatisch generiert, aber Sie müssen sie an Azure Monitor-Protokolle weiterleiten, um sie zu speichern oder abzufragen. Protokolle sind in Kategorien organisiert. Ein bestimmter Namespace verfügt möglicherweise über mehrere Ressourcenprotokollkategorien.
Sammlung: Ressourcenprotokolle werden erst gesammelt und gespeichert, nachdem Sie eine Diagnoseeinstellung erstellt und die Protokolle an mindestens einen Speicherort weitergeleitet haben. Wenn Sie eine Diagnoseeinstellung erstellen, legen Sie fest, welche Kategorien von Protokollen gesammelt werden sollen. Es gibt mehrere Möglichkeiten zum Erstellen und Verwalten von Diagnoseeinstellungen, u. a. das Azure-Portal, programmgesteuert und über Azure Policy.
Routing: Der vorgeschlagene Standard besteht darin, Ressourcenprotokolle an Azure Monitor-Protokolle weiterzuleiten, damit Sie diese mit anderen Protokolldaten abfragen können. Andere Speicherorte wie z. B. Azure Storage, Azure Event Hubs und bestimmte Microsoft-Überwachungspartner sind ebenfalls verfügbar. Weitere Informationen finden Sie unter Azure-Ressourcenprotokolle und Ressourcenprotokollziele.
Ausführliche Informationen zum Sammeln, Speichern und Weiterleiten von Ressourcenprotokollen finden Sie unter Diagnoseeinstellungen in Azure Monitor.
Eine Liste aller verfügbaren Ressourcenprotokollkategorien in Azure Monitor finden Sie unter Unterstützte Ressourcenprotokolle in Azure Monitor.
Alle Ressourcenprotokolle in Azure Monitor enthalten dieselben Headerfelder, gefolgt von dienstspezifischen Feldern. Das allgemeine Schema wird in Azure Monitor-Ressourcenprotokollschema beschrieben.
Weiterleiten von Verbindungsereignissen an Protokolle
IoT Hub gibt kontinuierlich Ressourcenprotokolle für mehrere Vorgangskategorien aus. Allerdings müssen Sie zum Erfassen dieser Protokolldaten eine Diagnoseeinstellung erstellen, um die Daten an ein Ziel weiterzuleiten, an dem sie analysiert oder archiviert werden können. Ein solches Ziel ist Azure Monitor-Protokolle über einen Log Analytics-Arbeitsbereich (siehe Preise), in dem Sie die Daten mithilfe von Kusto-Abfragen analysieren können.
Die IoT Hub-Kategorie Ressourcenprotokollverbindungen gibt Vorgänge und Fehler im Zusammenhang mit Geräteverbindungen aus. Der folgende Screenshot zeigt eine Diagnoseeinstellung zum Weiterleiten dieser Protokolle an einen Log Analytics-Arbeitsbereich:
Wir empfehlen, dass Sie eine Diagnoseeinstellung so früh wie möglich nach dem Erstellen Ihres IoT-Hubs erstellen. Der Grund hierfür ist, dass IoT Hub zwar immer Ressourcenprotokolle ausgibt, doch werden diese von Azure Monitor erst gesammelt, wenn Sie sie an ein Ziel weiterleiten.
Weitere Informationen zum Weiterleiten von Protokollen an ein Ziel finden Sie unter Sammlung und Routing. Ausführliche Anleitungen zum Erstellen einer Diagnoseeinstellung finden Sie im Tutorial „Verwenden von Metriken und Protokollen“.
Azure-Aktivitätsprotokoll
Das Aktivitätsprotokoll enthält Ereignisse auf Abonnementebene, die Vorgänge für jede Azure-Ressource nachverfolgen, so wie sie von außerhalb dieser Ressource gesehen werden, z. B. das Erstellen einer neuen Ressource oder das Starten einer VM.
Sammlung: Aktivitätsprotokollereignisse werden automatisch generiert und in einem separaten Speicher für die Anzeige im Azure-Portal gesammelt.
Routing: Sie können Aktivitätsprotokolldaten an Azure Monitor-Protokolle senden, damit Sie diese zusammen mit anderen Protokolldaten analysieren können. Andere Speicherorte wie z. B. Azure Storage, Azure Event Hubs und bestimmte Microsoft-Überwachungspartner sind ebenfalls verfügbar. Weitere Informationen zum Weiterleiten von Aktivitätsprotokollen finden Sie unter Übersicht über das Azure-Aktivitätsprotokoll.
Analysieren von Protokollen
Daten in Azure Monitor-Protokollen werden in Tabellen gespeichert, wobei jede Tabelle ihren eigenen Satz an eindeutigen Eigenschaften hat. Die Daten in diesen Tabellen sind einem Log Analytics-Arbeitsbereich zugeordnet und können in Log Analytics abgefragt werden. Weitere Informationen zu Azure Monitor-Protokollen finden Sie in der Azure Monitor-Dokumentation unter Übersicht über Azure Monitor-Protokolle.
Zum Weiterleiten von Daten an Azure Monitor-Protokolle müssen Sie eine Diagnoseeinstellung erstellen, um Ressourcenprotokolle oder Plattformmetriken an einen Log Analytics-Arbeitsbereich zu senden. Weitere Informationen finden Sie unter Sammlung und Routing.
Wechseln Sie zum Ausführen von Log Analytics zum Azure-Portal, öffnen Sie Ihren IoT-Hub, und wählen Sie unter Überwachung die Option Protokolle aus. Der Bereich für diese Log-Analytics-Abfragen ist standardmäßig auf die Protokolle und Metriken festgelegt, die in Azure Monitor-Protokollen für Ihren IoT-Hub gesammelt wurden.
Beim Routing von IoT Hub-Plattformmetriken an Azure Monitor-Protokolle gilt:
Die folgenden Plattformmetriken können nicht mithilfe von Diagnoseeinstellungen exportiert werden: Verbundene Geräte und Geräte gesamt.
Mehrdimensionale Metriken, z B. einige Routingmetriken, werden zurzeit als vereinfachte eindimensionale Metriken exportiert, die über Dimensionswerte aggregiert werden. Weitere Informationen finden Sie unter Exportieren von Plattformmetriken an andere Speicherorte.
Allgemeine Abfragen mit IoT Hub finden Sie unter Kusto-Beispielabfragen. Weitere Informationen zur Verwendung von Log Analytics-Abfragen finden Sie unter Übersicht über Protokollabfragen in Azure Monitor.
SDK-Version in IoT Hub-Protokollen
Einige Vorgänge geben in ihrem properties
-Objekt eine sdkVersion
-Eigenschaft für die IoT Hub-Ressourcenprotokollezurück. Wenn für diese Vorgänge ein Gerät oder eine Back-End-App eines der Azure IoT-SDKs verwendet wird, enthält diese Eigenschaft Informationen zum verwendeten SDK, die SDK-Version und die Plattform, auf der das SDK ausgeführt wird.
Die folgenden Beispiele zeigen die für einen deviceConnect
-Vorgang ausgegebene Eigenschaft sdkVersion
mit:
- Dem Node.js-Geräte-SDK:
"azure-iot-device/1.17.1 (node v10.16.0; Windows_NT 10.0.18363; x64)"
- Dem .NET (C#)-SDK:
".NET/1.21.2 (.NET Framework 4.8.4200.0; Microsoft Windows 10.0.17763 WindowsProduct:0x00000004; X86)"
.
Die folgende Tabelle zeigt den SDK-Namen für verschiedene Azure IoT SDKs:
SDK-Name in der sdkVersion-Eigenschaft | Sprache |
---|---|
.NET | .NET (C#) |
microsoft.azure.devices | .NET-Dienst-SDK (C#) |
microsoft.azure.devices.client | .NET-Geräte-SDK (C#) |
iothubclient | Geräte-SDK mit C oder Python v1 (veraltet) |
iothubserviceclient | Dienst-SDK mit C oder Python v1 (veraltet) |
azure-iot-device-iothub-py | Python-Geräte-SDK |
azure-iot-device | Node.js-Geräte-SDK |
azure-iothub | Node.js-Dienst-SDK |
com.microsoft.azure.iothub-java-client | Java-Geräte-SDK |
com.microsoft.azure.iothub.service.sdk | Java-Dienst-SDK |
com.microsoft.azure.sdk.iot.iot-device-client | Java-Geräte-SDK |
com.microsoft.azure.sdk.iot.iot-service-client | Java-Dienst-SDK |
C | Embedded C |
C + (OSSimplified = Eclipse ThreadX) | Eclipse ThreadX |
Sie können die Eigenschaft für die SDK-Version extrahieren, wenn Sie Abfragen für IoT Hub-Ressourcenprotokolle durchführen. Die folgende Abfrage beispielsweise extrahiert die Eigenschaft für die SDK-Version (und die Geräte-ID) aus den Eigenschaften, die von Verbindungsvorgängen zurückgegeben wurden. Diese beiden Eigenschaften werden zusammen mit dem Zeitpunkt des Vorgangs und der Ressourcen-ID des IoT-Hubs, mit dem das Gerät eine Verbindung herstellt, in die Ergebnisse geschrieben.
// SDK version of devices
// List of devices and their SDK versions that connect to IoT Hub
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
| where Category == "Connections"
| extend parsed_json = parse_json(properties_s)
| extend SDKVersion = tostring(parsed_json.sdkVersion) , DeviceId = tostring(parsed_json.deviceId)
| distinct DeviceId, SDKVersion, TimeGenerated, _ResourceId
Lesen von Protokollen aus Azure Event Hubs
Nachdem Sie die Ereignisprotokollierung über Diagnoseeinstellungen eingerichtet haben, können Sie Anwendungen erstellen, die die Protokolle lesen, sodass Sie anhand der darin enthaltenen Informationen Maßnahmen ergreifen können. Der folgende Beispielcode ruft Protokolle aus einem Event Hub ab.
class Program
{
static string connectionString = "{your AMS eventhub endpoint connection string}";
static string monitoringEndpointName = "{your AMS event hub endpoint name}";
static EventHubClient eventHubClient;
//This is the Diagnostic Settings schema
class AzureMonitorDiagnosticLog
{
string time { get; set; }
string resourceId { get; set; }
string operationName { get; set; }
string category { get; set; }
string level { get; set; }
string resultType { get; set; }
string resultDescription { get; set; }
string durationMs { get; set; }
string callerIpAddress { get; set; }
string correlationId { get; set; }
string identity { get; set; }
string location { get; set; }
Dictionary<string, string> properties { get; set; }
};
static void Main(string[] args)
{
Console.WriteLine("Monitoring. Press Enter key to exit.\n");
eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, monitoringEndpointName);
var d2cPartitions = eventHubClient.GetRuntimeInformationAsync().PartitionIds;
CancellationTokenSource cts = new CancellationTokenSource();
var tasks = new List<Task>();
foreach (string partition in d2cPartitions)
{
tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
}
Console.ReadLine();
Console.WriteLine("Exiting...");
cts.Cancel();
Task.WaitAll(tasks.ToArray());
}
private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
{
var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
while (true)
{
if (ct.IsCancellationRequested)
{
await eventHubReceiver.CloseAsync();
break;
}
EventData eventData = await eventHubReceiver.ReceiveAsync(new TimeSpan(0,0,10));
if (eventData != null)
{
string data = Encoding.UTF8.GetString(eventData.GetBytes());
Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
var deserializer = new JavaScriptSerializer();
//deserialize json data to azure monitor object
AzureMonitorDiagnosticLog message = new JavaScriptSerializer().Deserialize<AzureMonitorDiagnosticLog>(result);
}
}
}
}
Die verfügbaren Ressourcenprotokollkategorien, ihre zugehörigen Log Analytics-Tabellen und die Protokollschemas für IoT Hub finden Sie in der Referenz zu Azure IoT Hub-Überwachungsdaten.
Analysieren von Überwachungsdaten
Es gibt viele Tools zum Analysieren von Überwachungsdaten.
Azure Monitor-Tools
Azure Monitor unterstützt die folgenden grundlegenden Tools:
Metriken-Explorer, ein Tool im Azure-Portal, mit dem Sie Metriken für Azure-Ressourcen anzeigen und analysieren können. Weitere Informationen finden Sie unter Analysieren von Metriken mit dem Azure Monitor-Metrik-Explorer.
Log Analytics, ein Tool im Azure-Portal, mit dem Sie Protokolldaten mithilfe der KQL-Abfragesprache abfragen und analysieren können. Weitere Informationen finden Sie unter Erste Schritte mit Protokollabfragen in Azure Monitor.
Das Aktivitätsprotokoll, das über eine Benutzeroberfläche im Azure-Portal für die Anzeige und einfache Suchvorgänge verfügt. Um ausführlichere Analysen durchzuführen, müssen Sie die Daten an Azure Monitor-Protokolle weiterleiten und komplexere Abfragen in Log Analytics ausführen.
Zu den Tools, die eine komplexere Visualisierung ermöglichen, gehören:
- Dashboards, mit denen Sie verschiedene Typen von Daten in einen einzelnen Bereich im Azure-Portal kombinieren können.
- Arbeitsmappen, anpassbare Berichte, die Sie im Azure-Portal erstellen können. Arbeitsmappen können Text, Metriken und Protokollabfragen enthalten.
- Grafana, ein Tool auf einer offenen Plattform, das für operationale Dashboards ideal ist. Sie können Grafana verwenden, um Dashboards zu erstellen, die Daten aus mehreren anderen Quellen als Azure Monitor enthalten.
- Power BI ist ein Geschäftsanalysedienst, der interaktive Visualisierungen für verschiedene Datenquellen bereitstellt. Sie können Power BI für den automatischen Import von Protokolldaten aus Azure Monitor konfigurieren, um diese Visualisierungen zu nutzen.
Exporttools für Azure Monitor
Sie können Daten aus Azure Monitor in andere Tools abrufen, indem Sie die folgenden Methoden verwenden:
Metriken: Verwenden Sie die REST-API für Metriken, um Metrikdaten aus der Azure Monitor-Metrikendatenbank zu extrahieren. Die API unterstützt Filterausdrücke, um die abgerufenen Daten zu verfeinern. Weitere Informationen finden Sie in der Referenz zur Azure Monitor-REST-API.
Protokolle: Verwenden Sie die REST-API oder die zugeordneten Clientbibliotheken.
Eine weitere Option ist der Arbeitsbereichsdatenexport.
Informationen zu den ersten Schritten mit der REST-API für Azure Monitor finden Sie in der exemplarischen Vorgehensweise für die Azure-Überwachungs-REST-API.
Kusto-Abfragen
Sie können Überwachungsdaten im Azure Monitor Logs / Log Analytics Store mithilfe der Kusto-Abfragesprache (KQL) analysieren.
Wichtig
Wenn Sie Protokolle im Menü des Diensts im Portal auswählen, wird Log Analytics geöffnet, wobei der Abfragebereich auf den aktuellen Dienst festgelegt ist. Dieser Bereich bedeutet, dass Protokollabfragen nur Daten aus diesem Ressourcentyp umfassen. Wenn Sie eine Abfrage durchführen möchten, die Daten aus anderen Azure-Diensten enthält, wählen Sie im Menü Azure Monitor die Option Protokolle aus. Ausführliche Informationen finden Sie unter Protokollabfragebereich und Zeitbereich in Azure Monitor Log Analytics.
Eine Liste häufiger Abfragen für alle Dienste finden Sie unter Log Analytics-Abfrageschnittstelle.
Mithilfe der folgenden Kusto-Abfragen können Sie Ihren IoT-Hub überwachen.
Verbindungsfehler: Identifizieren Sie Geräteverbindungsfehler.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" and Level == "Error"
Drosselungsfehler: Identifizieren Sie Geräte mit den meisten gesendeten Anforderungen, was zu Drosselungsfehlern geführt hat.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where ResultType == "429001" | extend DeviceId = tostring(parse_json(properties_s).deviceId) | summarize count() by DeviceId, Category, _ResourceId | order by count_ desc
Unzustellbare Endpunkte: Identifizieren Sie unzustellbare oder fehlerhafte Endpunkte anhand der Häufigkeit, mit der das Problem gemeldet wurde, und erfahren Sie mehr über die Ursache dafür.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Routes" and OperationName in ("endpointDead", "endpointUnhealthy") | extend parsed_json = parse_json(properties_s) | extend Endpoint = tostring(parsed_json.endpointName), Reason = tostring(parsed_json.details) | summarize count() by Endpoint, OperationName, Reason, _ResourceId | order by count_ desc
Fehlerzusammenfassung: Anzahl von Fehlern über alle Vorgänge nach Typ.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Level == "Error" | summarize count() by ResultType, ResultDescription, Category, _ResourceId
Zuletzt verbundene Geräte: Liste der Geräte, die im angegebenen Zeitraum mit IoT Hub verbunden wurden.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" and OperationName == "deviceConnect" | extend DeviceId = tostring(parse_json(properties_s).deviceId) | summarize max(TimeGenerated) by DeviceId, _ResourceId
Verbindungsereignisse für ein bestimmtes Gerät: Alle Verbindungsereignisse, die für ein bestimmtes Gerät (test-device) protokolliert wurden.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" | extend DeviceId = tostring(parse_json(properties_s).deviceId) | where DeviceId == "test-device"
SDK-Version von Geräten: Liste von Geräten und deren SDK-Versionen für Geräteverbindungen oder Gerät-zu-Cloud-Zwillingsvorgängen.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" or Category == "D2CTwinOperations" | extend parsed_json = parse_json(properties_s) | extend SDKVersion = tostring(parsed_json.sdkVersion) , DeviceId = tostring(parsed_json.deviceId) | distinct DeviceId, SDKVersion, TimeGenerated, _ResourceId
Alerts
Azure Monitor-Warnungen informieren Sie proaktiv, wenn bestimmte Bedingungen in Ihren Überwachungsdaten auftreten. Warnungen ermöglichen Ihnen, Probleme in Ihrem System zu identifizieren und zu beheben, bevor Ihre Kunden sie bemerken. Weitere Informationen finden Sie unter Azure Monitor-Warnungen.
Es gibt viele Quellen allgemeiner Warnungen für Azure-Ressourcen. Beispiele für häufige Warnungen für Azure-Ressourcen finden Sie in den Beispielabfragen für Protokollwarnungen. Die Website Azure Monitor-Baselinewarnungen (Azure Monitor Baseline Alerts, AMBA) stellt eine halbautomatisierte Methode für die Implementierung wichtiger Metrikwarnungen der Plattform, Dashboards und Richtlinien bereit. Die Website gilt für eine fortlaufend erweiterte Teilmenge von Azure-Diensten, einschließlich aller Dienste, die Teil der Azure-Zielzone (Azure Landing Zone, ALZ) sind.
Mit dem allgemeinen Warnungsschema wird die Benutzeroberfläche für Warnungsbenachrichtigungen in Azure Monitor standardisiert. Weitere Informationen finden Sie unter Allgemeines Warnungsschema.
Warnungstypen
Sie können zu jeder Metrik oder Protokolldatenquelle der Azure Monitor-Datenplattform Warnungen erhalten. Es gibt viele verschiedene Typen von Warnungen, abhängig von den Diensten, die Sie überwachen, und den Überwachungsdaten, die Sie sammeln. Verschiedene Typen von Warnungen haben jeweils ihre Vor- und Nachteile. Weitere Informationen finden Sie unter Auswählen des richtigen Warnungsregeltyps.
In der folgenden Liste werden die Typen von Azure Monitor-Warnungen beschrieben, die Sie erstellen können:
- Metrikwarnungen bewerten Ressourcenmetriken in regelmäßigen Abständen. Metriken können Plattformmetriken, benutzerdefinierte Metriken, in Metriken konvertierte Protokolle aus Azure Monitor oder Application Insights-Metriken sein. Metrikwarnungen können auch mehrere Bedingungen und dynamische Schwellwerte anwenden.
- Protokollwarnungen ermöglichen es Benutzern, eine Log Analytics-Abfrage zum Auswerten von Ressourcenprotokollen in vordefinierten Frequenz zu verwenden.
- Aktivitätsprotokollwarnungen werden ausgelöst, wenn ein neues Aktivitätsprotokollereignis eintritt, das definierte Bedingungen erfüllt. Resource Health- und Service Health-Warnungen sind Aktivitätsprotokollwarnungen, die über die Dienst- und Ressourcenintegrität berichten.
Einige Azure-Dienste unterstützen auch intelligente Erkennungswarnungen, Prometheus-Warnungen oder empfohlene Warnungsregeln.
Einige Dienste können Sie im großen Stil überwachen, indem Sie dieselbe Metrikwarnungsregel auf mehrere Ressourcen desselben Typs anwenden, die sich in derselben Azure-Region befinden. Für jede überwachte Ressource werden einzelne Benachrichtigungen gesendet. Unterstützte Azure-Dienste und -Clouds finden Sie unter Überwachen mehrerer Ressourcen mit einer Warnungsregel.
IoT Hub-Warnungsregeln
Sie können Warnungen für alle Metriken, Protokolleinträge oder Aktivitätsprotokolleinträge festlegen, die in der IoT Hub-Überwachungsdatenreferenz aufgeführt sind.
Einrichten von Metrikwarnungen bei einer Trennung der Geräteverbindung
Sie können Warnungen basierend auf den Plattformmetriken einrichten, die von IoT Hub ausgegeben werden. Mit Metrikwarnungen können Sie Personen benachrichtigen, dass eine relevante Bedingung aufgetreten ist, und außerdem Aktionen auslösen, um auf diese Bedingung automatisch zu reagieren.
Die Metrik Verbundene Geräte (Vorschau) informiert Sie, wie viele Geräte mit Ihrem IoT-Hub verbunden sind. Wenn diese Metrik unter einen Schwellenwert fällt, kann eine Warnung Folgendes auslösen:
Sie können Anomalien bei der Trennung von Geräteverbindungen mithilfe von Metrikwarnungsregeln im großen Stil überwachen. Das bedeutet, dass Sie anhand von Warnungen herausfinden können, wenn bei einer erheblichen Anzahl von Geräten unerwartet die Verbindung getrennt wird. Wenn diese Situation erkannt wird, können Sie sich die Protokolle ansehen, um das Problem zu behandeln. Zum Überwachen von Trennungen pro Gerät und Trennungen bei kritischen Geräten nahezu in Echtzeit müssen Sie jedoch Event Grid verwenden.
Weitere Informationen zu Warnungen bei IoT Hub finden Sie unter Warnungen in Monitor IoT Hub. Eine exemplarische Vorgehensweise zum Erstellen von Warnungen in IoT Hub finden Sie im Tutorial „Verwenden von Metriken und Protokollen“. Eine ausführlichere Übersicht über Warnungen finden Sie in der Azure Monitor-Dokumentation unter Überblick über Warnungen in Microsoft Azure.
Advisor-Empfehlungen
Wenn in einigen Diensten während eines Ressourcenvorgangs kritische Bedingungen oder unmittelbar bevorstehende Änderungen auftreten, wird auf der Dienstseite Übersicht im Portal eine Warnung angezeigt. Weitere Informationen und empfohlene Korrekturen für die Warnung finden Sie in Advisor-Empfehlungen unter Überwachung im linken Menü. Während des normalen Betriebs werden keine Advisor-Empfehlungen angezeigt.
Weitere Informationen zu Azure Advisor finden Sie unter Azure Advisor – Übersicht.
Zugehöriger Inhalt
- Eine Referenz zu den Metriken, Protokollen und anderen wichtigen Werten, die für IoT Hub erstellt werden, finden Sie in der Referenz zu Azure IoT-Überwachungsdaten.
- Allgemeine Informationen zur Überwachung von Azure-Ressourcen finden Sie unter Überwachen von Azure-Ressourcen mit Azure Monitor.
- Weitere Informationen zur Überwachung von Geräteverbindungen finden Sie unter Überwachen, Diagnostizieren und Beheben von Problemen bei der Gerätekonnektivität mit Azure IoT Hub.