Monitorowanie usługi Azure IoT Hub
W tym artykule opisano:
- Typy danych monitorowania, które można zbierać dla tej usługi.
- Sposoby analizowania tych danych.
Uwaga
Jeśli znasz już tę usługę i/lub usługę Azure Monitor i chcesz wiedzieć, jak analizować dane monitorowania, zobacz sekcję Analizowanie pod koniec tego artykułu.
Jeśli masz krytyczne aplikacje i procesy biznesowe korzystające z zasobów platformy Azure, musisz monitorować i otrzymywać alerty dla systemu. Usługa Azure Monitor zbiera i agreguje metryki i dzienniki z każdego składnika systemu. Usługa Azure Monitor zapewnia wgląd w dostępność, wydajność i odporność oraz powiadamia o problemach. Do konfigurowania i wyświetlania danych monitorowania można użyć witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST lub bibliotek klienckich.
- Aby uzyskać więcej informacji na temat usługi Azure Monitor, zobacz Omówienie usługi Azure Monitor.
- Aby uzyskać więcej informacji na temat ogólnego monitorowania zasobów platformy Azure, zobacz Monitorowanie zasobów platformy Azure za pomocą usługi Azure Monitor.
Monitorowanie rozłączania poszczególnych urządzeń za pomocą usługi Event Grid
Usługa Azure Monitor udostępnia metrykę o nazwie Połączone urządzenia , których można użyć do monitorowania liczby urządzeń połączonych z usługą IoT Hub. Ta metryka wyzwala alert, gdy liczba połączonych urządzeń spadnie poniżej wartości progowej. Usługa Azure Monitor emituje również zdarzenia w kategorii połączeń, których można użyć do monitorowania połączeń, rozłączeń i błędów połączenia. Chociaż te zdarzenia mogą być wystarczające w niektórych scenariuszach, usługa Azure Event Grid zapewnia rozwiązanie do monitorowania urządzeń o małym opóźnieniu, którego można użyć do śledzenia połączeń urządzeń pod kątem krytycznych urządzeń i infrastruktury.
Usługa Event Grid umożliwia subskrybowanie zdarzeń IoT Hub DeviceConnected i DeviceDisconnected w celu wyzwolenia alertów i monitorowania stanu połączenia urządzenia. Usługa Event Grid zapewnia znacznie mniejsze opóźnienie zdarzeń niż usługa Azure Monitor, dzięki czemu można monitorować je na poszczególnych urządzeniach, a nie dla wszystkich połączonych urządzeń. Te czynniki sprawiają, że usługa Event Grid jest preferowaną metodą monitorowania połączeń dla urządzeń krytycznych i infrastruktury. Zdecydowanie zalecamy używanie usługi Event Grid do monitorowania połączeń urządzeń w środowiskach produkcyjnych.
Aby uzyskać więcej informacji na temat monitorowania łączności urządzeń za pomocą usługi Event Grid i usługi Azure Monitor, zobacz Monitorowanie, diagnozowanie i rozwiązywanie problemów z łącznością urządzeń z usługą Azure IoT Hub.
Typy zasobów
Platforma Azure używa koncepcji typów zasobów i identyfikatorów, aby zidentyfikować wszystko w subskrypcji. Typy zasobów są również częścią identyfikatorów zasobów dla każdego zasobu uruchomionego na platformie Azure. Na przykład jeden typ zasobu dla maszyny wirtualnej to Microsoft.Compute/virtualMachines
. Aby uzyskać listę usług i skojarzonych z nimi typów zasobów, zobacz Dostawcy zasobów.
Usługa Azure Monitor podobnie organizuje podstawowe dane monitorowania w metryki i dzienniki na podstawie typów zasobów, nazywanych również przestrzeniami nazw. Różne metryki i dzienniki są dostępne dla różnych typów zasobów. Usługa może być skojarzona z więcej niż jednym typem zasobu.
Aby uzyskać więcej informacji na temat typów zasobów dla usługi IoT Hub, zobacz Dokumentacja danych monitorowania usługi Azure IoT Hub.
Magazyn danych
W przypadku usługi Azure Monitor:
- Dane metryk są przechowywane w bazie danych metryk usługi Azure Monitor.
- Dane dziennika są przechowywane w magazynie dzienników usługi Azure Monitor. Log Analytics to narzędzie w witrynie Azure Portal, które może wykonywać zapytania dotyczące tego magazynu.
- Dziennik aktywności platformy Azure to oddzielny magazyn z własnym interfejsem w witrynie Azure Portal.
Opcjonalnie możesz kierować dane metryki i dziennika aktywności do magazynu dzienników usługi Azure Monitor. Następnie możesz użyć usługi Log Analytics, aby wykonać zapytanie o dane i skorelować je z innymi danymi dziennika.
Wiele usług może używać ustawień diagnostycznych do wysyłania danych metryk i dzienników do innych lokalizacji przechowywania poza usługą Azure Monitor. Przykłady obejmują usługę Azure Storage, hostowane systemy partnerskie i systemy partnerskie spoza platformy Azure przy użyciu usługi Event Hubs.
Aby uzyskać szczegółowe informacje na temat sposobu przechowywania danych przez usługę Azure Monitor, zobacz Azure Monitor data platformy.
Zbieranie i routing
Metryki platformy, dziennik aktywności i dzienniki zasobów mają unikatowe specyfikacje dotyczące kolekcji, magazynu i routingu.
W witrynie Azure Portal z centrum IoT w obszarze Monitorowanie możesz wybrać pozycję Ustawienia diagnostyczne, a następnie pozycję Dodaj ustawienie diagnostyczne, aby utworzyć ustawienia diagnostyczne w zakresie dzienników i metryk platformy emitowanych przez centrum IoT.
Poniższy zrzut ekranu przedstawia ustawienie diagnostyczne dotyczące routingu typu dziennika zasobów Operacje połączenia i wszystkie metryki platformy do obszaru roboczego usługi Log Analytics.
Podczas routingu metryk platformy usługi IoT Hub do innych lokalizacji:
Te metryki platformy nie można eksportować przy użyciu ustawień diagnostycznych: Połączone urządzenia i łączna liczba urządzeń.
Metryki wielowymiarowe, na przykład niektóre metryki routingu, są obecnie eksportowane jako spłaszczone metryki jednowymiarowe agregowane między wartościami wymiarów. Aby uzyskać więcej informacji, zobacz Eksportowanie metryk platformy do innych lokalizacji.
Metryki platformy usługi Azure Monitor
Usługa Azure Monitor udostępnia metryki platformy dla większości usług. Te metryki to:
- Definiowane indywidualnie dla każdej przestrzeni nazw.
- Przechowywane w bazie danych metryk szeregów czasowych usługi Azure Monitor.
- Lekki i zdolny do obsługi alertów niemal w czasie rzeczywistym.
- Służy do śledzenia wydajności zasobu w czasie.
Kolekcja: usługa Azure Monitor automatycznie zbiera metryki platformy. Nie jest wymagana żadna konfiguracja.
Routing: możesz również kierować niektóre metryki platformy do dzienników usługi Azure Monitor/ usługi Log Analytics, aby móc wykonywać zapytania względem nich przy użyciu innych danych dziennika. Sprawdź ustawienie eksportu DS dla każdej metryki, aby sprawdzić, czy możesz użyć ustawienia diagnostycznego, aby kierować metrykę do dzienników usługi Azure Monitor/ usługi Log Analytics.
- Aby uzyskać więcej informacji, zobacz ustawienie diagnostyczne Metryki.
- Aby skonfigurować ustawienia diagnostyczne dla usługi, zobacz Tworzenie ustawień diagnostycznych w usłudze Azure Monitor.
Aby uzyskać listę wszystkich metryk, które można zebrać dla wszystkich zasobów w usłudze Azure Monitor, zobacz Obsługiwane metryki w usłudze Azure Monitor.
Omówienie narzędzia Monitor
Strona Przegląd w witrynie Azure Portal dla każdego centrum IoT zawiera wykresy zawierające niektóre metryki użycia, takie jak liczba używanych komunikatów i liczba urządzeń połączonych z centrum IoT.
Prawidłowa wartość liczby komunikatów może być opóźniona o 1 minutę. Ze względu na infrastrukturę usługi IoT Hub wartość może czasami odbijać się między wyższymi i niższymi wartościami podczas odświeżania. Ten licznik powinien być niepoprawny tylko dla wartości naliczonych w ciągu ostatniej minuty.
Informacje przedstawione w okienku Przegląd są przydatne, ale reprezentują tylko niewielką ilość danych monitorowania dostępnych dla centrum IoT. Niektóre dane monitorowania są zbierane automatycznie i dostępne do analizy zaraz po utworzeniu centrum IoT. W przypadku niektórych konfiguracji można włączyć inne typy zbierania danych.
Ważne
Zdarzenia emitowane przez usługę IoT Hub przy użyciu dzienników zasobów usługi Azure Monitor nie są gwarantowane jako niezawodne ani uporządkowane. Niektóre zdarzenia mogą zostać utracone lub dostarczone z zamówienia. Dzienniki zasobów nie są przeznaczone do czasu rzeczywistego, więc może upłynąć kilka minut, aby zdarzenia zostały zarejestrowane w wybranym miejscu docelowym.
Dzienniki zasobów usługi Azure Monitor
Dzienniki zasobów zapewniają wgląd w operacje wykonywane przez zasób platformy Azure. Dzienniki są generowane automatycznie, ale należy skierować je do dzienników usługi Azure Monitor, aby je zapisać lub wysłać do nich zapytanie. Dzienniki są zorganizowane w kategoriach. Dana przestrzeń nazw może mieć wiele kategorii dziennika zasobów.
Kolekcja: dzienniki zasobów nie są zbierane i przechowywane do momentu utworzenia ustawienia diagnostycznego i kierowania dzienników do co najmniej jednej lokalizacji. Podczas tworzenia ustawienia diagnostycznego należy określić kategorie dzienników, które mają być zbierane. Istnieje wiele sposobów tworzenia i konserwacji ustawień diagnostycznych, w tym witryny Azure Portal, programowo i choć usługi Azure Policy.
Routing: sugerowaną wartością domyślną jest kierowanie dzienników zasobów do dzienników usługi Azure Monitor, co umożliwia wykonywanie zapytań względem nich przy użyciu innych danych dziennika. Dostępne są również inne lokalizacje, takie jak Azure Storage, Azure Event Hubs i niektórzy partnerzy monitorowania firmy Microsoft. Aby uzyskać więcej informacji, zobacz Dzienniki zasobów platformy Azure i lokalizacje docelowe dziennika zasobów.
Aby uzyskać szczegółowe informacje na temat zbierania, przechowywania i routingu dzienników zasobów, zobacz Ustawienia diagnostyczne w usłudze Azure Monitor.
Aby uzyskać listę wszystkich dostępnych kategorii dzienników zasobów w usłudze Azure Monitor, zobacz Obsługiwane dzienniki zasobów w usłudze Azure Monitor.
Wszystkie dzienniki zasobów w usłudze Azure Monitor mają te same pola nagłówka, a następnie pola specyficzne dla usługi. Typowy schemat jest opisany w schemacie dziennika zasobów usługi Azure Monitor.
Kierowanie zdarzeń połączenia do dzienników
Usługa IoT Hub stale emituje dzienniki zasobów dla kilku kategorii operacji. Aby zebrać te dane dziennika, należy jednak utworzyć ustawienie diagnostyczne, aby skierować je do miejsca docelowego, w którym można je przeanalizować lub zarchiwizować. Jednym z takich miejsc docelowych jest dzienniki usługi Azure Monitor za pośrednictwem obszaru roboczego usługi Log Analytics (zobacz cennik), w którym można analizować dane przy użyciu zapytań Kusto.
Kategoria połączeń dzienników zasobów usługi IoT Hub emituje operacje i błędy związane z połączeniami urządzeń. Poniższy zrzut ekranu przedstawia ustawienie diagnostyczne umożliwiające kierowanie tych dzienników do obszaru roboczego usługi Log Analytics:
Zalecamy utworzenie ustawienia diagnostycznego tak szybko, jak to możliwe po utworzeniu centrum IoT, ponieważ mimo że usługa IoT Hub zawsze emituje dzienniki zasobów, usługa Azure Monitor nie zbiera ich do momentu przekierowania ich do miejsca docelowego.
Aby dowiedzieć się więcej na temat routingu dzienników do miejsca docelowego, zobacz Zbieranie i routing. Aby uzyskać szczegółowe instrukcje dotyczące tworzenia ustawienia diagnostycznego, zobacz samouczek Używanie metryk i dzienników.
Dziennik aktywności platformy Azure
Dziennik aktywności zawiera zdarzenia na poziomie subskrypcji, które śledzą operacje dla każdego zasobu platformy Azure widoczne spoza tego zasobu; na przykład utworzenie nowego zasobu lub uruchomienie maszyny wirtualnej.
Kolekcja: zdarzenia dziennika aktywności są generowane automatycznie i zbierane w osobnym magazynie do wyświetlania w witrynie Azure Portal.
Routing: możesz wysyłać dane dziennika aktywności do dzienników usługi Azure Monitor, aby móc analizować je wraz z innymi danymi dziennika. Dostępne są również inne lokalizacje, takie jak Azure Storage, Azure Event Hubs i niektórzy partnerzy monitorowania firmy Microsoft. Aby uzyskać więcej informacji na temat kierowania dziennika aktywności, zobacz Omówienie dziennika aktywności platformy Azure.
Analizowanie dzienników
Dane w dziennikach usługi Azure Monitor są przechowywane w tabelach, w których każda tabela ma własny zestaw unikatowych właściwości. Dane w tych tabelach są skojarzone z obszarem roboczym usługi Log Analytics i mogą być odpytywane w usłudze Log Analytics. Aby dowiedzieć się więcej na temat dzienników usługi Azure Monitor, zobacz Omówienie dzienników usługi Azure Monitor w dokumentacji usługi Azure Monitor.
Aby kierować dane do dzienników usługi Azure Monitor, musisz utworzyć ustawienie diagnostyczne w celu wysyłania dzienników zasobów lub metryk platformy do obszaru roboczego usługi Log Analytics. Aby dowiedzieć się więcej, zobacz Zbieranie i routing.
Aby wykonać usługę Log Analytics, przejdź do witryny Azure Portal i otwórz centrum IoT Hub, a następnie wybierz pozycję Dzienniki w obszarze Monitorowanie. Te zapytania usługi Log Analytics są domyślnie ograniczone do dzienników i metryk zebranych w dziennikach usługi Azure Monitor dla centrum IoT.
Podczas routingu metryk platformy usługi IoT Hub do dzienników usługi Azure Monitor:
Następujące metryki platformy nie można eksportować przy użyciu ustawień diagnostycznych: Połączone urządzenia i łączna liczba urządzeń.
Metryki wielowymiarowe, na przykład niektóre metryki routingu, są obecnie eksportowane jako spłaszczone metryki jednowymiarowe agregowane między wartościami wymiarów. Aby uzyskać więcej informacji, zobacz Eksportowanie metryk platformy do innych lokalizacji.
Aby zapoznać się z typowymi zapytaniami w usłudze IoT Hub, zobacz Przykładowe zapytania Kusto. Aby uzyskać więcej informacji na temat korzystania z zapytań usługi Log Analytics, zobacz Omówienie zapytań dzienników w usłudze Azure Monitor.
Wersja zestawu SDK w dziennikach usługi IoT Hub
Niektóre operacje zwracają sdkVersion
właściwość w swoim properties
obiekcie dla dzienników zasobów usługi IoT Hub. W przypadku tych operacji, gdy urządzenie lub aplikacja zaplecza korzysta z jednego z zestawów SDK usługi Azure IoT, ta właściwość zawiera informacje o używanym zestawie SDK, wersji zestawu SDK i platformie, na której jest uruchomiony zestaw SDK.
W poniższych przykładach pokazano sdkVersion
właściwość emitowaną dla deviceConnect
operacji przy użyciu:
- Zestaw SDK urządzenia Node.js:
"azure-iot-device/1.17.1 (node v10.16.0; Windows_NT 10.0.18363; x64)"
- Zestaw .NET (C#) SDK:
".NET/1.21.2 (.NET Framework 4.8.4200.0; Microsoft Windows 10.0.17763 WindowsProduct:0x00000004; X86)"
.
W poniższej tabeli przedstawiono nazwę zestawu SDK używaną dla różnych zestawów SDK usługi Azure IoT:
Nazwa zestawu SDK we właściwości sdkVersion | Język |
---|---|
.NET | .NET (C#) |
microsoft.azure.devices | Zestaw SDK usługi .NET (C#) |
microsoft.azure.devices.client | Zestaw SDK urządzenia .NET (C#) |
iothubclient | Zestaw SDK urządzenia C lub Python w wersji 1 (przestarzałe) |
iothubserviceclient | Zestaw SDK usługi języka C lub Python w wersji 1 (przestarzałe) |
azure-iot-device-iothub-py | Zestaw SDK urządzenia w języku Python |
azure-iot-device | zestaw SDK urządzenia Node.js |
azure-iothub | zestaw SDK usługi Node.js |
com.microsoft.azure.iothub-java-client | Zestaw SDK urządzenia Java |
com.microsoft.azure.iothub.service.sdk | Zestaw SDK usługi Java |
com.microsoft.azure.sdk.iot.iot-device-client | Zestaw SDK urządzenia Java |
com.microsoft.azure.sdk.iot.iot-service-client | Zestaw SDK usługi Java |
C | Osadzony język C |
C + (OSSimplified = Eclipse ThreadX) | Eclipse ThreadX |
Właściwość wersji zestawu SDK można wyodrębnić podczas wykonywania zapytań względem dzienników zasobów usługi IoT Hub. Na przykład następujące zapytanie wyodrębnia właściwość wersji zestawu SDK (i identyfikator urządzenia) z właściwości zwracanych przez operacje połączenia. Te dwie właściwości są zapisywane w wynikach wraz z czasem operacji i identyfikatorem zasobu centrum IoT, z którą urządzenie nawiązuje połączenie.
// 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
Odczytywanie dzienników z usługi Azure Event Hubs
Po skonfigurowaniu rejestrowania zdarzeń za pomocą ustawień diagnostycznych można tworzyć aplikacje, które odczytują dzienniki, dzięki czemu można podjąć działania na podstawie informacji w nich. Poniższy przykładowy kod pobiera dzienniki z centrum zdarzeń.
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);
}
}
}
}
Aby uzyskać dostępne kategorie dzienników zasobów, skojarzone z nimi tabele usługi Log Analytics i schematy dzienników dla usługi IoT Hub, zobacz Dokumentacja danych monitorowania usługi Azure IoT Hub.
Analizowanie danych monitorowania
Istnieje wiele narzędzi do analizowania danych monitorowania.
Narzędzia usługi Azure Monitor
Usługa Azure Monitor obsługuje następujące podstawowe narzędzia:
Eksplorator metryk — narzędzie w witrynie Azure Portal, które umożliwia wyświetlanie i analizowanie metryk dla zasobów platformy Azure. Aby uzyskać więcej informacji, zobacz Analizowanie metryk za pomocą Eksploratora metryk usługi Azure Monitor.
Log Analytics — narzędzie w witrynie Azure Portal, które umożliwia wykonywanie zapytań i analizowanie danych dzienników przy użyciu języka zapytań Kusto (KQL). Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z zapytaniami dzienników w usłudze Azure Monitor.
Dziennik aktywności, który zawiera interfejs użytkownika w witrynie Azure Portal do wyświetlania i podstawowych wyszukiwań. Aby przeprowadzić bardziej szczegółową analizę, musisz kierować dane do dzienników usługi Azure Monitor i uruchamiać bardziej złożone zapytania w usłudze Log Analytics.
Narzędzia, które umożliwiają bardziej złożoną wizualizację, obejmują:
- Pulpity nawigacyjne, które umożliwiają łączenie różnych rodzajów danych w jednym okienku w witrynie Azure Portal.
- Skoroszyty, dostosowywalne raporty, które można utworzyć w witrynie Azure Portal. Skoroszyty mogą zawierać tekst, metryki i zapytania dziennika.
- Grafana to otwarte narzędzie platformy, które wyróżnia się na operacyjnych pulpitach nawigacyjnych. Za pomocą narzędzia Grafana można tworzyć pulpity nawigacyjne zawierające dane z wielu źródeł innych niż usługa Azure Monitor.
- Power BI, usługa analizy biznesowej, która udostępnia interaktywne wizualizacje w różnych źródłach danych. Usługę Power BI można skonfigurować tak, aby automatycznie importować dane dziennika z usługi Azure Monitor, aby korzystać z tych wizualizacji.
Narzędzia eksportu usługi Azure Monitor
Dane z usługi Azure Monitor można pobrać do innych narzędzi przy użyciu następujących metod:
Metryki: użyj interfejsu API REST dla metryk , aby wyodrębnić dane metryk z bazy danych metryk usługi Azure Monitor. Interfejs API obsługuje wyrażenia filtrów w celu uściślinia pobranych danych. Aby uzyskać więcej informacji, zobacz Dokumentacja interfejsu API REST usługi Azure Monitor.
Dzienniki: użyj interfejsu API REST lub skojarzonych bibliotek klienckich.
Aby rozpocząć pracę z interfejsem API REST dla usługi Azure Monitor, zobacz Przewodnik po interfejsie API REST monitorowania platformy Azure.
Zapytania usługi Kusto
Dane monitorowania można analizować w magazynie dzienników usługi Azure Monitor /Log Analytics przy użyciu języka zapytań Kusto (KQL).
Ważne
Po wybraniu pozycji Dzienniki z menu usługi w portalu usługa Log Analytics zostanie otwarta z zakresem zapytania ustawionym na bieżącą usługę. Ten zakres oznacza, że zapytania dziennika będą zawierać tylko dane z tego typu zasobu. Jeśli chcesz uruchomić zapytanie zawierające dane z innych usług platformy Azure, wybierz pozycję Dzienniki z menu usługi Azure Monitor . Aby uzyskać szczegółowe informacje, zobacz Zakres zapytań dzienników i zakres czasu w usłudze Azure Monitor Log Analytics .
Aby uzyskać listę typowych zapytań dotyczących dowolnej usługi, zobacz interfejs zapytań usługi Log Analytics.
Skorzystaj z poniższych zapytań Kusto, aby ułatwić monitorowanie centrum IoT Hub.
Błędy łączności: zidentyfikuj błędy połączenia urządzenia.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" and Level == "Error"
Błędy ograniczania przepustowości: zidentyfikuj urządzenia, które najwięcej żądań powodowały błędy ograniczania przepustowości.
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
Martwe punkty końcowe: zidentyfikuj punkty końcowe w złej kondycji według liczby zgłoszonych problemów i poznaj przyczynę problemu.
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
Podsumowanie błędu: liczba błędów we wszystkich operacjach według typu.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Level == "Error" | summarize count() by ResultType, ResultDescription, Category, _ResourceId
Ostatnio połączone urządzenia: lista urządzeń, które usługa IoT Hub widziała nawiązywać połączenia w określonym przedziale czasu.
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
Zdarzenia połączenia dla określonego urządzenia: wszystkie zdarzenia połączenia zarejestrowane dla określonego urządzenia (test-device).
AzureDiagnostics | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS" | where Category == "Connections" | extend DeviceId = tostring(parse_json(properties_s).deviceId) | where DeviceId == "test-device"
Wersja zestawu SDK urządzeń: lista urządzeń i ich wersji zestawu SDK dla połączeń urządzeń lub urządzeń z operacjami bliźniaczej reprezentacji chmury.
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
Alerty
Alerty usługi Azure Monitor proaktywnie powiadamiają o znalezieniu określonych warunków w danych monitorowania. Alerty umożliwiają identyfikowanie i rozwiązywanie problemów w systemie przed ich zauważeniem przez klientów. Aby uzyskać więcej informacji, zobacz Alerty usługi Azure Monitor.
Istnieje wiele źródeł typowych alertów dotyczących zasobów platformy Azure. Przykłady typowych alertów dotyczących zasobów platformy Azure można znaleźć w temacie Przykładowe zapytania alertów dziennika. Witryna Alerty bazowe usługi Azure Monitor (AMBA) udostępnia częściowo zautomatyzowaną metodę implementowania ważnych alertów metryk platformy, pulpitów nawigacyjnych i wytycznych. Witryna ma zastosowanie do stale powiększającego się podzestawu usług platformy Azure, w tym wszystkich usług, które są częścią strefy docelowej platformy Azure (ALZ).
Typowy schemat alertu standandaryzuje użycie powiadomień o alertach usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz Wspólny schemat alertów.
Typy alertów
Możesz otrzymywać alerty dotyczące dowolnej metryki lub źródła danych dziennika na platformie danych usługi Azure Monitor. Istnieje wiele różnych typów alertów w zależności od usług, które monitorujesz i zbieranych danych monitorowania. Różne typy alertów mają różne zalety i wady. Aby uzyskać więcej informacji, zobacz Wybieranie odpowiedniego typu alertu monitorowania.
Poniższa lista zawiera opis typów alertów usługi Azure Monitor, które można utworzyć:
- Alerty metryk oceniają metryki zasobów w regularnych odstępach czasu. Metryki mogą być metrykami platformy, metrykami niestandardowymi, dziennikami z usługi Azure Monitor przekonwertowanym na metryki lub metrykami usługi Application Insights. Alerty metryk mogą również stosować wiele warunków i progów dynamicznych.
- Alerty dzienników umożliwiają użytkownikom używanie zapytania usługi Log Analytics do oceny dzienników zasobów z wstępnie zdefiniowaną częstotliwością.
- Alerty dziennika aktywności są wyzwalane, gdy wystąpi nowe zdarzenie dziennika aktywności zgodne ze zdefiniowanymi warunkami. Alerty usługi Resource Health i alerty usługi Service Health to alerty dziennika aktywności, które zgłaszają kondycję usługi i zasobów.
Niektóre usługi platformy Azure obsługują również alerty wykrywania inteligentnego, alerty Prometheus lub zalecane reguły alertów.
W przypadku niektórych usług można monitorować na dużą skalę, stosując tę samą regułę alertu metryki do wielu zasobów tego samego typu, które istnieją w tym samym regionie świadczenia usługi Azure. Poszczególne powiadomienia są wysyłane dla każdego monitorowanego zasobu. Aby uzyskać informacje o obsługiwanych usługach i chmurach platformy Azure, zobacz Monitorowanie wielu zasobów przy użyciu jednej reguły alertu.
Reguły alertów usługi IoT Hub
Alerty można ustawić dla dowolnej metryki, wpisu dziennika lub wpisu dziennika aktywności wymienionego w dokumentacji danych monitorowania usługi IoT Hub.
Konfigurowanie alertów dotyczących metryk dla rozłączeń urządzeń
Alerty można skonfigurować na podstawie metryk platformy emitowanych przez usługę IoT Hub. Za pomocą alertów dotyczących metryk można powiadamiać osoby, że wystąpił warunek zainteresowania, a także wyzwalać akcje, które mogą automatycznie reagować na ten warunek.
Metryka Połączone urządzenia (wersja zapoznawcza) informuje, ile urządzeń jest połączonych z usługą IoT Hub. Jeśli ta metryka spadnie poniżej wartości progowej, alert może być wyzwalany:
Reguły alertów metryk umożliwiają monitorowanie anomalii rozłączania urządzenia na dużą skalę. Oznacza to, że użyj alertów, aby określić, kiedy nieoczekiwanie rozłączysz znaczną liczbę urządzeń. Po wykryciu tej sytuacji możesz przejrzeć dzienniki, aby pomóc rozwiązać ten problem. Aby monitorować rozłączenia i rozłączania poszczególnych urządzeń pod kątem krytycznych urządzeń w czasie zbliżonym do rzeczywistego, należy jednak użyć usługi Event Grid.
Aby dowiedzieć się więcej o alertach w usłudze IoT Hub, zobacz Alerty w monitorze usługi IoT Hub. Aby zapoznać się z przewodnikiem tworzenia alertów w usłudze IoT Hub, zobacz samouczek Korzystanie z metryk i dzienników. Aby uzyskać bardziej szczegółowe omówienie alertów, zobacz Omówienie alertów na platformie Microsoft Azure w dokumentacji usługi Azure Monitor.
Zalecenia doradcy
W przypadku niektórych usług, jeśli podczas operacji zasobów wystąpią krytyczne warunki lub nieuchronne zmiany, na stronie Przegląd usługi w portalu zostanie wyświetlony alert. Więcej informacji i zalecanych poprawek alertu można znaleźć w temacie Zalecenia usługi Advisor w obszarze Monitorowanie w menu po lewej stronie. Podczas normalnych operacji nie są wyświetlane żadne zalecenia doradcy.
Aby uzyskać więcej informacji na temat usługi Azure Advisor, zobacz Omówienie usługi Azure Advisor.
Powiązana zawartość
- Zobacz Dokumentację danych monitorowania usługi Azure IoT Hub, aby zapoznać się z dokumentacją metryk, dzienników i innych ważnych wartości utworzonych dla usługi IoT Hub.
- Zobacz Monitorowanie zasobów platformy Azure za pomocą usługi Azure Monitor , aby uzyskać ogólne informacje na temat monitorowania zasobów platformy Azure.
- Zobacz Monitorowanie, diagnozowanie i rozwiązywanie problemów z łącznością urządzeń z usługą Azure IoT Hub w celu monitorowania łączności urządzeń.