01. 日志數(shù)據(jù)的起源
日志數(shù)據(jù)的起源可以追溯到計(jì)算機(jī)科學(xué)和信息技術(shù)的早期發(fā)展。隨著計(jì)算機(jī)系統(tǒng)變得越來(lái)越復(fù)雜和龐大,監(jiān)控和診斷系統(tǒng)的運(yùn)行狀態(tài)也變得越來(lái)越困難,于是工程師們意識(shí)到需要一種記錄和存儲(chǔ)系統(tǒng)事件和信息的機(jī)制,讓計(jì)算機(jī)“說(shuō)人話”,主動(dòng)表達(dá)自己發(fā)生了哪些變化,運(yùn)行了什么代碼,并記錄下來(lái)。這就是日志的誕生。
日志數(shù)據(jù)記錄了系統(tǒng)或應(yīng)用程序在執(zhí)行過(guò)程中每個(gè)事件的明細(xì)詳情。當(dāng)系統(tǒng)或應(yīng)用程序啟動(dòng)時(shí),它會(huì)記錄啟動(dòng)過(guò)程中的每一個(gè)步驟,包括加載的驅(qū)動(dòng)程序、初始化的設(shè)備和運(yùn)行的服務(wù)。如果系統(tǒng)或應(yīng)用程序遇到錯(cuò)誤或異常情況,日志會(huì)記錄錯(cuò)誤消息、警告信號(hào)和異常堆棧跟蹤,幫助工程師定位問(wèn)題。
此外,日志還可以記錄用戶的活動(dòng)和行為。當(dāng)用戶與計(jì)算機(jī)系統(tǒng)進(jìn)行交互時(shí),日志會(huì)記錄用戶的請(qǐng)求、輸入和操作,以便企業(yè)追蹤用戶行為、提供個(gè)性化服務(wù)或進(jìn)行安全審計(jì)。以下為日志的簡(jiǎn)單示意圖:
02. 日志數(shù)據(jù)特點(diǎn)
日志數(shù)據(jù)和指標(biāo)數(shù)據(jù)都是運(yùn)維中非常重要的數(shù)據(jù)類型,可以幫助運(yùn)維人員監(jiān)測(cè)系統(tǒng)的穩(wěn)定性,及時(shí)發(fā)現(xiàn)和解決問(wèn)題,那么日志數(shù)據(jù)相對(duì)于指標(biāo)數(shù)據(jù)有哪些特點(diǎn)呢?日志數(shù)據(jù)通常是實(shí)時(shí)的,記錄的是事件發(fā)生的瞬間的數(shù)據(jù)情況,而指標(biāo)數(shù)據(jù)通常是定期收集的,提供的是更加量化和簡(jiǎn)潔的信息。
日志數(shù)據(jù)特點(diǎn):詳細(xì),多樣性,海量,可讀、實(shí)時(shí)
指標(biāo)數(shù)據(jù)特點(diǎn):簡(jiǎn)潔,波動(dòng)性,定期,量化、直觀
基于日志和指標(biāo)的數(shù)據(jù)特點(diǎn),當(dāng)系統(tǒng)發(fā)生故障時(shí),運(yùn)維人員通常先關(guān)注指標(biāo)數(shù)據(jù),了解故障范圍和影響面,快速恢復(fù)故障,降低對(duì)業(yè)務(wù)的影響;然后再通過(guò)日志數(shù)據(jù)定位和診斷問(wèn)題,分析故障的根本原因,徹底解決故障問(wèn)題。因此統(tǒng)一管理和應(yīng)用企業(yè)日志數(shù)據(jù)十分重要。
03. 日志規(guī)范之道:記錄何時(shí)何事
現(xiàn)在你可能會(huì)想,既然日志數(shù)據(jù)如此有用,那是不是應(yīng)該立馬行動(dòng)起來(lái),建設(shè)工具進(jìn)行日志收集和分析呢?很高興你感受到了日志數(shù)據(jù)的價(jià)值,但請(qǐng)先等等,工欲善其事,必先利其器,在建設(shè)工具之前,我們有必要先規(guī)范化日志的輸出。
如果把建設(shè)日志工具比喻成蓋房子,那么日志工具的能力相當(dāng)于房梁,日志工具的上層應(yīng)用場(chǎng)景相當(dāng)于房子的門(mén)戶,日志本身的記錄相當(dāng)于房子的基座。如果日志輸出沒(méi)有邏輯,基座搭建不穩(wěn),那么房子無(wú)論怎么裝修都是不牢固的,無(wú)法抵擋狂風(fēng)暴雨。
日志應(yīng)該記錄什么?理論上來(lái)說(shuō),日志應(yīng)該記錄一切,事無(wú)巨細(xì),這樣無(wú)論什么時(shí)間點(diǎn)程序發(fā)生了什么事件,工程師們都可以通過(guò)日志查看現(xiàn)場(chǎng)快照。但這可能會(huì)快速讓網(wǎng)絡(luò)和磁盤(pán)達(dá)到負(fù)載飽和,還可能會(huì)讓業(yè)務(wù)系統(tǒng)有潛在的性能瓶頸,因?yàn)榛ㄙM(fèi)了太多時(shí)間來(lái)記錄日志,導(dǎo)致可能比業(yè)務(wù)本身運(yùn)行的時(shí)間還多。因此,針對(duì)不同的應(yīng)用程序,日志需要記錄的信息、推薦的日志記錄頻率可能都是不一樣的。
在確定日志應(yīng)該記錄什么信息之前,不妨重新回顧一下輸出日志數(shù)據(jù)的目的:定位根本問(wèn)題,避免回答不了“為什么跑成了這個(gè)樣子”的疑問(wèn)。當(dāng)應(yīng)用程序出現(xiàn)問(wèn)題時(shí),通常你會(huì)先問(wèn)哪些問(wèn)題?在排查故障的過(guò)程中,通常你需要哪些信息進(jìn)行協(xié)助?基于目的去思考,那么需要日志記錄什么信息,答案就顯而易見(jiàn)了。
日志除了需要記錄有用信息外,還需要遵循一些規(guī)則,讓工程師們能夠看懂這個(gè)日志在描述一件什么事。在筆者看來(lái),日志輸出應(yīng)該遵循這些規(guī)則:
04. 高效管理日志的秘訣
輸出規(guī)范化的日志后,下一步就是把日志收集起來(lái)進(jìn)行管理。工程師們通常通過(guò)建設(shè)日志工具完成日志的集中收集,主流的日志工具架構(gòu)將這個(gè)過(guò)程劃分為五層去實(shí)現(xiàn),如下圖所示。
接入層:
接入層是指與應(yīng)用程序直接交互的組件,負(fù)責(zé)接收應(yīng)用程序生成的日志消息。它可以是一個(gè)Agent、API或中間件,用于捕獲應(yīng)用程序中的日志事件。
傳輸層:
傳輸層接收來(lái)自接入層的日志消息,并將其傳輸?shù)教幚韺踊虼鎯?chǔ)層。除傳輸日志數(shù)據(jù)外,通常還充當(dāng)緩沖層,支持海量數(shù)據(jù)堆積、高吞吐讀寫(xiě),提供異步解耦、削峰填谷的能力。
處理層:
處理層接收傳輸層發(fā)送的日志消息,并進(jìn)行進(jìn)一步的處理和增強(qiáng)。它可以執(zhí)行各種操作,如日志數(shù)據(jù)的過(guò)濾、解析、替換、富化等。
存儲(chǔ)層:
存儲(chǔ)層是用于保存和管理日志數(shù)據(jù)的組件。它負(fù)責(zé)接收處理層發(fā)送的日志消息,并將其持久化存儲(chǔ)。存儲(chǔ)層可以是數(shù)據(jù)庫(kù)、文件系統(tǒng)、日志管理平臺(tái)或云服務(wù)等。通常使用Elasticsearch、ClickHouse作為日志存儲(chǔ)系統(tǒng),便于查詢?nèi)罩尽?/span>
應(yīng)用層:
應(yīng)用層是日志工具的最上層,提供了用戶界面和應(yīng)用程序編程接口(API),使用戶能夠查詢和分析日志數(shù)據(jù)。它可以支持日志的監(jiān)控、告警、報(bào)表生成和可視化等功能。
通過(guò)日志工具的五層架構(gòu)實(shí)現(xiàn)日志數(shù)據(jù)的收集和管理后,深入探討日志的高效管理變得至關(guān)重要。若想實(shí)現(xiàn)日志的高效管理,需要專注于三個(gè)核心要素:統(tǒng)一、集中、合理劃分。
1)統(tǒng)一,指的是通過(guò)Agent統(tǒng)一采集各類設(shè)備的日志
當(dāng)前日志采集面臨以下挑戰(zhàn):
如果缺乏統(tǒng)一的采集能力,需要對(duì)每一種采集場(chǎng)景進(jìn)行定制化適配,那么工程師們可能會(huì)在日志接入這一步就喪失信心,企業(yè)的接入實(shí)施成本也會(huì)極高。這種折磨人的情況往往會(huì)通向兩個(gè)分支:
因此,好的日志工具應(yīng)該實(shí)現(xiàn)采集的統(tǒng)一,用一個(gè)Agent即可滿足各種采集場(chǎng)景。高效接入不同設(shè)備的日志,將時(shí)間和精力投入在更值得建設(shè)的業(yè)務(wù)場(chǎng)景上。
2)集中,指的是集中納管日志
日志分散在不同系統(tǒng)時(shí),手動(dòng)查找日志和分析問(wèn)題十分困難,工程師們可能需要橫跨應(yīng)用甚至服務(wù)器查看上萬(wàn)條日志后才能定位到關(guān)鍵日志。這個(gè)時(shí)候你發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象了嗎?明明日志的誕生是為了讓工程師們更高效地回答“why it error”,但是為了找到這條帶有“答案”的日志,工程師們需要花大量時(shí)間在成千上萬(wàn)條日志中先回答“when?where?which?”等等問(wèn)題。這么一通操作下來(lái),工程師們辛辛苦苦卻沒(méi)有提升排障效率,這顯然與設(shè)計(jì)日志的初衷不符。
那么要如何破除這個(gè)困境呢?答案是,通過(guò)建設(shè)日志工具用一個(gè)大池子將日志集中納管起來(lái)。這樣的好處是,當(dāng)發(fā)生故障時(shí),工程師們可以直接利用日志工具的界面化操作進(jìn)行日志的統(tǒng)一查詢和分析,無(wú)需花精力關(guān)注數(shù)據(jù)究竟以什么形式存儲(chǔ)在池子的哪里。
除此之外,日志工具提供的集中納管能力,還可以確保日志數(shù)據(jù)的完整性、可追溯性和可審計(jì)性,滿足監(jiān)管部門(mén)的安全審計(jì)要求。
3)合理劃分,指的是合理劃分日志在工具上的管理維度
日志數(shù)據(jù)是為業(yè)務(wù)服務(wù)的,日志的管理維度應(yīng)該根據(jù)企業(yè)的組織管理模式進(jìn)行靈活調(diào)整。日志工具通常都有其界面化的管理單位,用于輔助工程師們更好地管理日志,將有關(guān)聯(lián)的日志組織在一起。以筆者使用的日志工具為例,日志主題是日志的管理單元,采集項(xiàng)是日志的采集單元,一個(gè)日志主題可以包含多個(gè)采集項(xiàng)。這兩個(gè)單元的使用遵循以下原則:
通過(guò)為業(yè)務(wù)服務(wù)的視角劃分日志的管理維度,將使工程師們?cè)诠收吓懦龝r(shí)事半功倍。例如,支付服務(wù)發(fā)生故障了,工程師可以直接查看支付服務(wù)在故障時(shí)間點(diǎn)產(chǎn)生的日志,縮小時(shí)間和空間范圍,快速定位問(wèn)題。
05. 高價(jià)值日志與存儲(chǔ)成本平衡
完成日志的高效管理后,在這個(gè)階段,很多企業(yè)會(huì)面臨一些新的、棘手的問(wèn)題:
這些問(wèn)題導(dǎo)向的本質(zhì)其實(shí)是一樣的:高價(jià)值日志與存儲(chǔ)成本之間找不到平衡點(diǎn),企業(yè)需要為1%價(jià)值的日志付出99%的存儲(chǔ)成本和運(yùn)維成本。
那么應(yīng)該怎么平衡成本呢?我們可以一起分析一下。首先來(lái)看目前常用的日志存儲(chǔ)數(shù)據(jù)庫(kù)——Elasticsearch,官方對(duì)它的介紹是:“Elasticsearch 是分布式搜索和分析引擎,為所有類型的數(shù)據(jù)提供近乎實(shí)時(shí)的搜索和分析。”
官方給Elasticsearch的定位是一個(gè)搜索和分析引擎,工程師們利用它可以便捷快速地查看和分析日志。所以只有當(dāng)日志需要被頻繁使用時(shí),才更適合存儲(chǔ)在Elasticsearch中。如果日志使用非常低頻,只是需要被存儲(chǔ)起來(lái)以滿足安全合規(guī)審計(jì),那么更適合存儲(chǔ)在大數(shù)據(jù)存儲(chǔ)引擎里(例如HDFS),而非存儲(chǔ)在Elasticsearch,因?yàn)榇髷?shù)據(jù)存儲(chǔ)引擎相比Elasticsearch,價(jià)格更低、更易維護(hù)。
因此,日志工具為了平衡高價(jià)值日志和存儲(chǔ)成本,衍生出了日志歸檔能力。
除此之外,日志工具還會(huì)提供一些技術(shù)手段幫助企業(yè)降低存儲(chǔ)成本。
06. 嘉為鯨眼日志中心
高效管理日志數(shù)據(jù)對(duì)日志數(shù)據(jù)價(jià)值發(fā)揮至關(guān)重要,企業(yè)通常需要引入相應(yīng)的工具,構(gòu)建日志管理能力,確保日志數(shù)據(jù)發(fā)揮價(jià)值,保障業(yè)務(wù)的平穩(wěn)運(yùn)行。
嘉為藍(lán)鯨日志中心是面向企業(yè)IT研發(fā)和運(yùn)維,滿足分布式架構(gòu)下海量日志采集及存儲(chǔ)、檢索及分析的一款高性能日志產(chǎn)品,基于業(yè)界主流的全文檢索引擎,通過(guò)藍(lán)鯨專屬 Agent 提供多種場(chǎng)景化日志采集,提供快速檢索分析、輔助故障定位功能。
1)方案優(yōu)勢(shì)
采集豐富:不同終端不同格式日志統(tǒng)一采集,采集過(guò)程中支持解析、脫敏、過(guò)濾,采集簡(jiǎn)單便捷;
推廣便捷:內(nèi)置常用組件的日志解析模板和儀表盤(pán)模板,且允許用戶自建日志解析模板庫(kù),方便接入推廣;
智能高效:融合藍(lán)鯨海量數(shù)據(jù)分析底座和智能化組件,實(shí)現(xiàn)高效的日志智能聚類,智能異常檢測(cè)和告警;
聯(lián)動(dòng)流暢:和監(jiān)控告警體系打通,快捷配置日志關(guān)鍵字、日志指標(biāo)告警,無(wú)需依賴跳轉(zhuǎn);
信創(chuàng)適配:已適配多種國(guó)產(chǎn)化設(shè)備和系統(tǒng),也可完成對(duì)信創(chuàng)設(shè)備的采集。
2)客戶價(jià)值
高效排障:聯(lián)動(dòng)藍(lán)鯨基礎(chǔ)監(jiān)控告警,實(shí)現(xiàn)關(guān)鍵字、日志指標(biāo)異常檢測(cè),告警通知,明細(xì)日志下鉆,高效故障定位;
數(shù)據(jù)安全:提供完善的權(quán)限管控、數(shù)據(jù)隔離以及敏感數(shù)據(jù)能保護(hù)能力,保障數(shù)據(jù)安全,滿足數(shù)據(jù)安全管理訴求;
成本優(yōu)化:提供數(shù)據(jù)分層架構(gòu),按照冷、熱數(shù)據(jù)分層,合理降低存儲(chǔ)成本;
便捷推廣:結(jié)合藍(lán)鯨Agent能力實(shí)現(xiàn)日志采集插件一鍵部署、批量安裝、性能穩(wěn)定。
如果您想要了解更多日志管理相關(guān)內(nèi)容,或有相關(guān)建設(shè)需求,歡迎聯(lián)系我們!
ITSM運(yùn)營(yíng):?jiǎn)栴}管理持續(xù)改進(jìn)
查看詳細(xì)
智能運(yùn)維時(shí)代的PPTR:變革、融合與展望
查看詳細(xì)
ITSM運(yùn)營(yíng):變更管理持續(xù)改進(jìn)
查看詳細(xì)
AI驅(qū)動(dòng)的運(yùn)維資源體系:從數(shù)據(jù)資產(chǎn)到智能能力的全面升級(jí)
查看詳細(xì)
AI驅(qū)動(dòng)的運(yùn)維工具演進(jìn):從工具整合到智能進(jìn)化
查看詳細(xì)
數(shù)據(jù)孤島到智能中樞:一體化運(yùn)維平臺(tái)賦能日志價(jià)值升級(jí)
查看詳細(xì)
申請(qǐng)演示