近日,阿裡雲日志服務團隊對日志服務做了更進一步的完善。阿裡雲日志服務團隊專門為IoT(Internet of Things)裝置量身定制了一套日志資料采集方案,釋出了适用于開發者的面向嵌入式和物聯網用戶端C Producer;還釋出了Flink Connector工具,友善Flink使用者進行開發;以及新增了API網關的通路日志(Acccess Log)功能,便于開發和維護人員更詳細的了解其Web服務的運作狀況;同時對告警功能進行更新,新增了釘釘和自定義WebHook兩種新通知管道。
<b>一、</b><b>面向嵌入式、物聯網</b><b>的</b><b>日志用戶端C</b><b> </b><b>Producer</b><b></b>
<b> </b>
随着IoT正在高速增長,越來越多的智能裝置開始逐漸走進我們的日常生活,例如智能路由器、天貓精靈、掃地機器人等,讓我們體驗到智能領域的便利。由于IoT裝置數目多、分布廣,難以調試且硬體受限,傳統的裝置日志解決方案無法完美滿足開發者的需求。阿裡雲的日志服務團隊根據多年Logtail的開發經驗,結合IoT裝置的特點,為IoT裝置量身定制一套日志資料采集方案:C Producer。
日志服務團隊将C Producer Library定位為一個“輕量級Logtail”,繼承了Logtail的穩定、邊界特點,雖然沒有Logtail實時配置管理機制,但也具備除此之外70%的功能,包括:
l 提供多租戶概念:可以對多種日志(例如Metric、DebugLog、ErrorLog)進行優先級分級處理,同時配置多個用戶端,每個用戶端可獨立配置采集優先級、目的project/logstore等;
l 支援上下文查詢:同一個用戶端産生的日志在同一上下文中,支援檢視某條日志前後相關日志;
l 并發發送,斷點續傳:支援緩存上線可設定,超過上限後日志寫入失敗。
此外,C Producer還具備以下IoT裝置專享功能,例如:
l 本地調試:支援将日志内容輸出到本地,并支援輪轉、日志數、輪轉大小設定;
l 細粒度資源控制:支援針對不同類型資料/日志設定不同的緩存上線、聚合方式;
l 日志壓縮緩存:支援将未發送成功的資料壓縮緩存,減少裝置記憶體占用。
作為IoT裝置量身定制的方案,C Producer在以下幾個方面具備明顯的優勢:
l 用戶端高并發寫入:可配置的發送線程池,支援每秒數十萬條日志寫入,詳情參見性能測試。
l 低資源消耗:每秒20W日志寫入隻消耗70% CPU;同時在低性能硬體(如樹莓派)上,每秒産生100條日志對資源基本無影響。
l 用戶端日志不落盤:既資料産生後直接通過網絡發往服務端。
l 用戶端計算與 I/O 邏輯分離:日志異步輸出,不阻塞工作線程。
l 支援多優先級:不通用戶端就可配置不同優先級,高優先級日志最先發送。
l 本地調試:便于在網絡不通的情況下本地測試應用程式。
<b>二、API網關通路日志</b><b></b>
阿裡雲API網關提供API托管服務,在微服務聚合、前後端分離和系統內建上為使用者提供了諸多便利。通路日志是由web服務生成的日志,每一次API請求都對應一條通路記錄,内容包括調用者IP、請求的URL、響應延遲、傳回狀态碼、請求和響應位元組數等重要資訊,便于使用者了解其web服務的運作狀況。
使用者可通過通路日志功能進行日志線上查詢、詳細調用日志、自定義分析圖表和預置分析報表等操作。日志服務支援通過<b>資料接入向導</b>采集API網關的通路日志,提供一鍵打通API網關日志功能,對API網關中産生實時日志提供如下資訊:
l 秒級實時采集能力,99.9%情況下10秒内即可消費;
l 通過LogHub功能實時計算、流計算對接;
l 通過LogShipper與資料倉庫對接;
l 利用LogSearch/Analytics功能進行實時日志查詢、分析;
l 通過儀表盤、告警等功能進行線上監控。
<b>三、日志告警功能更新</b><b></b>
阿裡雲的日志服務提供告警功能,支援儲存查詢語句為快速查詢,對查詢設定觸發周期(間隔),并對執行結果設定判斷條件并且告警,以便實時監控Nginx通路日志。
日志服務通過通知中心告知使用者,即在阿裡雲通知中心可以設定多個聯系人,通知會通過郵件和短信方式發送給使用者。
近日,日志服務團隊對告警功能進行更新,新增了WebHook通知推送方式,即釘釘機器人和自定義WebHook等,使用者可以在通知内容和方式上進行自定義配置并推送自定義位址,為開發者、運維及營運人員對日志的使用提供了便利。同時,對告警内容進行優化:新增上下文、賬号歸屬人的資訊,友善進行問題定位。
<b>四、全新釋出Flink Connector工具</b><b></b>
Flink log connector是阿裡雲日志服務團隊提供的用于對接Flink的工具,友善Flink使用者在Flink環境中進行日志服務LogHub的資料開發,包括兩部分:消費者(Consumer)和生産者(Producer)。消費者用于從日志服務中讀取資料,支援exactly once語義,支援shard負載均衡。生産者則用于将資料寫入日志服務,使用connector時,需要在項目中添加maven依賴:
1. <dependency>
2. <groupId>org.apache.flink</groupId>
3. <artifactId>flink-streaming-java_2.11</artifactId>
4. <<b>version</b>>1.3.2</<b>version</b>>
5. </dependency>
6. <dependency>
7. <groupId>com.aliyun.openservices</groupId>
8. <artifactId>flink-log-connector</artifactId>
9. <<b>version</b>>0.1.7</<b>version</b>>
10. </dependency>
11. <dependency>
12. <groupId>com.google.protobuf</groupId>
13. <artifactId>protobuf-java</artifactId>
14. <<b>version</b>>2.5.0</<b>version</b>>
15. </dependency>
16. <dependency>
17. <groupId>com.aliyun.openservices</groupId>
18. <artifactId>aliyun-log</artifactId>
19. <<b>version</b>>0.6.10</<b>version</b>>
20. </dependency>
21. <dependency>
22. <groupId>com.aliyun.openservices</groupId>
23. <artifactId>log-loghub-producer</artifactId>
24. <<b>version</b>>0.1.8</<b>version</b>>
25. </dependency>
Flink Connector具有可設定消費起始位置,監控、告警,容災、異常恢複,準确性高等特點:
l 設定消費起始位置,友善使用者進行消費點的設定;
l 監控,實時擷取目前資料消費狀态,并通過設定告警知曉延遲的任務;
l 支援消費執行個體彈性伸縮、容災、異常恢複,無需關心細節;
l 提供消費級exactly once語義支援,保證資料精确性。
更多關于日志服務的介紹及使用請參考以下文章: