和風網標誌

物聯網設備監控與可觀察性實用指南

日期:

物聯網設備監控與可觀察性實用指南

監控 和可觀察性對於維護物聯網設備的可靠性、效率和安全性至關重要。如果做得正確,它們可以提供物聯網系統的即時概覽,同時還可以確保存取解決歷史問題所需的資料。然而,當面對數千種不同的物聯網設備時,實現這些目標會帶來許多挑戰。

我該監控還是該觀察?

首先,讓我們修改一下物聯網監控和可觀察性中的術語,因為「監控」和「可觀察性」這兩個詞儘管存在差異,但經常互換使用。

讓我們從監控開始,這是一個有著更悠久歷史的術語。監控的核心目標是深入了解系統的健康狀況和效能。

首先是收集和分析相關指標。分析通常透過儀表板呈現。然而,合理的監控堆疊應該超越視覺表示,即時評估指標並警告用戶任何異常或問題。

但傳統的監控方法有一個問題:它要求您知道要尋找什麼。當遇到新問題時,這種方法可能會失效。

這就是可觀察性發揮作用的地方,因為它可以幫助您處理所謂的未知未知數。簡而言之,當您可以僅根據系統的輸出來回答有關其內部運作的問題時,系統就是可觀察的。軟體的通常輸出包括日誌、指標和追蹤。

具有良好可觀察性的系統不僅更容易排除故障,而且還允許您檢測更廣泛的問題。這是因為您對系統有了更好的了解,因此更容易獲得有關實際發生情況的問題的答案。

可觀察性在物聯網環境中尤其重要,因為系統涉及大量設備和模組。在這種規模下,試圖預測可能導致麻煩的每種潛在狀態組合即使不是不可能,也是不切實際的。

基本指標和監控方法

讓我們探索值得追蹤的數據以及旨在幫助我們完成此任務的特定工具。

我們得到數據了嗎?

眾所周知,物聯網往往更多的是數據而不是事物。這就是為什麼密切關注設備的資料傳輸至關重要。可靠的物聯網平台應密切注意訊息頻率和傳輸資料量等指標。

然而,手動監控數千台設備的流量顯然不是明智之舉。在這種情況下,自動警報的必要性是毫無疑問的. 至少當設備沒有發送任何數據,但您希望它發送數據時,您應該收到警報。

但是,請記住,物聯網設備通常在不可預測的環境中運行,例如互聯網連接不可靠的區域。因此,資料傳輸中的短暫間隙並不總是表明設備存在問題。

此外,通常的做法是在您的裝置或邊緣網關上緩衝訊息,這樣您就不會遺失任何重要資料。關鍵是你必須非常小心,不要讓你的閾值太敏感。否則,您將收到關於網路中的每個故障的警報,這不可避免地會導致警報疲勞,並且警報將失去其潛力。

一般設備健康資訊

監控設備運作狀況涉及追蹤各種關鍵指標。您可以考慮 CPU、記憶體消耗和網路流量。存取這些指標可以幫助識別效能問題、檢測軟體錯誤,甚至 揭露外部攻擊.

有很多方法可以公開這些指標。然而,工程界目前對以下功能著迷: 開放遙測.

他們的主要賣點之一是他們與供應商無關的方法。也就是說,您可以選擇 大量的可觀察性後端 以便於儲存和後面的分析。這導致了各種工具的誕生。

因此,無論您使用什麼語言或系統,都可以滿足您的需求。這非常方便,尤其是在物聯網的狂野世界中,每個設備都可能運行其獨特的軟體。

OpenTelemetry 支援三種主要類型的訊號:指標、日誌和追蹤。對於本節中概述的大多數情況,設備只需要公開幾個相關指標,例如當前的記憶體消耗。

然後,這些指標需要傳輸到雲端,您可以在雲端進行視覺化、設定警報等。這條道路已經為物聯網用例鋪平了道路,例如 OpenTelemetry Collector 或 Telegraf 等項目,可協助您從物聯網設備收集指標。

其他領域特定訊號

除了發送資料和資源利用率的一般特徵之外,您可能還需要追蹤一些特定於網域的值。這可能涉及發送日誌、追蹤或包含應用程式特定內容的簡單訊息。

對於日誌和跟踪,您可以再次依賴 OpenTelemetry 生態系統。這使您可以使用您喜歡的後端(例如 Grafana Loki/Tempo 或 Elastic Observability 堆疊)分析日誌和跟踪,而無需額外的努力!另一方面,訊息傳遞是每個合理的物聯網平台的核心功能。換句話說,這些方法在大多數情況下實施起來應該很簡單。

日誌的簡單性

例如,考慮一台自動收割機。您可能想追蹤其活動。執行此操作的簡單方法是在活動開始時發送帶有一些附加元資料的日誌。

當活動結束時以及其他相關事件時,您可以執行相同的操作。本質上,每個日誌記錄只是一個具有幾個必要屬性的結構化事件。以下是收割機開始對接序列時發送的日誌範例:

除了時間戳記和正文等主要欄位之外,訊息還可能包含更詳細地描述事件的其他屬性。當您尋找錯誤時,這些額外的部分會很方便。因此,請確保包含所有重要資訊。

有痕跡的深層脈絡洞察

如果您想要更詳細的見解,您也可以使用追蹤。追蹤對應於系統的一個邏輯操作,並由其跨度隱式定義。跨距代表該操作的單一工作單元。它由其開始和結束時間、屬性以及可選的父跨度定義。

由於父引用,追蹤形成了描述特定操作及其子程式的有向圖。此外,跨度可能包含多個跨度事件,描述在特定時間點發生的事件。

雖然追蹤通常與監控分散式系統相關,但也可以在 IoT 設備中使用追蹤來幫助您了解現場發生的情況。假設您對自動收割機如何返回其擴充座感到好奇。

參見下圖,其中對接對應於頂級根跨度。首先,收割機需要定位擴充塢,因此它會呼叫 API。此操作對應於一個子跨度。跨度事件的一個例子可以是收割機離開田地的時間點。當所有追蹤儀器一起使用時,您可以看到設備運作的全貌。

用簡單的訊息回歸基礎

在某些情況下,發送簡單的結構化訊息可能比使用 OpenTelemetry 訊號更實用。回到自動收割機的例子,您可能想要追蹤它的位置。

如果您想即時視覺化位置,OpenTelemetry 目前並不真正支援在語義上適合此場景的訊號。最接近的配對可能是他們的 Event API,該 API 仍處於實驗階段(截至 1 年第一季撰寫本文時)。相反,請考慮發送以下 JSON 訊息:

理想情況下,您使用的物聯網平台應該能夠解析此類訊息並將其提取到您選擇的合適資料庫中。從那裡,您可以根據需要自由分析和視覺化資料。

我們使用 Spotflow IoT 平台重新創建了此範例,以證明其簡單性。我們設定了一個設備,定期向平台發送包含其位置和速度的訊息。然後,我們將資料流路由到內建的 Grafana 出口接收器。就是這樣!該平台現在抓取所有訊息並將它們放入時間序列資料庫中,可以在 Grafana 中查詢。

此外,這是 Grafana Geomap 視覺化的一個很好的用例。它可以讓您輕鬆繪製設備的位置。請參閱下圖,我們使用 Grafana 視覺化從設備接收的資料。

關鍵要點

就是這樣!現在您已準備好設定可觀測性堆疊並開始監控您的 IoT 裝置。我們希望本文成為物聯網可觀測性領域的起點。請記住以下關鍵想法:

  • 監控資料傳輸:密切注意設備的資料傳輸,並準備好警報,以便及時發現任何中斷。
  • 追蹤設備健康指標:顯示有關設備運作狀況的相關指標,以確保平穩運作。
  • 透過日誌、追蹤和結構化訊息發送應用程式特定數據:考慮您的網域和裝置的操作,並發送將來偵錯和即時監控可能需要的所有資料。
  • 探索 OpenTelemetry 生態系統:考慮在 IoT 中使用 OpenTelemetry 生態系統,因為它已成為一種可觀測性標準,為您提供多種可觀測性後端選項並為各種設備運行時提供服務。
現貨圖片

最新情報

現貨圖片