前言
在數字化轉型時代,現(xiàn)代的大規(guī)模應用程序每天可以生成數以億計的日志數據。它是企業(yè)運營和管理中的寶貴資產,記錄了系統(tǒng)、應用和設備的各種活動和事件。通過分析日志數據,企業(yè)可以深入了解業(yè)務運行情況、識別潛在問題和優(yōu)化機會,提升系統(tǒng)穩(wěn)定性、安全性和性能表現(xiàn)。因此,企業(yè)構建“統(tǒng)一日志中心”的必要性是顯而易見的,它可以集中管理和分析各類日志數據,實現(xiàn)全面監(jiān)控、快速響應和深度分析,幫助企業(yè)實現(xiàn)故障排除、安全審計、性能優(yōu)化等目標,提高運營效率、降低風險,并為業(yè)務發(fā)展提供有力支持。
觀測云秉承“統(tǒng)一采集、統(tǒng)一處理、統(tǒng)一分析”的理念,構建了一套高效的觀測數據分析平臺。本文從日志采集、處理、存儲、分析的各個過程,分別觀測云如何幫助企業(yè)又快又好地建設統(tǒng)一日志中心。
觀測云日志采集能力
在采集方面,觀測云的統(tǒng)一數據采集器DataKit擁有豐富的采集模板和強大的集成擴展能力,能夠使用采集磁盤文件、容器stdout、接收遠程推送日志、sidecar方式采集日志等多種方式,以適應企業(yè)異構的IT環(huán)境和多元的日志采集需求。
觀測云對不同日志的處理方式
DataKit內置了操作系統(tǒng)日志、容器日志、MySQL & Nginx等常用數據庫和中間件的采集器,能同時采集監(jiān)控對象屬性、指標數據(Metric)、日志數據(Log),用統(tǒng)一采集的理念最大程度上減少部署在監(jiān)控對象上的agent數量。
DataKit采集器的運行管理十分方便,在K8S環(huán)境中,DataKit會以DaemonSet方式運行,確保在每個節(jié)點上都會運行一個日志采集器 Pod,從而實現(xiàn)對整個集群的日志數據全面覆蓋。無論集群中有多少個節(jié)點,都能保證每個節(jié)點的日志都被實時采集。觀測云還提供了DCA(DataKit Client Agent),它是一個用于批量管理DataKit的工具。通過DCA,用戶可以更加方便地對DataKit狀態(tài)、日志解析模板、黑名單等配置進行批量操作和維護,從而提高數據采集的效率和準確性。
對于已經使用開源agent采集日志的企業(yè)來說,通常傾向于將原有agent采集的日志轉發(fā)給新建設的統(tǒng)一日志中心。觀測云可使用Fluentd、Logstash、Kafka、API等方式來接收已采集的日志,充分保留企業(yè)過往的技術投入并減少替換成本。
觀測云日志處理能力
在日志處理過程中,觀測云內置了十余種常用數據庫&中間件的官方日志解析模板,包括Kafka、Elasticsearch、MySQL、Nginx、Redis、Tomcat、MongoDB等,方便用戶直接使用。另外還提供了數十個腳本函數,讓用戶可以按照不同的日志處理場景進行快速引用,實時進行調試。
例如,很多企業(yè)希望在日志采集時對日志中的敏感信息進行脫敏,則可以使用觀測云Pipeline中的脫敏函數對指定字段范圍做數據脫敏,即可在采集側完成脫敏處理,避免了敏感信息在互聯(lián)網傳輸帶來的合規(guī)性問題。
再如,很多企業(yè)也提到了希望能配置采集端黑名單,以減少寶貴的帶寬資源,降低中心化處理的性能開銷。在觀測云上,您可以通過drop函數(丟棄整條日志或某個字段)、sample函數(對日志進行采樣),或者是配置日志黑名單來達到上述目的。
對于模板不能適配的日志格式,觀測云也提供了多種方式讓用戶能輕松完成日志解析。首先是在Pipeline解析過程中提供了“一鍵獲取樣本”并實時調試的能力,讓用戶可以實時查看Pipeline對日志的處理是否滿足需求。同時為了降低編寫Pipeline的難度,觀測云還提供了交互式的命令行工具,幫助用戶快速選擇適合某個字段的函數。
交互式命令行工具,降低日志解析難度
此外,Pipeline還支持通過openAPI進行導出、導入,以便在集團性組織在創(chuàng)建工作空間時直接引用,快速將已經調整好的Pipeline分發(fā)給不同業(yè)務系統(tǒng),提升業(yè)務團隊的使用體驗。
值得一提的是,對于在日志采集中經常遇到的多行日志采集問題,觀測云提供了自動多行模式、自定義多行模式的方式。自動多行模式會根據特定的起始標記、結束標記、正則表達式等來進行多行日志的識別,降低用戶的使用負擔。
觀測云日志存儲能力
觀測云在面向全球用戶提供SaaS服務的過程中,需要實施處理并存儲海量的日志,如何在成本與用戶體驗間保持平衡,觀測云付出巨大努力。在過去使用elasticsearch/opensearch方案時,我們發(fā)現(xiàn)該方案存在寫入占用資源多、對無模式表支持較差、聚合查詢性能差等問題。因此觀測云在經過嚴謹的調研、開發(fā)、測試之后推出了全新架構的GuanceDB。
GuanceDB滿足了觀測云對 Schema Free 的要求,解決了數據 Schema 頻繁變化痛點;提高了數據寫入的性能,保證了數據寫入的時效性和查詢的實時性;提升了全文檢索的性能并降低查詢的資源開銷...... 總而言之,觀測云最終實現(xiàn):僅使用 Elasticsearch 的 1/3 成本、獲得 2~4 倍的性能提升,整體性價比提升了近 10 倍!
為了滿足企業(yè)對日志的長期保存需求(通常出于日志審計的考慮),同時又要兼顧存儲成本,觀測云提供了“數據轉發(fā)”功能,便于觀測云提供日志等數據保存到觀測云的對象存儲及轉發(fā)到外部存儲的功能,您可以自由選擇存儲對象,靈活管理數據轉發(fā)數據。在數據轉發(fā)頁面,您可以通過設置查詢時間和數據轉發(fā)規(guī)則快速查詢存儲數據(包含觀測云備份日志、AWS S3、華為云 OBS、阿里云 OSS 和 Kafka 消息隊列),還可以在無需額外處理的情況下,直接在觀測云上查看歷史備份日志和 SLS Query Logstore 數據。
觀測云日志分析能力
DQL(Debug Query Language)是觀測云開發(fā)的數據查詢語言。DQL支持在觀測云工作空間或者終端設備進行數據查詢,允許用戶檢索和分析存儲在觀測云中的各種數據,包括日志、指標、鏈路追蹤等。
得益于DQL統(tǒng)一查詢語言和統(tǒng)一風格的“查看器”,用戶在觀測云上無論是分析日志、鏈路、RUM(用戶體驗數據)時都有一致性的體驗,同樣的簡單易用、同樣的秒級查詢體驗。
常用搜索歷史模板、快捷篩選、字段補全等功能,在觀測云上都一應俱全。考慮到團隊在排查故障、分析異常過程中經常會有數據共享的需求,觀測云設計了貼心的“快照分享”,團隊成員可以創(chuàng)建自定義時間段即時拷貝的數據副本,并生成指定查看權限的快捷訪問鏈接。團隊可以通過一個瀏覽器鏈接分享日志數據,并且可以保留分享者在日志上做過的時間篩選、條件篩選,該快照也并非是單一的靜態(tài)數據,而是可以交互的日志分析界面,大大降低了團隊間使用截圖、發(fā)送原始日志的溝通成本。出于對數據安全性的考慮,分享者可以對快照設置字段脫敏、添加水印、設置有效時間、鏈接加密、訪問IP白名單等多種特性,在信息高效傳遞的同時充分保證數據的安全性,便于團隊間、外部企業(yè)進行協(xié)作。
對于很多企業(yè)來說,特別擔心采集的日志中存在敏感數據,但在日志的采集、存儲、分析過程中極其難以發(fā)現(xiàn)。為了解決這個問題,觀測云開發(fā)了“敏感數據掃描”功能,內置了近百個敏感數據規(guī)則庫,并允許用戶自定義新建敏感數據規(guī)則,通過引用這些規(guī)則來對存儲在觀測云中的日志數據進行主動掃描,一旦發(fā)現(xiàn)敏感字段即可進行加密,確保數據合規(guī)性。
此外,觀測云還支持通過“數據訪問”功能為不同角色配置對應的日志數據訪問查詢范圍,以實現(xiàn)數據查詢范圍的精細化管理。例如負責不同業(yè)務系統(tǒng)的團隊、同一團隊中根據角色區(qū)分不同的日志權限,都可以靈活進行配置。
在“日志智能檢測”功能中,觀測云運用智能檢測算法,監(jiān)控工作空間內采集器產生的日志數據。智能識別日志數量的突增 / 突降、錯誤日志的突增的異常數據,及時發(fā)現(xiàn)不符合預期的異常狀態(tài),及時提醒團隊關注業(yè)務是否有異常表現(xiàn)。
日志突增的智能檢測
總結
當企業(yè)考慮構建統(tǒng)一日志中心時,通常需要考慮功能需求、可擴展性、安全性、兼容性、性能和效率、成本效益與用戶體驗。相信經過上面的介紹,您對觀測云的日志分析能力擁有了比較全面的認識。觀測云一直致力于為用戶提供更好、更優(yōu)的可觀測能力,相信是企業(yè)構建統(tǒng)一日志中心、統(tǒng)一可觀測平臺的理想選擇。