全部產品
Search
文件中心

Simple Log Service:採集-IoT/嵌入式日誌

更新時間:Jan 10, 2026

IoT(Internet of Things)正在高速增長,越來越多裝置開始逐步走進日常生活,例如智能路由器、各種電視棒、天貓精靈、掃地機器人等,讓我們體驗到智能領域的便利。傳統軟體領域的嵌入式開發模式在IoT裝置領域的應用遇到了很多挑戰,IoT裝置數目多、分布廣,難以調試且硬體受限,傳統的裝置日誌解決方案無法完美滿足需求。

Log Service團隊結合IoT裝置的特點,為IoT裝置量身定製一套日誌資料擷取方案:C Producer。

日誌資料擷取方案

嵌入式開發需求

作為IoT/嵌入式工程師,除了需要深厚的開發功底外,面對海量的裝置,如何有能力管理、監控、診斷黑盒裝置至關重要。嵌入式開發需求主要有以下幾點:

  • 資料擷取:如何即時採集分散在全球各地的百萬/千萬級裝置上的資料?

  • 調試:如何使用一套方案既滿足線上資料擷取又滿足開發時的Just-in-Time 偵錯?

  • 線上診斷:某個線上裝置出現錯誤,如何快速定位裝置,查看引起該裝置出錯的上下文是什嗎?

  • 監控:當前有多少個裝置線上?工作狀態分布如何?地理位置分布如何?出錯裝置如何即時警示?

  • 資料即時分析:裝置產生資料如何與Realtime Compute、巨量資料倉庫對接,構建使用者畫像?

嵌入式開發需求

IoT領域面臨的主要挑戰

思考以上問題的解決方案,我們發現在傳統軟體領域那一套手段面臨IoT領域基本全部失效,主要挑戰來自於IoT裝置這些特點:

  • 裝置數目多:在傳統營運領域管理1萬台伺服器屬於一家大公司了,但10萬線上對於IoT裝置而言只是一個小門檻。

  • 分布廣:硬體一旦部署後,往往會部署在全國、甚至全球各地。

  • 黑盒:難以登入並調試,大部分情況屬於不可知狀態。

  • 資源受限:出於成本考慮,IoT裝置硬體較為受限(例如總共只有32MB記憶體),傳統PC領域手段往往失效。

C Producer

Log Service量身定製的日誌資料擷取解決方案。

Log Service用戶端Logtail在X86伺服器上有百萬級部署,可以參見文章:Logtail技術分享:,。除此之外,Log Service提供多樣化的採集方案:

  • 移動端SDK:Android/iOS平台資料擷取,一天已有千萬級DAU。

  • Web Tracking(JS):類似百度統計,Analytics輕量級採集方式,無需簽名。

Log Service團隊結合IoT裝置的特點,為IoT裝置量身定製一套日誌資料擷取方案:C Producer。

採集解決方案

C Producer特點

C Producer Library繼承Logtail穩定、高效能、低資源消耗等特點,可以定位是一個輕量級Logtail,雖沒有Logtail即時組態管理機制,但具備除此之外70%功能,包括:

  • 提供多租戶概念:可以對多種日誌(例如Metric,DebugLog,ErrorLog)進行優先順序分級處理,同時配置多個用戶端,每個用戶端可獨立配置採集優先順序、目標Project和LogStore等。

  • 支援上下文查詢:同一個用戶端產生的日誌在同一上下文中,支援查看某條日誌前後相關日誌。

  • 並發發送,斷點續傳:支援緩衝上限可設定,超過上限後日誌寫入失敗。

此外,C Producer還具備以下IoT裝置專享功能,例如:

  • 本地調試:支援將日誌內容輸出到本地,並支援輪轉、日誌數、輪轉大小設定。

  • 細粒度資源控制:支援針對不同類型資料/日誌設定不同的緩衝上限、彙總方式。

  • 日誌壓縮緩衝:支援將未發送成功的資料壓縮緩衝,減少裝置記憶體佔用。

C Producer特點

功能優勢

C Producer作為IoT裝置的量身定製方案,在以下方面具備明顯優勢:

功能優勢

  • 用戶端高並發寫入:可配置的發送線程池,支援每秒數十萬條日誌寫入,詳情參見效能測試。

  • 低資源消耗:每秒20萬日誌寫入只消耗70%CPU;同時在低效能硬體(例如樹莓派)上,每秒產生100條日誌對資源基本無影響。

  • 用戶端日誌不落盤:即資料產生後直接通過網路發往服務端。

  • 用戶端計算與I/O邏輯分離:日誌非同步輸出,不阻塞背景工作執行緒。

  • 支援多優先順序:不同用戶端可配置不同的優先順序,保證高優先順序日誌最先發送。

  • 本地調試:支援設定本地調試,便於您在網路不通的情況下本地測試應用程式。

在以上情境中,C Producer Library簡化您程式開發的步驟。您無需關心日誌採集細節實現、也不用擔心日誌採集會影響您的業務正常運行,大大降低資料擷取門檻。

C Producer方案與其他嵌入式採集方案對比如下:

類別

C Producer

其他方案

編程

平台

移動端+嵌入式

移動端為主

上下文

支援

不支援

多日誌

支援

不支援(一種日誌)

自訂格式

支援

不支援(提供若干個有限欄位)

優先順序

支援

不支援

環境參數

可配置

可配置

穩定性

並發度

一般

壓縮演算法

LZ4(效率與效能平衡)+GZIP

最佳化

低資源消耗

最佳化

一般

傳輸

斷電續傳

支援

預設不支援,需要二次開發

存取點

8(中國)+8(全球)

杭州

調試

本地日誌

支援

手動支援

參數配置

支援

不支援

即時性

服務端可見

1秒(99.9%),3秒(Max)

1-2小時

自訂處理

15+對接方式

定製化即時+離線方案

C Producer+Log Service解決方案

C Producer結合阿里雲Log Service產品配合使用,即可完成IoT裝置日誌全套解決方案。

  • 規模大

    • 支援億層級用戶端即時寫入。

    • 支援PB/Day資料量。

  • 速度快

    • 採集快:寫入零延遲,寫入即可消費。

    • 查詢快:一秒內,複雜查詢(5個條件)可處理10億級資料。

    • 分析快:一秒內,複雜分析(5個維度彙總+GroupBy)可彙總億層級資料。

  • 對接廣

    • 與阿里雲各類產品無縫打通。

    • 各種開源格式儲存、計算、可視化系統完美相容。

C-Producer解決方案

下載與使用

下載地址:Github

一個應用可建立多個Producer,每個Producer可包含多個Client,每個Client可單獨配置目的地址、記錄層級、是否本地調試、緩衝大小、自訂標識、topic等資訊。

詳細安裝方式及操作步驟,請參見README

下載與使用

效能測試

環境配置

  • 高效能情境:傳統X86伺服器。

  • 低效能情境:樹莓派(低功耗環境)。

配置如下:

環境配置

C Producer配置

  • ARM(樹莓派)

    • 緩衝:10 MB

    • 彙總時間:3秒(彙總時間、彙總資料包大小、彙總日誌數任一滿足即打包發送)

    • 彙總資料包大小:1 MB

    • 彙總日誌數:1000

    • 發送線程:1

    • 自訂tag:5

  • X86

    • 緩衝:10MB

    • 彙總時間:3秒(彙總時間、彙總資料包大小、彙總日誌數任一滿足即打包發送)

    • 彙總資料包大小:3 MB

    • 彙總日誌數:4096

    • 發送線程:4

    • 自訂tag:5

日誌範例(9個索引值對,資料量約為350位元組)

__source__: 192.0.2.1
__tag__:1: 2
__tag__:5: 6
__tag__:a: b
__tag__:c: d
__tag__:tag_key: tag_value
__topic__: topic_test
_file_: /disk1/workspace/tools/aliyun-log-c-sdk/sample/log_producer_sample.c
_function_: log_producer_post_logs
_level_: LOG_PRODUCER_LEVEL_WARN
_line_: 248
_thread_: 40978304
LogHub: Real-time log collection and consumption
Search/Analytics: Query and real-time analysis
Interconnection: Grafana and JDBC/SQL92
Visualized: dashboard and report functions

測試結果

  • X86平台結果

    • C Producer可以輕鬆到達90 MB/s的發送速度,每秒上傳日誌20萬,佔用CPU只有70%,記憶體140 MB。

    • 伺服器在200條/s,發送資料對於CPU基本無影響(降低到0.01%以內)。

    • 客戶線程發送一條資料(輸出一條日誌)的平均耗時為1.2 us。

    X86平台結果

  • 樹莓派平台結果

    • 在樹莓派的測試中,由於CPU的頻率只有600 MHz,效能差不多是伺服器的1/10左右,每秒可發送最多2萬條日誌。

    • 樹莓派在20條/s的時候,發送資料對於CPU基本無影響(降低到0.01%以內)。

    • 客戶線程發送一條資料(輸出一條日誌)的平均耗時為:12 us左右(樹莓派通過USB串連到PC共用網路)。

    樹莓派平台結果