天天看點

利用觀測雲打造企業級的統一日志中心

作者:觀測雲

前言

在數字化轉型時代,現代的大規模應用程式每天可以生成數以億計的日志資料。它是企業營運和管理中的寶貴資産,記錄了系統、應用和裝置的各種活動和事件。通過分析日志資料,企業可以深入了解業務運作情況、識别潛在問題和優化機會,提升系統穩定性、安全性和性能表現。是以,企業建構“統一日志中心”的必要性是顯而易見的,它可以集中管理和分析各類日志資料,實作全面監控、快速響應和深度分析,幫助企業實作故障排除、安全審計、性能優化等目标,提高營運效率、降低風險,并為業務發展提供有力支援。

觀測雲秉承“統一采集、統一處理、統一分析”的理念,建構了一套高效的觀測資料分析平台。本文從日志采集、處理、存儲、分析的各個過程,分别觀測雲如何幫助企業又快又好地建設統一日志中心。

觀測雲日志采集能力

在采集方面,觀測雲的統一資料采集器 DataKit 擁有豐富的采集模闆和強大的內建擴充能力,能夠使用采集磁盤檔案、容器 stdout、接收遠端推送日志、sidecar 方式采集日志等多種方式,以适應企業異構的 IT 環境和多元的日志采集需求。

  • 觀測雲對不同日志的處理方式
利用觀測雲打造企業級的統一日志中心

DataKit 内置了作業系統日志、容器日志、MySQL & Nginx 等常用資料庫和中間件的采集器,能同時采集監控對象屬性、名額資料(Metric)、日志資料(Log),用統一采集的理念最大程度上減少部署在監控對象上的 agent 數量。

DataKit 采集器的運作管理十分友善,在 K8S 環境中,DataKit 會以 DaemonSet 方式運作,確定在每個節點上都會運作一個日志采集器 Pod,進而實作對整個叢集的日志資料全面覆寫。無論叢集中有多少個節點,都能保證每個節點的日志都被實時采集。觀測雲還提供了 DCA(DataKit Client Agent),它是一個用于批量管理 DataKit 的工具。通過 DCA ,使用者可以更加友善地對 DataKit 狀态、日志解析模闆、黑名單等配置進行批量操作和維護,進而提高資料采集的效率和準确性。

對于已經使用開源 agent 采集日志的企業來說,通常傾向于将原有 agent 采集的日志轉發給建立設的統一日志中心。觀測雲可使用 Fluentd、Logstash、Kafka、API 等方式來接收已采集的日志,充分保留企業過往的技術投入并減少替換成本。

觀測雲日志處理能力

在日志處理過程中,觀測雲内置了十餘種常用資料庫&中間件的官方日志解析模闆,包括 Kafka、Elasticsearch、MySQL、Nginx、Redis、Tomcat、MongoDB 等,友善使用者直接使用。另外還提供了數十個腳本函數,讓使用者可以按照不同的日志處理場景進行快速引用,實時進行調試。

例如,很多企業希望在日志采集時對日志中的敏感資訊進行脫敏,則可以使用觀測雲Pipeline中的脫敏函數對指定字段範圍做資料脫敏,即可在采集側完成脫敏處理,避免了敏感資訊在網際網路傳輸帶來的合規性問題。

再如,很多企業也提到了希望能配置采集端黑名單,以減少寶貴的帶寬資源,降低中心化處理的性能開銷。在觀測雲上,您可以通過 drop 函數(丢棄整條日志或某個字段)、sample 函數(對日志進行采樣),或者是配置日志黑名單來達到上述目的。

利用觀測雲打造企業級的統一日志中心

對于模闆不能适配的日志格式,觀測雲也提供了多種方式讓使用者能輕松完成日志解析。首先是在 Pipeline 解析過程中提供了“一鍵擷取樣本”并實時調試的能力,讓使用者可以實時檢視 Pipeline 對日志的處理是否滿足需求。同時為了降低編寫 Pipeline 的難度,觀測雲還提供了互動式的指令行工具,幫助使用者快速選擇适合某個字段的函數。

  • 互動式指令行工具,降低日志解析難度
利用觀測雲打造企業級的統一日志中心

此外,Pipeline 還支援通過 openAPI 進行導出、導入,以便在集團性組織在建立工作空間時直接引用,快速将已經調整好的 Pipeline 分發給不同業務系統,提升業務團隊的使用體驗。

值得一提的是,對于在日志采集中經常遇到的多行日志采集問題,觀測雲提供了自動多行模式、自定義多行模式的方式。自動多行模式會根據特定的起始标記、結束标記、正規表達式等來進行多行日志的識别,降低使用者的使用負擔。

觀測雲日志存儲能力

觀測雲在面向全球使用者提供 SaaS 服務的過程中,需要實施處理并存儲海量的日志,如何在成本與使用者體驗間保持平衡,觀測雲付出巨大努力。在過去使用elasticsearch / opensearch 方案時,我們發現該方案存在寫入占用資源多、對無模式表支援較差、聚合查詢性能差等問題。是以觀測雲在經過嚴謹的調研、開發、測試之後推出了全新架構的 GuanceDB 。

GuanceDB 滿足了觀測雲對 Schema Free 的要求,解決了資料 Schema 頻繁變化痛點;提高了資料寫入的性能,保證了資料寫入的時效性和查詢的實時性;提升了全文檢索的性能并降低查詢的資源開銷...... 總而言之,觀測雲最終實作:僅使用 Elasticsearch 的 1/3 成本、獲得 2~4 倍的性能提升,整體成本效益提升了近 10 倍!

利用觀測雲打造企業級的統一日志中心

為了滿足企業對日志的長期儲存需求(通常出于日志審計的考慮),同時又要兼顧存儲成本,觀測雲提供了“資料轉發”功能,便于觀測雲提供日志等資料儲存到觀測雲的對象存儲及轉發到外部存儲的功能,您可以自由選擇存儲對象,靈活管理資料轉發資料。在資料轉發頁面,您可以通過設定查詢時間和資料轉發規則快速查詢存儲資料(包含觀測雲備份日志、AWS S3、華為雲 OBS、阿裡雲 OSS 和 Kafka 消息隊列),還可以在無需額外處理的情況下,直接在觀測雲上檢視曆史備份日志和 SLS Query Logstore 資料。

觀測雲日志分析能力

DQL(Debug Query Language)是觀測雲開發的資料查詢語言。DQL 支援在觀測雲工作空間或者終端裝置進行資料查詢,允許使用者檢索和分析存儲在觀測雲中的各種資料,包括日志、名額、鍊路追蹤等。

利用觀測雲打造企業級的統一日志中心

得益于 DQL 統一查詢語言和統一風格的“檢視器”,使用者在觀測雲上無論是分析日志、鍊路、RUM(使用者體驗資料)時都有一緻性的體驗,同樣的簡單易用、同樣的秒級查詢體驗。

利用觀測雲打造企業級的統一日志中心

常用搜尋曆史模闆、快捷篩選、字段補全等功能,在觀測雲上都一應俱全。考慮到團隊在排查故障、分析異常過程中經常會有資料共享的需求,觀測雲設計了貼心的“快照分享”,團隊成員可以建立自定義時間段即時拷貝的資料副本,并生成指定檢視權限的快捷通路連結。團隊可以通過一個浏覽器連結分享日志資料,并且可以保留分享者在日志上做過的時間篩選、條件篩選,該快照也并非是單一的靜态資料,而是可以互動的日志分析界面,大大降低了團隊間使用截圖、發送原始日志的溝通成本。出于對資料安全性的考慮,分享者可以對快照設定字段脫敏、添加水印、設定有效時間、連結加密、通路IP白名單等多種特性,在資訊高效傳遞的同時充分保證資料的安全性,便于團隊間、外部企業進行協作。

利用觀測雲打造企業級的統一日志中心

對于很多企業來說,特别擔心采集的日志中存在敏感資料,但在日志的采集、存儲、分析過程中極其難以發現。為了解決這個問題,觀測雲開發了”敏感資料掃描”功能,内置了近百個敏感資料規則庫,并允許使用者自定義建立敏感資料規則,通過引用這些規則來對存儲在觀測雲中的日志資料進行主動掃描,一旦發現敏感字段即可進行加密,確定資料合規性。

此外,觀測雲還支援通過“資料通路”功能為不同角色配置對應的日志資料通路查詢範圍,以實作資料查詢範圍的精細化管理。例如負責不同業務系統的團隊、同一團隊中根據角色區分不同的日志權限,都可以靈活進行配置。

在“日志智能檢測”功能中,觀測雲運用智能檢測算法,監控工作空間内采集器産生的日志資料。智能識别日志數量的突增 / 突降、錯誤日志的突增的異常資料,及時發現不符合預期的異常狀态,及時提醒團隊關注業務是否有異常表現。

  • 日志突增的智能檢測
利用觀測雲打造企業級的統一日志中心

總結

當企業考慮建構統一日志中心時,通常需要考慮功能需求、可擴充性、安全性、相容性、性能和效率、成本效益與使用者體驗。相信經過上面的介紹,您對觀測雲的日志分析能力擁有了比較全面的認識。觀測雲一直緻力于為使用者提供更好、更優的可觀測能力,相信是企業建構統一日志中心、統一可觀測平台的理想選擇。