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