Referencyjna architektura usługi Azure IoTAzure IoT reference architecture

Ta referencyjna architektura pokazuje zalecaną architekturę dla aplikacji IoT na platformie Azure z użyciem składników PaaS (platforma jako usługa).This reference architecture shows a recommended architecture for IoT applications on Azure using PaaS (platform-as-a-service) components.

Diagram architektury

Aplikacje IoT można opisać jako rzeczy (urządzenia) wysyłające dane, które generują szczegółowe informacje.IoT applications can be described as things (devices) sending data that generates insights. Te szczegółowe informacje generują akcje usprawniające działalność firmy lub proces.These insights generate actions to improve a business or process. Przykładem może być aparat (rzecz), który wysyła dane dotyczące temperatury.An example is an engine (the thing) sending temperature data. Te dane są używane do oceny, czy aparat działa zgodnie z oczekiwaniami (szczegółowe informacje).This data is used to evaluate whether the engine is performing as expected (the insight). Szczegółowe informacje służą z kolei do proaktywnego określania harmonogramu konserwacji dla aparatu (akcja).The insight is used to proactively prioritize the maintenance schedule for the engine (the action).

Ta referencyjna architektura korzysta ze składników usługi Azure PaaS (platforma jako usługa).This reference architecture uses Azure PaaS (platform-as-a-service) components. Inne opcje umożliwiające tworzenie rozwiązań IoT na platformie Azure są następujące:Other options for building IoT solutions on Azure include:

  • Azure IoT Central.Azure IoT Central. IoT Central to w pełni zarządzane rozwiązanie SaaS (oprogramowanie jako usługa).IoT Central is a fully managed SaaS (software-as-a-service) solution. Abstrahuje ono opcje techniczne i pozwala skoncentrować się wyłącznie na rozwiązaniu.It abstracts the technical choices and lets you focus on your solution exclusively. Ta prostota związana jest z kompromisem polegającym na tym, że to rozwiązanie oferuje mniej możliwości dostosowywania, niż rozwiązanie PaaS.This simplicity comes with a tradeoff in being less customizable than a PaaS-based solution.
  • Użycie składników usługi OSS, takich jak stos SMACK (Spark, Mesos, Akka, Cassandra, Kafka) wdrożony na maszynach wirtualnych platformy Azure.Using OSS components such as the SMACK stack (Spark, Mesos, Akka, Cassandra, Kafka) deployed on Azure VMs. To podejście zapewnia dużą kontrolę, ale jest bardziej złożone.This approach offers a great deal of control but is more complex.

Na wysokim poziomie istnieją dwa sposoby przetwarzania danych telemetrycznych: ścieżka gorąca i ścieżka zimna.At a high level, there are two ways to process telemetry data, hot path and cold path. Różnica związana jest z wymaganiami dotyczącymi opóźnienia i dostępu do danych.The difference has to do with requirements for latency and data access.

  • W przypadku ścieżki gorącej dane są analizowane w czasie zbliżonym do rzeczywistego, w momencie ich odebrania.The hot path analyzes data in near-real-time, as it arrives. Na ścieżce gorącej dane telemetryczne muszą być przetwarzane z bardzo małymi opóźnieniami.In the hot path, telemetry must be processed with very low latency. Ścieżka gorąca jest zwykle implementowana przy użyciu aparatu przetwarzania strumienia.The hot path is typically implemented using a stream processing engine. Dane wyjściowe mogą wyzwalać alert lub mogą być zapisywane w ustrukturyzowanym formacie, względem którego można wysyłać zapytania za pomocą narzędzi analitycznych.The output may trigger an alert, or be written to a structured format that can be queried using analytical tools.
  • W przypadku ścieżki zimnej wykonywane jest przetwarzanie wsadowe w dłuższych odstępach czasu (co godzinę lub raz dziennie).The cold path performs batch processing at longer intervals (hourly or daily). Ścieżka zimna operuje zazwyczaj na dużych ilościach danych, ale wyniki nie muszą być dostarczane tak szybko, jak w przypadku ścieżki gorącej.The cold path typically operates over large volumes of data, but the results don't need to be as timely as the hot path. Na ścieżce zimnej nieprzetworzone dane telemetryczne są przechwytywane, a następnie przekazywane do procesu wsadowego.In the cold path, raw telemetry is captured and then fed into a batch process.

ArchitekturaArchitecture

Niniejsza architektura zawiera następujące składniki.This architecture consists of the following components. Niektóre aplikacje mogą nie wymagać każdego wymienionego składnika.Some applications may not require every component listed here.

Urządzenia IoT.IoT devices. Urządzenia mogą być bezpiecznie rejestrowane w chmurze i mogą łączyć się z chmurą w celu wysyłania i odbierania danych.Devices can securely register with the cloud, and can connect to the cloud to send and receive data. Niektóre urządzenia mogą być urządzeniami brzegowymi, które wykonują pewne operacje przetwarzania danych na urządzeniu lub w bramie działającej w terenie.Some devices may be edge devices that perform some data processing on the device itself or in a field gateway. Do obsługi przetwarzania brzegowego zalecamy usługę Azure IoT Edge.We recommend Azure IoT Edge for edge processing.

Brama w chmurze.Cloud gateway. Brama w chmurze udostępnia centrum w chmurze w celu bezpiecznego łączenia urządzeń z chmurą i przesyłania danych.A cloud gateway provides a cloud hub for devices to connect securely to the cloud and send data. Zapewnia także funkcje zarządzania urządzeniami, takie jak sterowanie urządzeniami i kontrola nad nimi.It also provides device management, capabilities, including command and control of devices. Do obsługi bramy w chmurze zalecamy usługę IoT Hub.For the cloud gateway, we recommend IoT Hub. IoT Hub to hostowana usługa w chmurze, która pozyskuje zdarzenia z urządzeń, działając jako broker komunikatów między urządzeniami i usługami zaplecza.IoT Hub is a hosted cloud service that ingests events from devices, acting as a message broker between devices and backend services. Usługa IoT Hub zapewnia bezpieczną łączność, pozyskiwanie zdarzeń, dwukierunkową komunikację i zarządzanie urządzeniami.IoT Hub provides secure connectivity, event ingestion, bidirectional communication, and device management.

Aprowizacja urządzeń.Device provisioning. Do obsługi rejestrowania i łączenia dużych zestawów urządzeń zalecamy usługę IoT Hub Device Provisioning Service (DPS).For registering and connecting large sets of devices, we recommend using the IoT Hub Device Provisioning Service (DPS). Usługa DPS umożliwia przypisywanie i rejestrowanie urządzeń w określonych punktach końcowych usługi Azure IoT Hub na dużą skalę.DPS lets you assign and register devices to specific Azure IoT Hub endpoints at scale.

Przetwarzanie strumienia.Stream processing. Przetwarzanie strumienia analizuje duże strumienie rekordów danych i ocenia reguły dla tych strumieni.Stream processing analyzes large streams of data records and evaluates rules for those streams. Na potrzeby przetwarzania strumienia zalecamy usługę Azure Stream Analytics.For stream processing, we recommend Azure Stream Analytics. Usługa Stream Analytics może wykonywać złożone analizy na dużą skalę, używając funkcji obsługi okien czasowych, agregacji strumieni i dołączeń zewnętrznych źródeł danych.Stream Analytics can execute complex analysis at scale, using time windowing functions, stream aggregations, and external data source joins. Kolejną opcją jest platforma Apache Spark w usłudze Azure Databricks.Another option is Apache Spark on Azure Databricks.

Uczenie maszynowe umożliwia wykonywanie predykcyjnych algorytmów na historycznych danych telemetrycznych, udostępniając scenariusze, takie jak konserwacja predykcyjna.Machine learning allows predictive algorithms to be executed over historical telemetry data, enabling scenarios such as predictive maintenance. Do obsługi uczenia maszynowego zalecamy usługę Azure Machine Learning Service.For machine learning, we recommend Azure Machine Learning Service.

Magazyn ścieżki gorącej przechowuje dane, które muszą być natychmiastowo dostępne z urządzenia w celu raportowania i wizualizacji.Warm path storage holds data that must be available immediately from device for reporting and visualization. Na potrzeby magazynu ścieżki gorącej zalecamy usługę Cosmos DB.For warm path storage, we recommend Cosmos DB. Cosmos DB to globalnie dystrybuowana, wielomodelowa baza danych.Cosmos DB is a globally distributed, multi-model database.

Magazyn ścieżki zimnej zawiera dane przechowywane przez dłuższy czas i używane do przetwarzania wsadowego.Cold path storage holds data that is kept longer-term and is used for batch processing. Na potrzeby magazynu ścieżki zimnej zalecamy usługę Azure Blob Storage.For cold path storage, we recommend Azure Blob Storage. W magazynie obiektów Blob dane można archiwizować przez nieokreślony czas przy zachowaniu niskich kosztów i są one łatwo dostępne na potrzeby przetwarzania wsadowego.Data can be archived in Blob storage indefinitely at low cost, and is easily accessible for batch processing.

Przekształcanie danych manipuluje strumieniem danych telemetrycznych lub go agreguje.Data transformation manipulates or aggregates the telemetry stream. Przykłady obejmują przekształcanie protokołu, na przykład konwersję danych binarnych na format JSON, lub łączenie punktów danych.Examples include protocol transformation, such as converting binary data to JSON, or combining data points. Jeśli dane muszą zostać przekształcone przed dotarciem do usługi IoT Hub, zalecamy użycie bramy protokołu (nie została ona pokazana).If the data must be transformed before reaching IoT Hub, we recommend using a protocol gateway (not shown). W przeciwnym razie dane mogą zostać przekształcone po dotarciu do usługi IoT Hub.Otherwise, data can be transformed after it reaches IoT Hub. W takiej sytuacji zalecamy użycie usługi Azure Functions, która ma wbudowaną integrację z usługami IoT Hub, Cosmos DB i Blob Storage.In that case, we recommend using Azure Functions, which has built-in integration with IoT Hub, Cosmos DB, and Blob Storage.

Integracja procesów biznesowych wykonuje akcje w oparciu o wnioski wyciągnięte na podstawie danych urządzenia.Business process integration performs actions based on insights from the device data. Mogą one obejmować przechowywanie komunikatów informacyjnych, wyzwalanie alarmów, wysyłanie wiadomości e-mail lub SMS oraz integrację z systemem CRM.This could include storing informational messages, raising alarms, sending email or SMS messages, or integrating with CRM. Do obsługi integracji procesów biznesowych zalecamy usługę Azure Logic Apps.We recommend using Azure Logic Apps for business process integration.

Zarządzanie użytkownikami pozwala ograniczyć użytkowników lub grupy, którzy mogą wykonywać akcje na urządzeniach, takie jak uaktualnianie oprogramowania układowego.User management restricts which users or groups can perform actions on devices, such as upgrading firmware. Definiuje również możliwości dla użytkowników w aplikacjach.It also defines capabilities for users in applications. Do uwierzytelniania i autoryzacji użytkowników zalecamy użycie usługi Azure Active Directory.We recommend using Azure Active Directory to authenticate and authorize users.

Zagadnienia dotyczące skalowalnościScalability considerations

Aplikacja IoT powinna być tworzona jako odrębne usługi, które można skalować niezależnie.An IoT application should be built as discrete services that can scale independently. Rozważ następujące kwestie dotyczące skalowalności:Consider the following scalability points:

IoT Hub.IoTHub. W przypadku usługi IoT Hub należy wziąć pod uwagę następujące czynniki skalowania:For IoT Hub, consider the following scale factors:

  • Maksymalny dzienny limit komunikatów dostarczanych do usługi IoT Hub.The maximum daily quota of messages into IoT Hub.
  • Limit przydziału połączonych urządzeń w wystąpieniu usługi IoT Hub.The quota of connected devices in an IoT Hub instance.
  • Przepływność pozyskiwania — jak szybko usługa IoT Hub może pozyskiwać komunikaty.Ingestion throughput — how quickly IoT Hub can ingest messages.
  • Przepływność przetwarzania — jak szybko są przetwarzane komunikaty przychodzące.Processing throughput — how quickly the incoming messages are processed.

Każde centrum IoT jest aprowizowane za pomocą określonej liczby jednostek w określonej warstwie.Each IoT hub is provisioned with a certain number of units in a specific tier. Warstwa i liczba jednostek określają maksymalny dzienny limit przydziału komunikatów, które urządzenia mogą wysyłać do centrum.The tier and number of units determine the maximum daily quota of messages that devices can send to the hub. Aby uzyskać więcej informacji, zapoznaj się z limitami przydziału i ograniczeniami przepustowości usługi IoT Hub.For more information, see IoT Hub quotas and throttling. Centrum można skalować w górę bez przerywania istniejących operacji.You can scale up a hub without interrupting existing operations.

Stream Analytics.Stream Analytics. Zadania usługi Stream Analytics skalują się najlepiej, jeśli w potoku usługi Stream Analytics są równoległe we wszystkich punktach, od danych wejściowych, przez zapytanie, do danych wyjściowych.Stream Analytics jobs scale best if they are parallel at all points in the Stream Analytics pipeline, from input to query to output. W pełni równoległe zadanie umożliwia usłudze Stream Analytics podzielenie pracy na wiele węzłów obliczeniowych.A fully parallel job allows Stream Analytics to split the work across multiple compute nodes. W przeciwnym razie usługa Stream Analytics musi łączyć dane przesyłane strumieniowo w jednym miejscu.Otherwise, Stream Analytics has to combine the stream data into one place. Aby uzyskać więcej informacji, zobacz Korzystanie z przetwarzania równoległego zapytań w usłudze Azure Stream Analytics.For more information, see Leverage query parallelization in Azure Stream Analytics.

Usługa IoT Hub automatycznie dzieli na partycje komunikaty urządzenia na podstawie identyfikatora urządzenia.IoT Hub automatically partitions device messages based on the device ID. Wszystkie komunikaty z określonego urządzenia zawsze są dostarczane do tej samej partycji, ale jedna partycja zawiera komunikaty z wielu urządzeń.All of the messages from a particular device will always arrive on the same partition, but a single partition will have messages from multiple devices. Z tego względu jednostka przetwarzania równoległego jest identyfikatorem partycji.Therefore, the unit of parallelization is the partition ID.

Funkcje.Functions. W przypadku odczytywania z punktu końcowego usługi Event Hubs istnieje maksimum wystąpienia funkcji na partycję centrum zdarzeń.When reading from the Event Hubs endpoint, there is a maximum of function instance per event hub partition. Maksymalne tempo przetwarzania jest określane przez to, jak szybko jedno wystąpienie funkcji może przetwarzać wydarzenia z jednej partycji.The maximum processing rate is determined by how fast one function instance can process the events from a single partition. Funkcja powinna przetwarzać komunikaty w partiach.The function should process messages in batches.

Cosmos DB.Cosmos DB. Aby skalować w poziomie kolekcję usługi Cosmos DB, utwórz kolekcję z kluczem partycji i dołącz ten klucz partycji do każdego dokumentu, który zapisujesz.To scale out a Cosmos DB collection, create the collection with a partition key and include the partition key in each document that you write. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wybierania klucza partycji.For more information, see Best practices when choosing a partition key.

  • Jeśli przechowujesz i aktualizujesz jeden dokument na każdym urządzeniu, identyfikator urządzenia jest dobrym kluczem partycji.If you store and update a single document per device, the device ID is a good partition key. Zapisy są dystrybuowane równomiernie między kluczami.Writes are evenly distributed across the keys. Rozmiar każdej partycji jest ściśle ograniczony, ponieważ dla każdej wartości klucza istnieje jeden dokument.The size of each partition is strictly bounded, because there is a single document for each key value.
  • Jeśli przechowujesz oddzielny dokument dla każdego komunikatu urządzenia, użycie identyfikatora urządzenia jako klucza partycji szybko spowoduje przekroczenie limitu 10 GB na partycję.If you store a separate document for every device message, using the device ID as a partition key would quickly exceed the 10-GB limit per partition. W takiej sytuacji identyfikator komunikatu jest lepszym kluczem partycji.Message ID is a better partition key in that case. Na ogół identyfikator urządzenia jest nadal uwzględniany w dokumencie w celu indeksowania i wykonywania zapytań.Typically you would still include device ID in the document for indexing and querying.

Zagadnienia związane z zabezpieczeniamiSecurity considerations

Godna zaufania i bezpieczna komunikacjaTrustworthy and secure communication

Wszystkie informacje otrzymane z urządzenia i wysłane do urządzenia muszą być wiarygodne.All information received from and sent to a device must be trustworthy. Jeśli urządzenie nie obsługuje poniższych funkcji kryptograficznych, powinno zostać ograniczone do sieci lokalnych, a cała komunikacja między sieciami powinna przechodzić przez bramę działającą w terenie:Unless a device can support the following cryptographic capabilities, it should be constrained to local networks and all internetwork communication should go through a field gateway:

  • Szyfrowanie danych przy użyciu algorytmu szyfrowania kluczem symetrycznym, który został publicznie przeanalizowany, jest szeroko stosowany i którego bezpieczeństwo zostało udowodnione.Data encryption with a provably secure, publicly analyzed, and broadly implemented symmetric-key encryption algorithm.
  • Podpis cyfrowy z zastosowaniem algorytmu podpisu kluczem symetrycznym, który został publicznie przeanalizowany, jest szeroko stosowany i którego bezpieczeństwo zostało udowodnione.Digital signature with a provably secure, publicly analyzed, and broadly implemented symmetric-key signature algorithm.
  • Obsługa protokołu TLS 1.2 dla protokołu TCP lub innych ścieżek komunikacji opartych na strumieniu bądź protokołu DTLS 1.2 dla ścieżek komunikacji opartych na datagramie.Support for either TLS 1.2 for TCP or other stream-based communication paths or DTLS 1.2 for datagram-based communication paths. Obsługa certyfikatu X.509 jest opcjonalna i można ją zastąpić efektywniejszym pod względem obliczeń i komunikacji sieciowej wstępnie udostępnionym trybem klucza dla protokołu TLS, który można zaimplementować z obsługą algorytmów AES i SHA-2.Support of X.509 certificate handling is optional and can be replaced by the more compute-efficient and wire-efficient pre-shared key mode for TLS, which can be implemented with support for the AES and SHA-2 algorithms.
  • Magazyn kluczy i klucze dla poszczególnych urządzeń z możliwością aktualizacji.Updateable key-store and per-device keys. Każde urządzenie musi mieć unikatowy klucz lub tokeny, które identyfikują je w systemie.Each device must have unique key material or tokens that identify it toward the system. Urządzenia powinny przechowywać klucze bezpiecznie (na przykład przy użyciu bezpiecznego magazynu kluczy).The devices should store the key securely on the device (for example, using a secure key-store). Urządzenie powinno być w stanie aktualizować klucze lub tokeny okresowo bądź w sposób reaktywny w sytuacjach awaryjnych, takich jak naruszenie systemu.The device should be able to update the keys or tokens periodically, or reactively in emergency situations such as a system breach.
  • Oprogramowanie układowe i oprogramowanie aplikacji na urządzeniu musi zezwalać na aktualizacje, aby umożliwić naprawę wykrytych luk w zabezpieczeniach.The firmware and application software on the device must allow for updates to enable the repair of discovered security vulnerabilities.

Jednak wiele urządzeń ma zbyt wiele ograniczeń, aby zapewnić obsługę tych wymagań.However, many devices are too constrained to support these requirements. W takiej sytuacji należy używać bramy działającej w terenie.In that case, a field gateway should be used. Urządzenia łączą się bezpiecznie z bramą działającą w terenie za pośrednictwem sieci lokalnej, a brama umożliwia bezpieczną komunikację z chmurą.Devices connect securely to the field gateway through a local area network, and the gateway enables secure communication to the cloud.

Fizyczne zabezpieczanie przed manipulacjamiPhysical tamper-proofing

Zdecydowanie zaleca się, aby projekt urządzenia obejmował funkcje, które chronią przed próbami fizycznej manipulacji, co pozwoli zapewnić integralność zabezpieczeń i wiarygodność całego systemu.It is strongly recommended that device design incorporates features that defend against physical manipulation attempts, to help ensure the security integrity and trustworthiness of the overall system.

Na przykład:For example:

  • Wybieraj mikrokontrolery/mikroprocesory lub urządzenia pomocnicze, które zapewniają bezpieczne przechowywanie i możliwość używania materiału klucza kryptograficznego, takiego jak integracja z modułem TPM (Trusted Platform Module).Choose microcontrollers/microprocessors or auxiliary hardware that provide secure storage and use of cryptographic key material, such as trusted platform module (TPM) integration.
  • Zabezpiecz moduł ładujący rozruchu oraz zapewnij bezpieczne ładowanie oprogramowania, zakotwiczone w module TPM.Secure boot loader and secure software loading, anchored in the TPM.
  • Używaj czujników do wykrywania prób włamania i manipulacji w środowisku urządzenia z zastosowaniem alertów i potencjalnego „samozniszczenia cyfrowego” urządzenia.Use sensors to detect intrusion attempts and attempts to manipulate the device environment with alerting and potentially "digital self-destruction" of the device.

Aby zapoznać się z dodatkowymi zagadnieniami związanymi z zabezpieczeniami, zobacz Architektura zabezpieczeń Internetu rzeczy (IoT).For additional security considerations, see Internet of Things (IoT) security architecture.

Monitorowanie i rejestrowanieMonitoring and logging

Systemy rejestrowania i monitorowania są używane w celu określenia, czy rozwiązanie działa, i pomagają rozwiązywać problemy.Logging and monitoring systems are used to determine whether the solution is functioning and to help troubleshoot problems. Systemy monitorowania i rejestrowania pomagają znaleźć odpowiedzi na następujące pytania operacyjne:Monitoring and logging systems help answer the following operational questions:

  • Czy na urządzeniach lub w systemach występują błędy?Are devices or systems in an error condition?
  • Czy urządzenia i systemy są prawidłowo skonfigurowane?Are devices or systems correctly configured?
  • Czy urządzenia i systemy generują dokładne dane?Are devices or systems generating accurate data?
  • Czy systemy spełniają oczekiwania zarówno firm, jak i klientów końcowych?Are systems meeting the expectations of both the business and end customers?

Narzędzia do rejestrowania i monitorowania zawierają zazwyczaj cztery następujące składniki:Logging and monitoring tools are typically comprised of the following four components:

  • Narzędzia do wizualizacji osi czasu i wydajności systemu służące do monitorowania systemu i podstawowego rozwiązywania problemów.System performance and timeline visualization tools to monitor the system and for basic troubleshooting.
  • Pozyskiwanie danych buforowanych do buforowania danych dziennika.Buffered data ingestion, to buffer log data.
  • Magazyn stanów trwałych do przechowywania danych dziennika.Persistence store to store log data.
  • Funkcje wyszukiwania i wysyłania zapytań do wyświetlania danych dziennika w celu użycia ich na potrzeby szczegółowego rozwiązywania problemów.Search and query capabilities, to view log data for use in detailed troubleshooting.

Systemy monitorowania zapewniają szczegółowy wgląd w kondycję, zabezpieczenia, stabilność i wydajność rozwiązania IoT.Monitoring systems provide insights into the health, security, and stability, and performance of an IoT solution. Te systemy oferują również bardziej szczegółowy widok, rejestrując zmiany konfiguracji składnika i dostarczając wyodrębnione dane rejestrowania, które mogą uwidocznić potencjalne luki w zabezpieczeniach, ulepszyć proces zarządzania zdarzeniami i pomóc właścicielowi systemu w rozwiązywaniu problemów.These systems can also provide a more detailed view, recording component configuration changes and providing extracted logging data that can surface potential security vulnerabilities, enhance the incident management process, and help the owner of the system troubleshoot problems. Kompleksowe rozwiązania do monitorowania obejmują możliwość wysyłania zapytań o określone podsystemy lub agregowania z wielu podsystemów.Comprehensive monitoring solutions include the ability to query information for specific subsystems or aggregating across multiple subsystems.

Opracowywanie systemu monitorowania należy zacząć od zdefiniowania operacji w dobrej kondycji, zgodności z przepisami i wymagań dotyczących inspekcji.Monitoring system development should begin by defining healthy operation, regulatory compliance, and audit requirements. Zbierane metryki mogą obejmować następujące elementy:Metrics collected may include:

  • Urządzenia fizyczne, urządzenia brzegowe i składniki infrastruktury raportujące zmiany konfiguracji.Physical devices, edge devices, and infrastructure components reporting configuration changes.
  • Aplikacje raportujące zmiany konfiguracji, dzienniki inspekcji zabezpieczeń, współczynniki żądań, czasy odpowiedzi, współczynniki błędów i statystyki odzyskiwania pamięci dla zarządzanych języków.Applications reporting configuration changes, security audit logs, request rates, response times, error rates, and garbage collection statistics for managed languages.
  • Bazy danych, magazyny stanów trwałych i pamięci podręczne raportujące wydajność zapytań i zapisów, zmiany schematu, dziennik inspekcji zabezpieczeń, blokady lub zakleszczenia, wydajność indeksu oraz użycie procesora CPU, pamięci i dysku.Databases, persistence stores, and caches reporting query and write performance, schema changes, security audit log, locks or deadlocks, index performance, CPU, memory, and disk usage.
  • Usługi zarządzane (IaaS, PaaS, SaaS i FaaS) raportujące metryki kondycji i zmiany konfiguracji, które mają wpływ na kondycję i wydajność systemów zależnych.Managed services (IaaS, PaaS, SaaS, and FaaS) reporting health metrics and configuration changes that impact dependent system health and performance.

Wizualizacja metryk monitorowania ostrzega operatorów o niestabilnościach systemu i ułatwia reagowanie na zdarzenia.Visualization of monitoring metrics alert operators to system instabilities and facilitate incident response.

Śledzenie danych telemetrycznychTracing telemetry

Śledzenie danych telemetrycznych umożliwia operatorowi odtworzenie drogi fragmentu danych telemetrycznych przez system od momentu utworzenia.Tracing telemetry allows an operator to follow the journey of a piece of telemetry from creation through the system. Śledzenie jest ważne w przypadku debugowania i rozwiązywania problemów.Tracing is important for debugging and troubleshooting. Dla rozwiązań IoT, które używają usługi Azure IoT Hub i zestawu SDK urządzenia usługi IoT Hub, datagramy śledzenia mogą być tworzone jako komunikaty typu chmura-urządzenie i dołączane do strumienia danych telemetrycznych.For IoT solutions that use Azure IoT Hub and the IoT Hub Device SDKs, tracing datagrams can be originated as Cloud-to-Device messages and included in the telemetry stream.

RejestrowanieLogging

Systemy rejestrowania pozwalają zrozumieć, jakie akcje lub działania wykonało rozwiązanie oraz jakie błędy wystąpiły, i mogą pomóc w naprawianiu tych błędów.Logging systems are integral in understanding what actions or activities a solution has performed, failures that have occurred, and can provide help in fixing those failures. Dzienniki można analizować, aby interpretować i rozwiązywać błędy, poprawiać charakterystyki wydajności i zapewniać zgodność z obowiązującymi regułami i przepisami.Logs can be analyzed to help understand and remedy error conditions, enhance performance characteristics, and ensure compliance with governing rule and regulations.

Mimo że rejestrowanie w postaci zwykłego tekstu ma mniejszy wpływ na ponoszone z góry koszty programowania, jest trudniejsze do odczytu i analizy dla komputera.Though plain-text logging is lower impact on upfront development costs, it is more challenging for a machine to parse/read. Zalecamy używanie rejestrowania strukturalnego, ponieważ zebrane informacje są zarówno możliwe do przeanalizowania dla komputera, jak i czytelne dla człowieka.We recommend structured logging be used, as collected information is both machine parsable and human readable. Rejestrowanie strukturalne uzupełnia informacje dziennika o kontekst sytuacyjny i metadane.Structured logging adds situational context and metadata to the log information. W rejestrowaniu strukturalnym właściwości są elementami pierwszoplanowymi sformatowanymi jako pary klucz/wartość lub posiadającymi stały schemat, co zwiększa możliwości wyszukiwania i wysyłania zapytań.In structured logging, properties are first class citizens formatted as key/value pairs, or with a fixed schema, to enhance search and query capabilities.

Następne krokiNext steps