Logo Zephyrnet

Praktyczny przewodnik po monitorowaniu i obserwowalności urządzeń IoT

Data:

Praktyczny przewodnik po monitorowaniu i obserwowalności urządzeń IoT

Monitorowanie i obserwowalność są niezbędne do utrzymania niezawodności, wydajności i bezpieczeństwa urządzeń IoT. Dobrze wykonane zapewniają przegląd systemów IoT w czasie rzeczywistym, ale także zapewniają dostęp do danych niezbędnych do rozwiązywania problemów historycznych. Jednak w konfrontacji z tysiącami różnorodnych urządzeń IoT osiągnięcie tych celów wiąże się z wieloma wyzwaniami.

Czy powinienem monitorować, czy powinienem obserwować?

Na początek zrewidujmy terminologię dotyczącą monitorowania i obserwowalności IoT, ponieważ słowa „monitorowanie” i „obserwowalność” są często używane zamiennie pomimo różnic.

Zacznijmy od monitoringu – terminu o bardziej ugruntowanej historii. W swej istocie monitorowanie ma na celu zapewnienie wglądu w stan i wydajność systemu.

Rozpoczyna się to od gromadzenia i analizowania odpowiednich wskaźników. Analiza jest zazwyczaj prezentowana za pomocą dashboardów. Jednak rozsądny stos monitorowania powinien wykraczać poza reprezentację wizualną, oceniając metryki w czasie rzeczywistym i ostrzegając użytkowników o wszelkich anomaliach lub problemach.

Tradycyjne podejście do monitorowania ma jednak pewien haczyk: wymaga wiedzy, czego szukać. Metoda ta może okazać się niewystarczająca w przypadku napotkania nowych problemów.

W tym miejscu w grę wchodzi obserwowalność, która może pomóc w radzeniu sobie z tak zwanymi nieznanymi niewiadomymi. Mówiąc najprościej, system można zaobserwować, gdy można odpowiedzieć na pytania dotyczące jego wewnętrznego działania wyłącznie na podstawie jego wyników. Typowe dane wyjściowe oprogramowania obejmują dzienniki, metryki i ślady.

System o dobrej obserwowalności jest nie tylko łatwiejszy do rozwiązywania problemów, ale także pozwala wykryć znacznie szerszy zakres problemów. Dzieje się tak dlatego, że masz znacznie lepszy wgląd w system, dzięki czemu łatwiej jest uzyskać odpowiedzi na pytania dotyczące tego, co się faktycznie dzieje.

Obserwowalność jest szczególnie istotna w kontekście IoT, gdzie systemy obejmują wiele urządzeń i modułów. Próba przewidzenia każdej potencjalnej kombinacji stanów, która może prowadzić do problemów, jest na tę skalę niepraktyczna, jeśli nie niemożliwa.

Podstawowe wskaźniki i metody monitorowania

Przyjrzyjmy się danym wartym śledzenia i konkretnym instrumentom zaprojektowanym, aby pomóc nam w tym zadaniu.

Czy otrzymujemy dane?

Nie jest tajemnicą, że Internet rzeczy często skupia się bardziej na danych niż na rzeczy. Dlatego tak ważne jest monitorowanie transmisji danych w urządzeniach. Solidna platforma IoT powinna uważnie monitorować takie wskaźniki, jak częstotliwość komunikatów i ilość przesyłanych danych.

Jednak ręczne obserwowanie ruchu tysięcy urządzeń oczywiście nie jest mądrym rozwiązaniem. Konieczność automatycznego ostrzegania jest w tym przypadku niekwestionowana. Minimum, o którym powinieneś zostać powiadomiony, to sytuacja, gdy urządzenie nie wysyła żadnych danych, ale tego się spodziewasz.

Należy jednak pamiętać, że urządzenia IoT często działają w nieprzewidywalnych środowiskach, na przykład na obszarach o zawodnym połączeniu internetowym. Zatem krótka przerwa w transmisji danych nie zawsze oznacza problem z urządzeniem.

Ponadto powszechną praktyką jest buforowanie wiadomości na urządzeniu lub na bramce brzegowej, aby nie stracić żadnych ważnych danych. Chodzi o to, że musisz bardzo uważać, aby nie ustawić zbyt wrażliwych progów. W przeciwnym razie będziesz ostrzegany o każdym zakłóceniu w sieci, co nieuchronnie doprowadzi do zmęczenia czujnością, a ostrzeganie straci swój potencjał.

Ogólne informacje o stanie urządzenia

Monitorowanie stanu urządzenia obejmuje śledzenie różnych kluczowych wskaźników. Można pomyśleć o procesorze, zużyciu pamięci i ruchu sieciowym. Dostęp do tych wskaźników może pomóc w zidentyfikowaniu problemów z wydajnością, wykryciu błędów oprogramowania, a nawet ujawnić ataki zewnętrzne.

Istnieje wiele sposobów eksponowania tych wskaźników. Jednak społeczność inżynierów jest obecnie zachwycona możliwościami Otwórz Telemetrię.

Jedną z ich głównych zalet jest podejście niezależne od dostawcy. To znaczy, że możesz wybierać duża liczba backendów obserwowalności do przechowywania i późniejszej analizy. Doprowadziło to do powstania wszelkiego rodzaju narzędzi do pracy z nim.

Zatem niezależnie od języka i systemu, którego używasz, jesteś objęty ochroną. Jest to bardzo przydatne, szczególnie w dzikim świecie IoT, gdzie na każdym urządzeniu może działać własne, unikalne oprogramowanie.

OpenTelemetry obsługuje trzy główne typy sygnałów: metryki, dzienniki i ślady. W większości przypadków opisanych w tej sekcji urządzenia muszą po prostu ujawnić kilka istotnych wskaźników, takich jak bieżące zużycie pamięci.

Następnie te metryki należy przenieść do chmury, gdzie można je zwizualizować, skonfigurować alerty i tak dalej. Ta ścieżka jest już wytyczona w przypadku zastosowań IoT dzięki projektom takim jak OpenTelemetry Collector lub Telegraf, które mogą pomóc w gromadzeniu wskaźników z urządzeń IoT.

Inne sygnały specyficzne dla domeny

Oprócz ogólnej charakterystyki wysyłania danych i wykorzystania zasobów, może być konieczne śledzenie niektórych wartości specyficznych dla domeny. Może to obejmować wysyłanie dzienników, śladów lub prostych wiadomości zawierających treść specyficzną dla aplikacji.

Zarówno w przypadku dzienników, jak i śladów możesz ponownie polegać na ekosystemie OpenTelemetry. Dzięki temu możesz analizować logi i ślady przy użyciu preferowanych backendów, takich jak Grafana Loki/Tempo lub stos Elastic Observability, bez dodatkowego wysiłku! Z drugiej strony przesyłanie wiadomości to podstawowa funkcjonalność każdej rozsądnej platformy IoT. Innymi słowy, w większości scenariuszy wdrożenie tych podejść powinno być proste.

Prostota dzienników

Rozważmy na przykład autonomiczną maszynę do zbioru plonów. Być może zechcesz śledzić jego działania. Prostym sposobem na osiągnięcie tego jest wysłanie dziennika po rozpoczęciu działania z dodatkowymi metadanymi.

Możesz zrobić to samo po zakończeniu działania i w przypadku innych istotnych wydarzeń. Zasadniczo każdy rekord dziennika jest po prostu zdarzeniem strukturalnym z kilkoma wymaganymi właściwościami. Poniżej znajduje się przykład dziennika wysłanego, gdy kombajn rozpoczyna sekwencję dokowania:

Oprócz podstawowych pól, takich jak znacznik czasu i treść, wiadomość może zawierać dodatkowe atrybuty opisujące zdarzenie bardziej szczegółowo. Te dodatkowe bity mogą być przydatne podczas polowania na błędy. Dlatego pamiętaj o zawarciu wszystkich ważnych informacji.

Głębokie spostrzeżenia kontekstowe ze śladami

Jeśli chcesz uzyskać nieco bardziej szczegółowe informacje, możesz również zastosować śledzenie. Ślad odpowiada jednej operacji logicznej systemu i jest domyślnie zdefiniowany przez jego zakresy. Rozpiętość reprezentuje pojedynczą jednostkę pracy tej operacji. Jest zdefiniowany przez czas rozpoczęcia i zakończenia, atrybuty i opcjonalnie zakres nadrzędny.

Dzięki odnośnikom nadrzędnym ślad tworzy graf skierowany opisujący daną operację i jej podprogramy. Dodatkowo rozpiętości mogą zawierać wiele zdarzeń rozpiętości opisujących zdarzenie, które miało miejsce w określonym momencie.

Chociaż śledzenie jest zwykle kojarzone z monitorowaniem systemów rozproszonych, możliwe jest również wykorzystanie śledzenia w urządzeniach IoT, aby pomóc w zrozumieniu szerszego obrazu tego, co dzieje się w terenie. Załóżmy, że ciekawi Cię, jak autonomiczny kombajn wraca do stacji dokującej.

Zobacz poniższy rysunek, gdzie dokowanie odpowiada rozpiętości katalogu głównego najwyższego poziomu. Najpierw kombajn musi zlokalizować stację dokującą, więc wywołuje API. Ta operacja odpowiada jednemu zakresowi podrzędnemu. Przykładem zdarzenia rozpiętości może być moment opuszczenia pola przez kombajn. Korzystając ze wszystkich instrumentów śledzących razem, można zobaczyć pełny obraz działania urządzenia.

Powrót do podstaw dzięki prostym wiadomościom

W niektórych scenariuszach wysyłanie prostych, ustrukturyzowanych wiadomości może być bardziej praktyczne niż używanie sygnałów OpenTelemetry. Wracając do przykładu autonomicznego kombajnu, prawdopodobnie zechcesz śledzić jego lokalizację.

Jeśli chcesz wizualizować lokalizację w czasie rzeczywistym, OpenTelemetry obecnie tak naprawdę nie obsługuje sygnału, który semantycznie pasowałby do tego scenariusza. Najbliżej będzie prawdopodobnie ich Event API, który wciąż znajduje się w fazie eksperymentalnej (w momencie pisania tego artykułu w pierwszym kwartale 1 r.). Zamiast tego rozważ wysłanie następującej wiadomości JSON:

W idealnym przypadku platforma IoT, z której korzystasz, powinna być w stanie analizować takie wiadomości i wprowadzać je do wybranej przez Ciebie odpowiedniej bazy danych. Stamtąd możesz swobodnie analizować i wizualizować dane zgodnie ze swoimi potrzebami.

Odtworzyliśmy ten przykład na platformie Spotflow IoT, aby zademonstrować prostotę. Skonfigurowaliśmy urządzenie, które okresowo wysyła na platformę komunikaty ze swoją lokalizacją i prędkością. Następnie skierowaliśmy strumień danych do naszego wbudowanego ujścia sygnału wyjściowego Grafana. I to wszystko! Platforma przechwytuje teraz wszystkie wiadomości i umieszcza je w bazie danych szeregów czasowych, którą można przeglądać w Grafanie.

Jest to również świetny przypadek użycia wizualizacji Geomapy Grafana. Pozwala łatwo nakreślić lokalizację Twoich urządzeń. Zobacz obrazek poniżej, na którym za pomocą Grafany zwizualizowaliśmy dane otrzymane z urządzenia.

Na wynos

I to wszystko! Teraz możesz skonfigurować stos obserwowalności i rozpocząć monitorowanie urządzeń IoT. Chcielibyśmy, aby ten artykuł służył jako punkt wyjścia w świecie obserwowalności IoT. Zapamiętaj następujące kluczowe myśli:

  • Monitoruj transmisję danych: Uważnie obserwuj transmisję danych ze swoich urządzeń i przygotuj się na alerty, aby szybko wykryć wszelkie zakłócenia.
  • Śledź wskaźniki stanu urządzenia: Wyświetl odpowiednie wskaźniki dotyczące stanu urządzenia, aby zapewnić płynne działanie.
  • Wysyłaj dane specyficzne dla aplikacji za pośrednictwem dzienników, śladów i wiadomości strukturalnych: Pomyśl o swojej domenie i działaniu urządzenia i wyślij wszystkie dane, które mogą być potrzebne do przyszłego debugowania i monitorowania w czasie rzeczywistym.
  • Poznaj ekosystem OpenTelemetry: Rozważ użycie ekosystemu OpenTelemetry w IoT, ponieważ staje się on standardem obserwowalności, zapewniającym wiele opcji zaplecza obserwowalności i obsługującym różne środowiska wykonawcze urządzeń.
spot_img

Najnowsza inteligencja

spot_img