版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有1@2023
云安全聯(lián)盟大中華區(qū)-保留所有權(quán)利。你可以在你的電腦上下載.儲(chǔ)存.展示.查看及打印,或者訪問(wèn)云安全聯(lián)盟大中華區(qū)官網(wǎng)()。須遵守以下:(a)本文只可作個(gè)人.信息獲取.非商業(yè)用途;(b)
本文內(nèi)容不得篡改;(c)本文不得轉(zhuǎn)發(fā);(d)該商標(biāo).版權(quán)或其他聲明不得刪除。在遵循
中華人民共和國(guó)著作權(quán)法相關(guān)條款情況下合理使用本文內(nèi)容,使用時(shí)請(qǐng)注明引用于云安全聯(lián)盟大中華區(qū)。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有2?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有3致謝《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》由CSA大中華區(qū)云原生安全工作組內(nèi)企業(yè)云原生可觀測(cè)性白皮書(shū)項(xiàng)目組專家撰寫(xiě),感謝以下專家的貢獻(xiàn):項(xiàng)目組組長(zhǎng):王亮主要貢獻(xiàn)者:高巍陳
磊劉
剛浦
明李卓嘉鄭
偉謝奕智申屠鵬會(huì)楊文宏研究協(xié)調(diào)員:羅智杰閉俊林貢獻(xiàn)單位:北京沃東天駿信息技術(shù)有限公司北京神州綠盟科技有限公司天翼云科技有限公司安易科技(北京)有限公司中國(guó)工商銀行股份有限公司(以上排名不分先后)關(guān)于研究工作組的更多介紹,請(qǐng)?jiān)?/p>
CSA
大中華區(qū)官網(wǎng)(https://c-
/research/)上查看。在此感謝以上專家及單位。如此文有不妥當(dāng)之處,敬請(qǐng)讀者聯(lián)系
CSA
GCR
秘書(shū)處給與雅正!
聯(lián)系郵箱
research@;國(guó)際云安全聯(lián)盟
CSA
公眾號(hào)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有4序言2018
年,可觀測(cè)性(Observability)被引入
IT
領(lǐng)域,CNCF-Landscape
率先出現(xiàn)了
Observability
的分組。自此以后,“可觀測(cè)性”逐漸取代“監(jiān)控”,成為云原生技術(shù)領(lǐng)域最熱門(mén)的話題之一。Gartner
發(fā)布的《2023
年十大戰(zhàn)略技術(shù)趨勢(shì)》中,提到了可觀測(cè)性的發(fā)展趨勢(shì)解讀。文中談到:“可觀測(cè)性應(yīng)用使企業(yè)機(jī)構(gòu)能夠利用他們的數(shù)據(jù)特征來(lái)獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。它能夠在正確的時(shí)間提高正確數(shù)據(jù)的戰(zhàn)略重要性,以便根據(jù)明確的數(shù)據(jù)分析結(jié)果采取快速行動(dòng)。可觀測(cè)性是一種強(qiáng)大的工具。如果能夠在戰(zhàn)略中予以規(guī)劃并成功執(zhí)行??捎^測(cè)性應(yīng)用將成為數(shù)據(jù)驅(qū)動(dòng)型決策能力建設(shè)的最強(qiáng)支撐?!北景灼?shū)介紹了可觀測(cè)性在云原生場(chǎng)景的架構(gòu)設(shè)計(jì),闡述在云原生場(chǎng)景使用
eBPF技術(shù)完成可觀測(cè)性數(shù)據(jù)采集的技術(shù)實(shí)現(xiàn)及優(yōu)勢(shì)。云原生可觀測(cè)性的應(yīng)用場(chǎng)景涵蓋了事件根因分析、安全溯源分析等主要內(nèi)容,旨在闡述云原生可觀測(cè)性的生產(chǎn)實(shí)踐。云原生場(chǎng)景業(yè)務(wù)彈性變化節(jié)奏加快、工作負(fù)載生命周期縮短、工作負(fù)載直接的訪問(wèn)關(guān)系更加復(fù)雜。在輕量、多變、短生命周期的云原生環(huán)境獲得足夠多的數(shù)據(jù),得以對(duì)事件根因進(jìn)行分析,對(duì)入侵行為進(jìn)行溯源,對(duì)未知威脅進(jìn)行預(yù)測(cè),是將可觀測(cè)性能力運(yùn)用至云原生安全領(lǐng)域后帶來(lái)的安全能力提升。這也是可觀測(cè)性對(duì)云原生場(chǎng)景安全的價(jià)值體現(xiàn)。希望通過(guò)本白皮書(shū)為讀者深入淺出的介紹云原生可觀測(cè)性及云原生可觀測(cè)性對(duì)安全能力的賦能。使得廣大云原生基礎(chǔ)設(shè)施運(yùn)維者、云原生業(yè)務(wù)使用者能夠借鑒本文的評(píng)估自身系統(tǒng)云原生可觀測(cè)性的成熟度及發(fā)展戰(zhàn)略。李雨航
Yale
LiCSA
大中華區(qū)主席兼研究院院長(zhǎng)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有5目錄致謝...............................................................................................................................
4序言...............................................................................................................................
51.可觀測(cè)性概述............................................................................................................
81.1
云原生可觀測(cè)性發(fā)展.............................................................................................
81.2
可觀測(cè)性定義.........................................................................................................
92.云原生可觀測(cè)性成熟度..........................................................................................
102.1
監(jiān)控.......................................................................................................................
112.2
基礎(chǔ)可觀測(cè)性.......................................................................................................
112.3
因果可觀測(cè)性.......................................................................................................
142.4
主動(dòng)可觀測(cè)性.......................................................................................................
183.云原生觀測(cè)體系能力構(gòu)建......................................................................................
213.1
云原生可觀測(cè)性信號(hào)...........................................................................................
213.2
云原生可觀測(cè)能力構(gòu)建......................................................................................
283.3
核心能力-基于
eBPF
構(gòu)建云原生數(shù)據(jù)采集技術(shù)................................................334.云原生可觀測(cè)性應(yīng)用場(chǎng)景......................................................................................
404.1
故障分析...............................................................................................................
404.2
事件預(yù)測(cè)...............................................................................................................
404.3
日志審計(jì)...............................................................................................................
414.3
監(jiān)控......................................................................................................................
474.4
微服務(wù)追蹤..........................................................................................................
50?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有64.5
安全檢測(cè)分析.......................................................................................................
535.優(yōu)秀云原生可觀測(cè)項(xiàng)目介紹..................................................................................
565.1
Prometheus
項(xiàng)目..................................................................................................565.2
OpenTelemetry
項(xiàng)目.............................................................................................
595.3
SkyWalking
項(xiàng)目....................................................................................................63附件.引用文獻(xiàn)............................................................................................................
67?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有71.可觀測(cè)性概述1.1
云原生可觀測(cè)性發(fā)展CNCF
云原生定義對(duì)云生技術(shù)描述為:在現(xiàn)代動(dòng)態(tài)環(huán)境(如公有云、私有云和混合云)中構(gòu)建和運(yùn)行可擴(kuò)展的應(yīng)用程序的能力。容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明性
API
均是基于云原生技術(shù)的特征。采用云原生技術(shù)使松散耦合的系統(tǒng)具有彈性、可管理和可觀察性。結(jié)合強(qiáng)大的自動(dòng)化功能,能夠以最少的工作量頻繁且可預(yù)測(cè)地進(jìn)行高影響力的更改。Pivotal
公司
Matt
Stine
在
2013
年首次提出云原生概念。2017
年
Matt
Stine將原生特征歸納為六大點(diǎn),分別是:
模塊化
Modularity
可觀測(cè)性
Observability
可部署性
Deployability
可測(cè)試性
Testability
可處理性
Disposability
可替換性
Replaceability?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有8作為六大特征之一的可觀測(cè)性是保證云原生應(yīng)用穩(wěn)定性的基礎(chǔ)。在云原生時(shí)代,應(yīng)用規(guī)模不斷擴(kuò)大,復(fù)雜度愈來(lái)愈高,而其中潛藏的問(wèn)題和風(fēng)險(xiǎn)也隨之增多。這對(duì)支撐平臺(tái)及業(yè)務(wù)自身的穩(wěn)定性提出更高要求。能夠支撐業(yè)務(wù)的快速迭代、故障快速響應(yīng)能力、適應(yīng)復(fù)雜的微服務(wù)拓?fù)?、保證高效運(yùn)維。在數(shù)字化大趨勢(shì)下,云計(jì)算成為企業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵。以云上開(kāi)發(fā)為核心的云原生技術(shù)得到了廣泛的使用。云原生在企業(yè)上云和基礎(chǔ)實(shí)施架構(gòu)上的大量應(yīng)用,也對(duì)企業(yè)的運(yùn)維監(jiān)控安全提出了新的挑戰(zhàn)。分布式、解耦合的新型系統(tǒng)架構(gòu),服務(wù)調(diào)用鏈長(zhǎng)、系統(tǒng)行為復(fù)雜、軟件系統(tǒng)穩(wěn)定性保障困難,解決以上問(wèn)題需要采用新的方式對(duì)系統(tǒng)進(jìn)行觀測(cè)。1.2
可觀測(cè)性定義在控制理論中,“可觀測(cè)性是從系統(tǒng)外部輸出的數(shù)據(jù)衡量系統(tǒng)內(nèi)部狀態(tài)的程度”??捎^測(cè)性是人類對(duì)機(jī)器可以觀察、理解和處理所述系統(tǒng)狀態(tài)的功能??捎^測(cè)性是在沒(méi)有考慮目標(biāo)的情況下決定系統(tǒng)在實(shí)現(xiàn)時(shí)應(yīng)該具有哪些輸出。在
IT
領(lǐng)域,可觀測(cè)性是在日志與監(jiān)控指標(biāo)組成的傳統(tǒng)監(jiān)控基礎(chǔ)上,依據(jù)由日志、指標(biāo)、鏈路追蹤三種核心數(shù)據(jù)來(lái)洞悉系統(tǒng)運(yùn)行狀態(tài)。通過(guò)統(tǒng)一的鏈路追蹤洞察系統(tǒng)服務(wù)調(diào)用鏈,并與日志、指標(biāo)數(shù)據(jù)聯(lián)動(dòng)分析,可實(shí)現(xiàn)對(duì)云原生系統(tǒng)的高效故障定位與故障解決,保障云原生系統(tǒng)穩(wěn)定性。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有9可觀測(cè)性具有三個(gè)方面的特征,首先是度量能力,可觀測(cè)性的度量能力能夠幫助使用者在系統(tǒng)處于非常極端復(fù)雜的場(chǎng)景時(shí),也能理解和解釋系統(tǒng)當(dāng)前的狀態(tài)。其次是探索分析,可觀測(cè)性不應(yīng)該預(yù)定調(diào)試/排查模式和路徑,而應(yīng)該能夠自由地對(duì)所有采集到的各類狀態(tài)數(shù)據(jù)在各種維度和組合之間進(jìn)行關(guān)聯(lián)分析,不斷探索分析出新的關(guān)聯(lián)性。最后是按需改變,可觀測(cè)性最好是在不改變?cè)写a的情況下,按需進(jìn)行埋點(diǎn)。2.云原生可觀測(cè)性成熟度研究可觀測(cè)性成熟度模型的目標(biāo)是提供一種可衡量、可復(fù)制的理論基礎(chǔ)用以評(píng)估、改進(jìn)可觀測(cè)性體系能力。遵循
PDCA
模型通過(guò)對(duì)可觀測(cè)性能力持續(xù)改進(jìn),提高對(duì)云原生系統(tǒng)的感知能力,縮短運(yùn)維過(guò)程中尋找根因、排除故障的時(shí)間。衡量和評(píng)估云原生系統(tǒng)可觀測(cè)性的成熟度模型,可定義為如下四個(gè)級(jí)別:Level
1
——
監(jiān)控(Monitoring)Level
2
——
基
礎(chǔ)
可
觀
測(cè)
性
(Basic
Observability)Level
3
——
因
果
可
觀
測(cè)
性
(Causal
Observability)Level
4
——
主動(dòng)可觀測(cè)性(Proactive
Observability)可觀測(cè)性成熟度模型的每個(gè)級(jí)別,建立在前一級(jí)別已實(shí)現(xiàn)的基礎(chǔ)上。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有102.1
監(jiān)控2.1.1
目標(biāo):確定系統(tǒng)組件是否按預(yù)期正常工作可觀測(cè)性成熟度模型中,監(jiān)控是第一個(gè)階段。此階段對(duì)資產(chǎn)、進(jìn)程、資源使用等數(shù)據(jù)持續(xù)采樣、度量和記錄,獲取實(shí)時(shí)或定期的信息和數(shù)據(jù)。跟蹤單個(gè)系統(tǒng)組件的特定參數(shù),度量系統(tǒng)組件狀態(tài)。系統(tǒng)組件運(yùn)行狀態(tài)如超出預(yù)設(shè)范圍,觸發(fā)警報(bào)、狀態(tài)更改、通知。監(jiān)控級(jí)的目標(biāo)之一是設(shè)置實(shí)時(shí)警報(bào),在系統(tǒng)出現(xiàn)問(wèn)題或達(dá)到預(yù)定閾值時(shí)能夠及時(shí)報(bào)警。2.1.2
能力在
Level1
階段,被監(jiān)控的系統(tǒng)各組件之間無(wú)相關(guān)性,此級(jí)別主要目標(biāo)是了解系統(tǒng)組件是否正常工作。監(jiān)控級(jí)會(huì)開(kāi)始對(duì)基本的性能數(shù)據(jù)進(jìn)行采集,以確保系統(tǒng)在負(fù)載情況下不會(huì)受到顯著影響。監(jiān)控級(jí)的主要目標(biāo)是建立起最基本的監(jiān)控能力,以確保系統(tǒng)的基本穩(wěn)定性和可用性。關(guān)鍵功能:系統(tǒng)輸入:事件和組件級(jí)指標(biāo)系統(tǒng)輸出:報(bào)警、日志價(jià)值:獲得基本信息,系統(tǒng)組件的健康狀態(tài)出現(xiàn)問(wèn)題時(shí)的警報(bào)和通知2.2
基礎(chǔ)可觀測(cè)性?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有112.2.1
目標(biāo):確定系統(tǒng)故障可觀測(cè)性通常指基于對(duì)復(fù)雜系統(tǒng)外部輸出的了解,能夠了解其內(nèi)部狀態(tài)或狀況的程度。系統(tǒng)越可觀測(cè),定位問(wèn)題根本原因的過(guò)程就越快速越準(zhǔn)確,而無(wú)需進(jìn)行額外的測(cè)試或編碼。為保證復(fù)雜動(dòng)態(tài)的系統(tǒng)可靠運(yùn)行,需要知道系統(tǒng)組件是否正常運(yùn)行,還需要了解它為什么不運(yùn)行。當(dāng)出現(xiàn)問(wèn)題時(shí),希望遵循“5W1H”的原則了解問(wèn)題詳情:who、when、where、what、why、how。Level1
監(jiān)控措施基于預(yù)置規(guī)則實(shí)現(xiàn)告警、通知。預(yù)置規(guī)則依賴于一個(gè)關(guān)鍵性的假設(shè),即能夠在問(wèn)題發(fā)生之前預(yù)測(cè)將會(huì)遇到的問(wèn)題類型。這種方法不能覆蓋足夠多的場(chǎng)景,無(wú)法回答
5W1H
的問(wèn)題。云原生環(huán)境是動(dòng)態(tài)的、復(fù)雜的、多變的,無(wú)法事先預(yù)知可能會(huì)出現(xiàn)什么樣的問(wèn)題。因此云原生應(yīng)用下的可觀測(cè)性方案,應(yīng)可以根據(jù)更完整、更深入的可觀測(cè)性數(shù)據(jù),實(shí)時(shí)感知事件,并提供定位可能無(wú)法預(yù)料的問(wèn)題根因的能力。可觀測(cè)性成熟度
Level
2
相較于
Level
1
的數(shù)據(jù)具有更大的廣度和深度。可觀測(cè)性系統(tǒng)主要關(guān)注三種關(guān)鍵類型的數(shù)據(jù)來(lái)提供系統(tǒng)洞察力:指標(biāo)、日志和跟蹤??捎^測(cè)性的這三大支柱是從微服務(wù)、應(yīng)用程序、數(shù)據(jù)庫(kù)、云原生基礎(chǔ)設(shè)施中收集的,旨在提供對(duì)系統(tǒng)行為的更為完整的視圖。每種數(shù)據(jù)提供不同類型的信息:?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有12
指標(biāo):了解服務(wù)性能和狀態(tài)的數(shù)值測(cè)量--四個(gè)黃金信號(hào):延遲、流量、錯(cuò)誤率和飽和度。
日志:了解系統(tǒng)在給定時(shí)間點(diǎn)的行為--統(tǒng)中發(fā)生的相關(guān)事件(例如事務(wù)、警告、錯(cuò)誤)的時(shí)間戳記記錄
追蹤:解決性能問(wèn)題--顯示數(shù)據(jù)如何從端到端流經(jīng)應(yīng)用程序的詳細(xì)快照(例如,用戶請(qǐng)求)可觀測(cè)性強(qiáng)調(diào)數(shù)據(jù)的統(tǒng)一性,通過(guò)構(gòu)建統(tǒng)一的平臺(tái)來(lái)實(shí)現(xiàn)指標(biāo)、日志和跟蹤數(shù)據(jù)的匯聚與處理,突破單點(diǎn)工具的能力限制。建設(shè)統(tǒng)一數(shù)據(jù)平臺(tái)可將各種可觀測(cè)性工具整合在一個(gè)集中的界面,提高管理和維護(hù)系統(tǒng)的效率。通過(guò)手工關(guān)聯(lián)數(shù)據(jù)來(lái)推斷事件的可疑原因,需要跨系統(tǒng)手動(dòng)查詢。在
Level
2中,尚未涉及自動(dòng)化方法來(lái)統(tǒng)一和關(guān)聯(lián)來(lái)自各種工具匯聚的孤立數(shù)據(jù),準(zhǔn)確定位問(wèn)題的根本原需要大量的人力投入。2.2.2
能力Level2
階段,理解可觀測(cè)性數(shù)據(jù)之間的關(guān)系,將上下文數(shù)據(jù)結(jié)合。關(guān)鍵功能:系統(tǒng)輸入:Level1+鏈路、指標(biāo)、日志系統(tǒng)輸出:Level1+圖標(biāo)、日志可視化綜合儀表盤(pán)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有13價(jià)值:通過(guò)從更多來(lái)源收集數(shù)據(jù),更深入、廣泛、全面地了解整個(gè)系統(tǒng)健康狀況,更好地支持問(wèn)題診斷除已知故障類型外,還能夠發(fā)現(xiàn)未知故障模式從各種類型的數(shù)據(jù)中獲得有益的洞察力--例如,跟蹤有助于識(shí)別性能瓶頸,指標(biāo)可提供出色的
KPI,日志可用于查找軟件缺陷。2.3
因果可觀測(cè)性2.3.1
目標(biāo):確定問(wèn)題根本原因影響面及規(guī)避方法可觀測(cè)性的核心價(jià)值在于提高排查問(wèn)題的效率??捎^測(cè)性工具通過(guò)分析數(shù)據(jù),定位問(wèn)題,進(jìn)一步確認(rèn)問(wèn)題的根本性原因(Root
Cause)??捎^測(cè)性體系用于因果判斷,可以更深入全面地理解系統(tǒng)的運(yùn)行和行為,得出系統(tǒng)中事件之間的因果關(guān)系。通過(guò)對(duì)因果關(guān)系分析理解,找出引發(fā)問(wèn)題的根本性原因。具備因果分析能力的可觀測(cè)性體系可定義為“因果可觀測(cè)性(Causal
Observability)”。具備因果分析能力的可觀測(cè)性體系,通過(guò)收集、分析和解析足夠多維度的數(shù)據(jù),達(dá)到理解系統(tǒng)內(nèi)事件、狀態(tài)變化之間的關(guān)系,從而更深入地洞察系統(tǒng)運(yùn)行狀態(tài)。因果可觀測(cè)性強(qiáng)調(diào)在數(shù)據(jù)分析中尋找因果關(guān)系,并將這些關(guān)系轉(zhuǎn)化為對(duì)系統(tǒng)事件之間關(guān)系的可視化呈現(xiàn)。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有14因果可觀測(cè)性與基礎(chǔ)觀測(cè)性有所不同,Level2
強(qiáng)調(diào)數(shù)據(jù),Level3
強(qiáng)調(diào)關(guān)系。Level2
基礎(chǔ)可觀測(cè)性關(guān)注收集、分析數(shù)據(jù)以理解系統(tǒng)的狀態(tài)和行為,Level3
因果可觀測(cè)性強(qiáng)調(diào)數(shù)據(jù)與數(shù)據(jù)、實(shí)體與實(shí)體、事件與事件或更多維度數(shù)據(jù)之間的聯(lián)系。構(gòu)建因果可觀測(cè)性,涉及數(shù)據(jù)收集、關(guān)系收集、數(shù)據(jù)處理、關(guān)系處理、因果推斷等步驟,以揭示事件發(fā)生的因果過(guò)程。面對(duì)復(fù)雜性、不確定性和變化性的云原生應(yīng)用場(chǎng)景,對(duì)事件因果的理解有助于更好地預(yù)測(cè)、解釋、優(yōu)化和管理系統(tǒng)。調(diào)查故障根因時(shí),需收集事件發(fā)生的時(shí)間、空間、參數(shù)變化等數(shù)據(jù),從而了解導(dǎo)致問(wèn)題出現(xiàn)、傳播,以及隨著時(shí)間的推移而變化的事件狀態(tài)。解決這些問(wèn)題,需要引入新的能力:網(wǎng)絡(luò)數(shù)據(jù)、拓?fù)鋽?shù)據(jù)、時(shí)間、空間地圖、自動(dòng)化關(guān)聯(lián)技術(shù)。這些能力可以更全面地理解系統(tǒng)運(yùn)行狀態(tài),定位問(wèn)題的根本原因。為了建立因果可觀測(cè)性,需要補(bǔ)充兩種類型的數(shù)據(jù)要素:拓?fù)洹r(shí)間。拓?fù)鋾r(shí)間系統(tǒng)中各實(shí)體對(duì)象相互之間的連接關(guān)系(例如根據(jù)鏈路相關(guān)數(shù)據(jù)繪制的服務(wù)拓?fù)洌┏掷m(xù)抓取觀測(cè)數(shù)據(jù)的時(shí)間維度表
1
兩種類型數(shù)據(jù)要素拓?fù)涫且蚬捎^測(cè)性的第一個(gè)必要維度。
拓?fù)涫?/p>
IT
環(huán)境中所有組件的映射,它跨越所有層,從網(wǎng)絡(luò)到應(yīng)用程序再到存儲(chǔ),顯示一切是如何相關(guān)的。
拓?fù)浣Y(jié)合了組件之間的邏輯依賴性、物理接近性和其他關(guān)系,以提供人類可讀的可視化和可操作的關(guān)系數(shù)據(jù)。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有15拓?fù)湫畔ⅲ═opology)指的是系統(tǒng)中各主機(jī)、進(jìn)程、容器、API、Service
之間的關(guān)系和連接方式。拓?fù)涞膬r(jià)值在于提供系統(tǒng)的高級(jí)視圖,幫助運(yùn)維者理解不同實(shí)體之間的依賴關(guān)系、通信路徑和層次結(jié)構(gòu)。通過(guò)拓?fù)湫畔?,能夠更全面清晰地了解系統(tǒng)結(jié)構(gòu)。拓?fù)湫畔⒃诳捎^測(cè)性數(shù)據(jù)中扮演著一種定位和上下文的角色,輔助理解數(shù)據(jù)所涉及的組件、服務(wù)、資源以及它們之間的關(guān)系。拓?fù)湫畔⑹且粋€(gè)系統(tǒng)的結(jié)構(gòu)圖,展示了系統(tǒng)內(nèi)部各個(gè)元素之間的連接和依賴關(guān)系。這種結(jié)構(gòu)圖可以是物理上的(如網(wǎng)絡(luò)拓?fù)?、主機(jī)之間的連接),也可以是邏輯上的(如服務(wù)之間的依賴關(guān)系、數(shù)據(jù)流動(dòng)路徑)。將信息點(diǎn)連接至系統(tǒng)元素,使得每個(gè)維度的數(shù)據(jù)不是孤立的點(diǎn)。時(shí)間是因果可觀測(cè)性的第二個(gè)必要維度。在充滿微服務(wù)、云資源和容器不斷變化的動(dòng)態(tài)環(huán)境中,拓?fù)湫畔⒌淖兓欠浅Q杆俚摹O到y(tǒng)狀態(tài)可能在問(wèn)題多次出現(xiàn)的過(guò)程中發(fā)生變化。為了確立因果可觀測(cè)性,需要引入一個(gè)至關(guān)重要的維度:時(shí)間。為了深入了解現(xiàn)代
IT
環(huán)境的動(dòng)態(tài)行為并獲取實(shí)現(xiàn)因果可觀測(cè)性所需的上下文。隨著時(shí)間的推移,捕獲拓?fù)湫畔⒌淖兓?,并將其與可觀測(cè)性數(shù)據(jù)進(jìn)行關(guān)聯(lián),以跟蹤整個(gè)堆棧的變化。當(dāng)出現(xiàn)問(wèn)題時(shí),可以回溯到問(wèn)題開(kāi)始的確切時(shí)間點(diǎn),并查看是什么變化導(dǎo)致了這個(gè)問(wèn)題。通過(guò)這種時(shí)間維度的關(guān)聯(lián),能夠更準(zhǔn)確地定位問(wèn)題的根本原因,實(shí)現(xiàn)對(duì)問(wèn)題的全面分析和解決。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有16空間地圖是拓?fù)涞纳S,提供
IT
環(huán)境中所有元素的關(guān)系映射,空間地圖是一張三維的元素連接拓?fù)洌w水平的實(shí)體關(guān)系拓?fù)?,垂直的依賴關(guān)系拓?fù)洹?臻g地圖結(jié)合了組件之間的邏輯依賴性、物理鄰近性和其他關(guān)系,以提供可讀的可視化和可操作的關(guān)系數(shù)據(jù)。
水平拓?fù)洌涸谙嗤愋偷脑刂g建立的連接關(guān)系地圖,如進(jìn)程到進(jìn)程、服務(wù)到服務(wù)、主機(jī)到主機(jī)
垂直拓?fù)洌涸诓煌愋偷脑刂g建立的連接關(guān)系地圖,如數(shù)據(jù)中心到主機(jī)、主機(jī)到進(jìn)程、進(jìn)程到服務(wù)、服務(wù)到應(yīng)用程序通過(guò)技術(shù)實(shí)現(xiàn)水平層、垂直層的空間地圖,自動(dòng)化、實(shí)時(shí)性的繪制,將可觀測(cè)性數(shù)據(jù)與空間地圖的實(shí)體關(guān)聯(lián),拉動(dòng)時(shí)間軸,展示隨時(shí)間變化的空間拓?fù)?、關(guān)聯(lián)數(shù)據(jù),能夠比較變化前后的系統(tǒng)狀態(tài),是可觀測(cè)性能力的集中式成果體現(xiàn)。2.3.2
能力拓?fù)淇梢詷O大地提高因果判定的準(zhǔn)確性和有效性,Level
3
對(duì)空間地圖的引入是重大的進(jìn)步。關(guān)鍵功能:通過(guò)拓?fù)錇橹笜?biāo)、鏈路、流量、日志提供上下文,隨事件推移關(guān)聯(lián)相關(guān)數(shù)據(jù),追蹤變化;系統(tǒng)輸入:Level1+Level2+網(wǎng)絡(luò)+拓?fù)?時(shí)間?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有17系統(tǒng)輸出:Level1+Level2+空間拓?fù)?數(shù)據(jù)關(guān)聯(lián)+時(shí)序變化價(jià)值:通過(guò)統(tǒng)一時(shí)間序列拓?fù)渲械墓铝?shù)據(jù),獲得統(tǒng)一、清晰、相關(guān)的環(huán)境狀態(tài)上下文視圖通過(guò)拓?fù)淇梢暬头治隽私庖蚬P(guān)系,顯著加快根本原因識(shí)別和解決時(shí)間基本自動(dòng)化調(diào)查的基礎(chǔ),例如根本原因分析、業(yè)務(wù)影響分析和警報(bào)關(guān)聯(lián)自動(dòng)將與同一根本原因相關(guān)的警報(bào)集中在一起,從而減少噪音和干擾所需的上下文2.4
主動(dòng)可觀測(cè)性2.4.1
目標(biāo):自動(dòng)輸出問(wèn)題根因、自動(dòng)化響應(yīng),智能預(yù)測(cè)、主動(dòng)預(yù)防Level
4
主動(dòng)可觀測(cè)性,典型特征是引入“AIOps”技術(shù),通過(guò)自動(dòng)化和智能化的方法實(shí)現(xiàn)更深入更準(zhǔn)確的洞察力,將傳統(tǒng)的被動(dòng)式運(yùn)維轉(zhuǎn)變?yōu)橹鲃?dòng)式運(yùn)維。將人工智能(AI)
和機(jī)器學(xué)習(xí)(ML)
技術(shù)融入到可觀測(cè)性體系中。在這一階段中,更加強(qiáng)調(diào)分析結(jié)果和答案,而不僅僅關(guān)注原始數(shù)據(jù)和分析過(guò)程。主動(dòng)可觀測(cè)性將分析結(jié)果呈現(xiàn)給用戶,并輔助決策和采取行動(dòng)。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有18Level4
主動(dòng)可觀測(cè)性建立在該成熟度模型中因果可觀測(cè)級(jí)別的核心功能之上。Level4
階段添加了模式識(shí)別、異常檢測(cè)和更準(zhǔn)確的問(wèn)題修復(fù)建議。
對(duì)于主動(dòng)可觀測(cè)性而言,因果可觀測(cè)性是一個(gè)必要的基礎(chǔ):時(shí)間序列拓?fù)涮峁┝艘粋€(gè)必要的框架。數(shù)據(jù)是原材料,原材料經(jīng)過(guò)分析之后得出的答案??焖俚陌迅哔|(zhì)量結(jié)果和答案?jìng)鬟_(dá)出來(lái),快速做出決策、采取行動(dòng),是主動(dòng)可觀測(cè)性需要重點(diǎn)考慮的問(wèn)題。任何一套可觀測(cè)性解決方案或建設(shè)可觀測(cè)性體系之前,都應(yīng)解決三個(gè)最本質(zhì)的問(wèn)題:
通知:在問(wèn)題出現(xiàn)并造成影響前后,能夠在多快的時(shí)間內(nèi)得到通知?
診斷:能迅速地對(duì)問(wèn)題進(jìn)行分類,了解影響?
理解:如何找到潛在的原因以快速解決問(wèn)題?AIOps
利用因果關(guān)系,使用基于拓?fù)潋?qū)動(dòng)的漸進(jìn)式故障樹(shù)分析算法。AIOps具備強(qiáng)大的拓?fù)淅L制能力,實(shí)時(shí)獲得基礎(chǔ)架構(gòu)、流程和服務(wù)依賴關(guān)系的可視化關(guān)系,更好地理解系統(tǒng)的運(yùn)行情況和交互關(guān)系。AIOps
依托拓?fù)涞貓D、云原生系統(tǒng)產(chǎn)生的數(shù)據(jù)進(jìn)行分析,能顯示一個(gè)事件在垂直和水平方向的拓?fù)湟蕾囮P(guān)系,能夠自動(dòng)確定異常問(wèn)題的根源。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有19在
Level
4
階段,目標(biāo)是關(guān)注更高效且無(wú)事故的
IT
運(yùn)維。可觀測(cè)系統(tǒng)基于AI/
ML
算法模型,感知服務(wù)或組件偏離正常行為的趨勢(shì),并在出現(xiàn)故障之前采取措施規(guī)避問(wèn)題。對(duì)未發(fā)生事件的預(yù)測(cè)能力是
Level4
階段可觀測(cè)系統(tǒng)的典型特征。2.4.2
能力Level
4,目前是
IT
技術(shù)領(lǐng)域中最高的可觀測(cè)性成熟度級(jí)別。需要拓?fù)浜蜁r(shí)間提供的額外上下文,準(zhǔn)確評(píng)估根本原因、確定業(yè)務(wù)影響、檢測(cè)異常并主動(dòng)確定何時(shí)提醒
SRE
和
DevOps
團(tuán)隊(duì)。關(guān)鍵功能:系統(tǒng)輸入:Level1+Level2+Level3
+
大數(shù)據(jù)分析/ML
模型系統(tǒng)輸出:Level1+Level2+Level3+空間拓?fù)?自動(dòng)化
RCA+預(yù)測(cè)價(jià)值:自動(dòng)根因定位、自動(dòng)化
RCA、告警降噪、預(yù)測(cè)異常;借用
Gartner?
2022
年
3
月“Innovation
Insight
for
Observability”文章中的一段話作為本章總結(jié):“發(fā)現(xiàn)異常很容易,因?yàn)樗鼈円恢倍荚诎l(fā)生。
當(dāng)每天收集十億個(gè)事件時(shí),每?jī)煞昼娋蜁?huì)發(fā)生一百萬(wàn)分之一的事件。
可觀測(cè)性工具的關(guān)鍵是發(fā)現(xiàn)與手頭問(wèn)題相關(guān)的異常,然后從可能相關(guān)的日志文件/指標(biāo)中鏈接其他信息。
通過(guò)在上下文中顯示相關(guān)信息,操作員可以更快地找出問(wèn)題的潛在根本原因?!报C
Gartner?“Innovation
Insight
for
Observability”,2022
Mar,PadraigByrne
&
Josh
Chessman.?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有203.云原生觀測(cè)體系能力構(gòu)建3.1
云原生可觀測(cè)性信號(hào)云原生可觀測(cè)性的實(shí)現(xiàn)依賴于監(jiān)控指標(biāo)
/
監(jiān)控度量(Metrics)、事件日志(Logs)和鏈路追蹤(Traces)三種數(shù)據(jù)類型。這三種數(shù)據(jù)各有側(cè)重,不是完全獨(dú)立,三種數(shù)據(jù)之間有重合或者可以結(jié)合之處。圖
1
三種數(shù)據(jù)類型3.1.1
指標(biāo)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有21指標(biāo)是數(shù)據(jù)的數(shù)字表示形式。它們分為兩大類:已經(jīng)是數(shù)字?jǐn)?shù)據(jù)和提煉(聚合)成數(shù)字的數(shù)據(jù)。前者的一個(gè)例子是溫度,后者例如在
Web
服務(wù)器上觀察到的
HTTP
請(qǐng)求計(jì)數(shù)器。數(shù)字是存儲(chǔ)數(shù)據(jù)的最有效方式,隨著時(shí)間的推移,所有成熟的行業(yè)都趨向于指標(biāo)優(yōu)先。指標(biāo)的典型示例用例
-
衡量主機(jī)(例如虛擬機(jī))堆內(nèi)存使用情況的儀表。我們稱之為“堆內(nèi)存字節(jié)”。指標(biāo)由一個(gè)名稱、一組標(biāo)簽(有時(shí)稱為屬性或標(biāo)簽)和每個(gè)時(shí)間點(diǎn)的數(shù)值(例如每秒一個(gè)值)組成。每個(gè)具有特定名稱和標(biāo)簽的指標(biāo)實(shí)例通常稱為“時(shí)間序列”或“流”。3.1.2
日志事件日志(Logging):日志的職責(zé)是記錄離散事件,應(yīng)用運(yùn)行過(guò)程會(huì)持續(xù)輸出日志數(shù)據(jù),這些日志數(shù)據(jù)是業(yè)務(wù)系統(tǒng)運(yùn)行狀態(tài)的各種事件及業(yè)務(wù)處理邏輯時(shí)輸出的,通過(guò)這些記錄事后分析出程序的行為,基本上可以還原業(yè)務(wù)流程處理的全過(guò)程。事件日志可以詳細(xì)解釋系統(tǒng)的運(yùn)行狀態(tài),但是存儲(chǔ)和查詢需要消耗大量的資源。日志是描述操作系統(tǒng)、應(yīng)用程序、服務(wù)器或其他設(shè)備中的使用模式、活動(dòng)和操作的一個(gè)或多個(gè)文本條目。日志可以分為不同的類別,例如:
應(yīng)用程序日志
-應(yīng)用程序內(nèi)部事件創(chuàng)建的記錄。日志可幫助開(kāi)發(fā)人員了解和評(píng)估應(yīng)用程序在運(yùn)行過(guò)程中的行為模式。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有22
安全日志–
事件與系統(tǒng)中檢測(cè)規(guī)則匹配后創(chuàng)建對(duì)該事件的記錄。包括登錄失敗、密碼更改、資源訪問(wèn)、資源更改、策略更改、發(fā)生時(shí)間。安全管理員通過(guò)安全日志可回溯與檢測(cè)規(guī)則匹配的事件。
系統(tǒng)日志
-
系統(tǒng)日志記錄操作系統(tǒng)中的事件,包括處理物理和邏輯設(shè)備的內(nèi)核級(jí)消息、引導(dǎo)順序、用戶或應(yīng)用程序身份驗(yàn)證以及其他活動(dòng)、故障、資源狀態(tài)消息。
審核日志
-事件和更改的記錄。記錄執(zhí)行活動(dòng)人員、執(zhí)行活動(dòng)內(nèi)容以及系統(tǒng)如何響應(yīng)。系統(tǒng)管理員根據(jù)業(yè)務(wù)需求確定審核日志收集內(nèi)容。安全管理員可根據(jù)審核日志回溯人員對(duì)系統(tǒng)的使用。
基礎(chǔ)架構(gòu)日志
-涉及管理影響組織
IT
基礎(chǔ)的物理和邏輯設(shè)備。在本地或云中通過(guò)
API、Syslog、主機(jī)代理收集獲取。日志記錄應(yīng)用程序或系統(tǒng)在發(fā)生故障時(shí)的狀態(tài),在執(zhí)行根本原因分析時(shí),這些記錄特別有價(jià)值。存儲(chǔ)在日志中的信息是自由格式的文本,因此很難得出含義。在過(guò)去的
30
年中,已經(jīng)進(jìn)行了許多嘗試將架構(gòu)應(yīng)用于日志,但它們尚未特別成功。使用統(tǒng)一架構(gòu)的原因使提取相關(guān)信息更易于訪問(wèn)。通常是通過(guò)解析、分段和分析日志文件中的文本來(lái)完成的。日志數(shù)據(jù)還可以轉(zhuǎn)換為其他可觀測(cè)性信號(hào),指標(biāo)和跟蹤。一旦數(shù)據(jù)成為指標(biāo),它就可以用于了解隨時(shí)間的變化。日志數(shù)據(jù)還可以通過(guò)日志分析技術(shù)進(jìn)行可視化和分析?;趯?duì)數(shù)據(jù)獲取不同顆粒度,日志可設(shè)置不同級(jí)別:“錯(cuò)誤”、“警告”、“信息”和“調(diào)試”。錯(cuò)誤是最不詳細(xì)的日志級(jí)別,調(diào)試是最詳細(xì)的日志級(jí)別。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有23
錯(cuò)誤:傳達(dá)發(fā)生情況并詳細(xì)說(shuō)明發(fā)生故障的原因
警告:需要注意的高級(jí)消息,不一定是失敗信息
消息:系統(tǒng)的工作狀態(tài)
調(diào)試:存儲(chǔ)每個(gè)操作的詳細(xì)信息。通常,僅在故障排除期間或具備充足得存儲(chǔ)或性能而短期使用。3.1.3
追蹤鏈路追蹤(Tracing):鏈路追蹤大都是依據(jù)谷歌在
2010
年發(fā)表的論文《Dapper
:
a
Large-Scale
Distributed
Systems
Tracing
Infrastructure》
Dapper
理論來(lái)實(shí)現(xiàn)的,調(diào)用鏈記錄的是串聯(lián)單個(gè)事務(wù)內(nèi)全過(guò)程的日志數(shù)據(jù),通過(guò)對(duì)請(qǐng)求打標(biāo)、透?jìng)?、串?lián),最終可以還原出一次完整的請(qǐng)求,可以幫助工程師輕松分析出請(qǐng)求中異常點(diǎn)。但是鏈路追蹤和事件日志一樣有著相同的問(wèn)題就是資源消耗較大,通常也需要通過(guò)采樣的方式減少數(shù)據(jù)量。為了有效地進(jìn)行分布式追蹤,Dapper
提出了追蹤(Trace)與跨度(Span)兩個(gè)概念:
追蹤(Trace):從客戶端發(fā)起請(qǐng)求抵達(dá)系統(tǒng)的邊界開(kāi)始,記錄請(qǐng)求流經(jīng)的每一個(gè)服務(wù),直到到向客戶端返回響應(yīng)為止,這整個(gè)過(guò)程就稱為一次追蹤。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有24
跨度(Span):由于每次
Trace
都可能會(huì)調(diào)用數(shù)量不定、坐標(biāo)不定的多個(gè)服務(wù),為了能夠記錄具體調(diào)用了哪些服務(wù),以及調(diào)用的順序、開(kāi)始時(shí)點(diǎn)、執(zhí)行時(shí)長(zhǎng)等信息,每次開(kāi)始調(diào)用服務(wù)前都要先埋入一個(gè)調(diào)用記錄,這個(gè)記錄稱為一個(gè)跨度。Dapper
使用以跨度為基本樹(shù)節(jié)點(diǎn)的跟蹤樹(shù)構(gòu)建跟蹤模型,并為每個(gè)跨度記錄了一個(gè)可讀的
span
name,
span
id,
parent
id,這樣就能重建出一次分布式跟蹤過(guò)程中不同跨度之間的關(guān)系。沒(méi)有
parent
id
的跨度被稱為根跨度。一次特定跟蹤的所有相關(guān)跨度會(huì)共享同一個(gè)通用的
trace
id
。換句話說(shuō)每一個(gè)追蹤實(shí)際上都是由若干個(gè)有順序、有層級(jí)關(guān)系的跨度所組成一顆追蹤樹(shù)(Trace
Tree),如下圖
2
所示:圖
2
追蹤樹(shù)11
圖片引用自
Dapper
:
a
Large-Scale
Distributed
Systems
Tracing
Infrastructure?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有25追蹤(Tracing)通常表示一個(gè)具體的事務(wù)實(shí)例,即計(jì)算機(jī)通過(guò)特定程序的路徑,使它們成為可觀察性中的詳細(xì)且昂貴的信號(hào)??缍龋⊿pans)高度情境化,需要進(jìn)行上下文關(guān)聯(lián)。除此之外,跨度(Spans)
還記錄有關(guān)啟動(dòng)它的“父”跨度(Spans)的信息。這使得在分布式系統(tǒng)的不同參與者(如服務(wù)、隊(duì)列、數(shù)據(jù)庫(kù)等)之間建立因果關(guān)系成為可能。
基于日志的追蹤數(shù)據(jù)收集基于日志的追蹤的思路是將
Trace、Span
等信息直接輸出到應(yīng)用日志中,然后根據(jù)收集到的日志數(shù)據(jù),從全局日志信息中反推出完整的調(diào)用鏈拓?fù)潢P(guān)系?;谌罩镜淖粉檾?shù)據(jù)收集的優(yōu)點(diǎn)在于其對(duì)網(wǎng)絡(luò)消息完全沒(méi)有侵入性,對(duì)應(yīng)用程序只有很少量的侵入性,對(duì)性能影響也非常低。但其缺點(diǎn)是直接依賴于日志歸集過(guò)程,日志本身不追求絕對(duì)的連續(xù)與一致,這也使得基于日志的追蹤往往不甚精準(zhǔn)。另外,業(yè)務(wù)服務(wù)的調(diào)用與日志的歸集并不是同時(shí)完成的,也通常不由同一個(gè)進(jìn)程完成,有可能發(fā)生業(yè)務(wù)調(diào)用已經(jīng)順利結(jié)束了,但由于日志歸集不及時(shí)或者精度丟失,導(dǎo)致日志出現(xiàn)延遲或缺失記錄,進(jìn)而產(chǎn)生追蹤失真。Dapper
的跟蹤記錄和收集管道實(shí)現(xiàn)如下圖所示,共分為三個(gè)階段:1.
把
Span
數(shù)據(jù)寫(xiě)入到本地日志文件2.
Dapper
守護(hù)進(jìn)程和采集器從主機(jī)中將日志他們拉取出來(lái)3.
將拉取出的日志寫(xiě)入
Dapper
的
Bigtable
倉(cāng)庫(kù)中,其中
Bigtable
中的行表示一次跟蹤,列表示一個(gè)
span。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有26圖
3
Dapper
工作流程2
基于服務(wù)的追蹤數(shù)據(jù)收集基于服務(wù)追蹤的實(shí)現(xiàn)思路是通過(guò)某些手段給目標(biāo)應(yīng)用注入追蹤探針(Probe),通過(guò)探針獲取服務(wù)調(diào)用信息并發(fā)送給鏈路追蹤系統(tǒng)。探針在結(jié)構(gòu)上可視為一個(gè)寄生在目標(biāo)服務(wù)身上的小型微服務(wù)系統(tǒng),它一般會(huì)有自己專用的服務(wù)注冊(cè)、心跳檢測(cè)等功能,有專門(mén)的數(shù)據(jù)收集協(xié)議,把從目標(biāo)系統(tǒng)中監(jiān)控得到的服務(wù)調(diào)用信息,通過(guò)另一次獨(dú)立的
HTTP
或者
RPC
請(qǐng)求發(fā)送給追蹤系統(tǒng)?;诜?wù)的鏈路追蹤劣勢(shì)在于比基于日志的追蹤消耗更多的資源,也有更強(qiáng)的侵入性?;诜?wù)的鏈路追蹤優(yōu)勢(shì)為這些資源消耗換來(lái)收益的直接結(jié)果是精確性與穩(wěn)定性均有所保證,從而不必再依賴日志歸集作為追蹤數(shù)據(jù)的來(lái)源。基于服務(wù)的追蹤被
Zipkin、SkyWalking、Pinpoint
等追蹤系統(tǒng)廣泛采用。2
圖片引用自
Dapper
:
a
Large-Scale
Distributed
Systems
Tracing
Infrastructure?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有273.2
云原生可觀測(cè)能力構(gòu)建3.2.1
信號(hào)關(guān)聯(lián)有兩種基本方法可以關(guān)聯(lián)數(shù)據(jù):運(yùn)維人員建立或者利用現(xiàn)有數(shù)據(jù)建立相關(guān)性。應(yīng)該對(duì)所有的信號(hào)使用相同的元數(shù)據(jù)結(jié)構(gòu)。盡可能對(duì)日志使用相同的標(biāo)簽。如有必要,運(yùn)維人員可自建標(biāo)簽,附加到所有類型信號(hào)的數(shù)據(jù)。連續(xù)收集所有可觀測(cè)性信號(hào),每條數(shù)據(jù)的范圍都標(biāo)記為某個(gè)時(shí)間戳。在不同的維度上,每個(gè)可觀測(cè)性信號(hào)都需要綁定到某個(gè)“目標(biāo)”,
能夠查看目標(biāo)的指標(biāo)、跟蹤和日志三個(gè)維度可觀測(cè)性數(shù)據(jù)。通過(guò)一致的元數(shù)據(jù)來(lái)切換來(lái)自同一目標(biāo)(例如,同一應(yīng)用程序)的可觀測(cè)性信號(hào)。利用基于拉取的系統(tǒng),如
Prometheus
或
OpenTelemetry
Prometheus
接收指標(biāo),利用日志收集器(OpenTelemetry、Fluentd、Fluentbit
)收集日志。確保收集器附加一組一致的目標(biāo)標(biāo)簽或?qū)傩裕纭凹骸?、“namespace”、”label“、“Pod”。在處理
OTLP(指標(biāo)、日志和跟蹤)等多維度集合數(shù)據(jù)時(shí),應(yīng)用附加目標(biāo)標(biāo)簽信息,確保數(shù)據(jù)一致性。運(yùn)維人員可以基于相同的標(biāo)簽,在不同的可觀測(cè)性信號(hào)之間切換。允許從每個(gè)信號(hào)中選擇與特定過(guò)程、組件、時(shí)間相關(guān)的信息,從而快速瀏覽具有相同標(biāo)簽信號(hào)的細(xì)節(jié)內(nèi)容。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有28日志中共享與請(qǐng)求相關(guān)的相同信息(請(qǐng)求
ID、操作
ID)。確保日志記錄和跟蹤的這些
ID
是相關(guān)聯(lián)的,從而確保數(shù)據(jù)可基于事件請(qǐng)求
ID
緊密地相互關(guān)聯(lián)。運(yùn)維人員能夠通過(guò)跟蹤綁定到單條日志的請(qǐng)求
ID
標(biāo)簽,快速定位日志。3.2.2
典型業(yè)務(wù)架構(gòu)可觀測(cè)性業(yè)務(wù)架構(gòu)可分為以下五層(數(shù)據(jù)源、數(shù)據(jù)采集層、數(shù)據(jù)存儲(chǔ)層、應(yīng)用展示層、智能化層)。五層架構(gòu)可作為可觀測(cè)性建設(shè)的內(nèi)容,也是當(dāng)前大多數(shù)企業(yè)正在實(shí)踐的部分。典型可觀測(cè)性業(yè)務(wù)架構(gòu)如下圖
4
所示:?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有29圖
4
典型可觀測(cè)性業(yè)務(wù)架構(gòu)
數(shù)據(jù)源可觀測(cè)的數(shù)據(jù)源大致可分為幾大類,硬件、操作系統(tǒng)與網(wǎng)絡(luò)以及軟件。硬件如服務(wù)器的硬盤(pán)、電源、風(fēng)扇和主板等;網(wǎng)絡(luò)設(shè)備如交換機(jī)、路由器和網(wǎng)關(guān)等設(shè)備;安全設(shè)備如防火墻;機(jī)房設(shè)施如空調(diào)、電力等;這些硬件在運(yùn)行時(shí)都會(huì)產(chǎn)生狀態(tài)數(shù)據(jù)。操作系統(tǒng)其實(shí)也是一種軟件,由于其特殊性這里將其單獨(dú)歸類,操作系統(tǒng)內(nèi)會(huì)有
CPU、內(nèi)存、存儲(chǔ)相關(guān)的使用和狀態(tài)數(shù)據(jù),操作系統(tǒng)間會(huì)有通信的網(wǎng)絡(luò)數(shù)據(jù)。軟件包含集群編排系統(tǒng)、Docker
運(yùn)行時(shí)、DB、中間件、業(yè)務(wù)軟件。
數(shù)據(jù)采集對(duì)數(shù)據(jù)進(jìn)行分析總結(jié)出三種獨(dú)立的數(shù)據(jù)類型,分別從三個(gè)不同的維度來(lái)展示應(yīng)用的狀態(tài),這三種數(shù)據(jù)類型分別是日志數(shù)據(jù)(Logging)、鏈路數(shù)據(jù)(Tracing)和指標(biāo)數(shù)據(jù)(Metric)日志是記錄了發(fā)生在運(yùn)行中的操作系統(tǒng)或其他軟件中的事件。常見(jiàn)于事件日志、事物日志、消息日志等,而與可觀測(cè)性相關(guān)主要就是事件日志。事件日志(Event
logs)記錄了在系統(tǒng)運(yùn)行期間發(fā)生的事件,以便于了解系統(tǒng)活動(dòng)和診斷問(wèn)題。它對(duì)于了解復(fù)雜系統(tǒng)的活動(dòng)軌跡至關(guān)重要,尤其是只有很少用戶交互的應(yīng)用程序(例如服務(wù)器應(yīng)用程序)。目前,許多企業(yè)使用
CNCF
推薦的
Fluentd
作為主要的日志數(shù)據(jù)采集工具。此外還有一些企業(yè)采用
Filebeat
和
Logstash。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有30鏈路追蹤即調(diào)用鏈監(jiān)控,特點(diǎn)是通過(guò)記錄多個(gè)在請(qǐng)求間跨服務(wù)完成的邏輯請(qǐng)求信息,幫助開(kāi)發(fā)人員優(yōu)化性能和進(jìn)行問(wèn)題追蹤。鏈路追蹤可以捕獲每個(gè)請(qǐng)求遇到的異常和錯(cuò)誤,即時(shí)信息和有價(jià)值的數(shù)據(jù)。鏈路追蹤的技術(shù)選型目前在
CNCF中主要有的
Jaeger,SkyWalking
或
Zipkin
幾種工具供選擇。指標(biāo)數(shù)據(jù)是應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的內(nèi)部指標(biāo),以
API
接口的方式提供查詢。指標(biāo)數(shù)據(jù)具有時(shí)間點(diǎn)的特性,不同的時(shí)間點(diǎn)對(duì)應(yīng)的指標(biāo)是不同的,因此用以存儲(chǔ)指標(biāo)數(shù)據(jù)的數(shù)據(jù)庫(kù)一般稱為時(shí)序列數(shù)據(jù)庫(kù)。
數(shù)據(jù)存儲(chǔ)采集到的數(shù)據(jù)需要進(jìn)行處理并進(jìn)行存儲(chǔ),為下一步的數(shù)據(jù)應(yīng)用和展示提供數(shù)據(jù)基礎(chǔ)。一般場(chǎng)景日志數(shù)據(jù)和鏈路追蹤數(shù)據(jù)存儲(chǔ)可使用
ElasticSearch、ClickHouse等非關(guān)系數(shù)據(jù)庫(kù)。在大規(guī)模日志采集場(chǎng)景下可以添加
Kafka
作為緩沖。對(duì)需要進(jìn)行大數(shù)據(jù)分析等場(chǎng)景時(shí),也可以選擇
HDFS/HBase
存儲(chǔ)。對(duì)于指標(biāo)數(shù)據(jù)推薦使用
Prometheus
存儲(chǔ)(Prometheus
本身也實(shí)現(xiàn)了
TSDB數(shù)據(jù)庫(kù)),但是原生的
TSDB
對(duì)于大數(shù)據(jù)量的保存及查詢支持不太友好,該數(shù)據(jù)庫(kù)不能保證可靠性,且無(wú)法支持
Prometheus
集群架構(gòu)。而
Thanos
和
Cortex都是在數(shù)據(jù)可靠性和集群高可用方面進(jìn)行了優(yōu)化和增強(qiáng),目前都是
CNCF
孵化中的項(xiàng)目,也是不錯(cuò)的選擇。在大規(guī)模場(chǎng)景下還可以選擇
openTSDB
或Clickhouse
來(lái)進(jìn)行指標(biāo)數(shù)據(jù)存儲(chǔ)。
數(shù)據(jù)展示?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有31展示層是對(duì)采集數(shù)據(jù)的基礎(chǔ)應(yīng)用,也是當(dāng)前企業(yè)主要的應(yīng)用場(chǎng)景。圖表展示是可觀測(cè)性面向用戶最為直觀的呈現(xiàn),將復(fù)雜的數(shù)據(jù)以圖或表形式展示出來(lái),便于運(yùn)維人員快速了解應(yīng)用狀態(tài),基于經(jīng)驗(yàn)做出判斷或預(yù)測(cè)。對(duì)于日志數(shù)據(jù)和鏈路追蹤數(shù)據(jù)的查看可以通過(guò)
Kibana
查看,對(duì)于指標(biāo)數(shù)據(jù)可使用
Grafana
進(jìn)行展示,也可以使用原生的
Prometheus、Thanos
或
Cortex
查看。服務(wù)拓?fù)涫峭ㄟ^(guò)數(shù)據(jù)流向和調(diào)用關(guān)系,以
UI
的方式將服務(wù)依賴關(guān)系拓?fù)涑尸F(xiàn)出來(lái)。實(shí)際業(yè)務(wù)中,應(yīng)用之間的關(guān)聯(lián)與依賴非常復(fù)雜,需要通過(guò)全局視角檢查具體的局部異常??梢栽诜?wù)拓?fù)洳榭磻?yīng)用在指定時(shí)間內(nèi)的調(diào)用及其性能狀況。監(jiān)控告警是最常用的場(chǎng)景,也是目前建設(shè)可觀測(cè)系統(tǒng)的核心目標(biāo)。監(jiān)控告警通過(guò)事前配置好閾值,數(shù)據(jù)采集上來(lái)后通過(guò)計(jì)算與閾值比對(duì),對(duì)于不符合規(guī)則要求的數(shù)據(jù)生成告警事件,通過(guò)告警渠道發(fā)送到目標(biāo)設(shè)備。對(duì)于可觀測(cè)性數(shù)據(jù)的應(yīng)用除以上幾項(xiàng)外,還可嘗試將三者的數(shù)據(jù)進(jìn)行關(guān)聯(lián),使同一個(gè)應(yīng)用不同維度的事件立體化的展示出來(lái)。如請(qǐng)求發(fā)生異常時(shí),應(yīng)用一般會(huì)將請(qǐng)求以日志的方式輸出,調(diào)用鏈路也會(huì)上報(bào)調(diào)用異常,這兩類數(shù)據(jù)可以通過(guò)RequestID
或
TraceID
進(jìn)行關(guān)聯(lián)。
智能化將人工智能和大數(shù)據(jù)應(yīng)用于可觀測(cè)性,輔助運(yùn)維實(shí)現(xiàn)自動(dòng)化、智能化,以達(dá)到業(yè)務(wù)服務(wù)高效穩(wěn)定運(yùn)行的目的。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有32智能分析依托大數(shù)據(jù)和人工智能技術(shù)對(duì)采集的日志、指標(biāo)和鏈路數(shù)據(jù)進(jìn)行分析,按需產(chǎn)生有價(jià)值的結(jié)果。智能分析的主要應(yīng)用有趨勢(shì)預(yù)測(cè)、根因分析和智能決策三類不同場(chǎng)景。
趨勢(shì)預(yù)測(cè):預(yù)測(cè)可能會(huì)發(fā)生的事件;
根因分析:確定事件發(fā)生的根本原因;
智能決策:基于根本原因后提供智能決策的解決方案。3.3
核心能力-基于
eBPF
構(gòu)建云原生數(shù)據(jù)采集技術(shù)隨著大量應(yīng)用基于云原生技術(shù)進(jìn)行開(kāi)發(fā)、適配和遷移,應(yīng)用出現(xiàn)微服務(wù)激增、多語(yǔ)言開(kāi)發(fā)、多通信協(xié)議特征,系統(tǒng)架構(gòu)復(fù)雜度越來(lái)越高,傳統(tǒng)可觀測(cè)方法存在采集數(shù)據(jù)粒度不夠細(xì)致、資源消耗量大、外部代碼侵入等問(wèn)題。近年來(lái),業(yè)界開(kāi)始關(guān)注
linux
內(nèi)核
eBPF
技術(shù),獨(dú)有特性能更有效地解決發(fā)展中問(wèn)題。3.3.1
Linux
內(nèi)核
eBPF
技術(shù)原理eBPF
起源于
Linux
內(nèi)核,可以運(yùn)行沙箱程序,安全有效地?cái)U(kuò)展內(nèi)核功能,無(wú)需更改內(nèi)核源代碼或加載內(nèi)核模塊。eBPF
全稱“擴(kuò)展的伯克利數(shù)據(jù)包過(guò)濾器(Extended
Berkeley
Packet
Filter)”,是一種數(shù)據(jù)包過(guò)濾技術(shù),從
BPF(Berkeley
PacketFilter)技術(shù)擴(kuò)展而來(lái)。BPF
提供了一種在內(nèi)核事件和用戶程序事件發(fā)生時(shí)安全注入代碼的機(jī)制,這就讓非內(nèi)核開(kāi)發(fā)人員也可以對(duì)內(nèi)核進(jìn)行控制。隨著
Linux
內(nèi)核的發(fā)展,BPF
逐步從最初的數(shù)據(jù)包過(guò)濾擴(kuò)展到網(wǎng)絡(luò)、內(nèi)核、安全、跟蹤等,而且它的功能特性還在快速發(fā)展之中,這種擴(kuò)展后的
BPF
被簡(jiǎn)稱為
eBPF。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有33eBPF
是基于寄存器的虛擬機(jī),使用自定義的
64
位
RISC
指令集,在
Linux內(nèi)核運(yùn)行即時(shí)本地編譯的
eBPF
程序。eBPF
程序并不像常規(guī)的線程那樣,啟動(dòng)后就一直保持運(yùn)行,它需要由事件觸發(fā)后才會(huì)執(zhí)行。這些事件包括系統(tǒng)調(diào)用、內(nèi)核跟蹤點(diǎn)、內(nèi)核函數(shù)和用戶態(tài)函數(shù)的調(diào)用退出、網(wǎng)絡(luò)事件,等等。借助于強(qiáng)大的內(nèi)核態(tài)插樁(kprobe)和用戶態(tài)插樁(uprobe),eBPF
程序幾乎可以在內(nèi)核和應(yīng)用的任意位置進(jìn)行插樁。eBPF
程序通常包括
4
部分:
后端代碼:在內(nèi)核中加載和運(yùn)行的
eBPF
字節(jié)碼,它將數(shù)據(jù)寫(xiě)入內(nèi)核
map和環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)中;
加載器:它將字節(jié)碼后端加載到內(nèi)核中,當(dāng)加載器進(jìn)程中止時(shí),字節(jié)碼會(huì)被內(nèi)核自動(dòng)卸載;
前端代碼:從數(shù)據(jù)結(jié)構(gòu)中讀取數(shù)據(jù),并將其顯示給用戶
數(shù)據(jù)結(jié)構(gòu):后端和前端的通信手段。它們是由內(nèi)核管理的
map
和環(huán)形緩沖區(qū),可以通過(guò)文件描述符訪問(wèn)。需要在后端被加載之前創(chuàng)建,數(shù)據(jù)會(huì)持續(xù)存在,直到?jīng)]有更多的后端或前端進(jìn)行讀寫(xiě)操作eBPF
程序的運(yùn)行流程,如下圖
5
所示:?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有34圖
5
eBPF
程序的運(yùn)行流程1.用戶態(tài)編寫(xiě)
eBPF
程序2.使用
LLVM
編譯成
bytecode
的
ELF
文件3.使用
bpf
系統(tǒng)調(diào)用,把程序加載進(jìn)入內(nèi)核4.內(nèi)核的
verifier
會(huì)驗(yàn)證
eBPF
程序的合法性,確保其能夠安全、合規(guī)地在內(nèi)核中運(yùn)行5.內(nèi)核會(huì)使用
JIT
compiler
把
eBPF
字節(jié)碼編譯成本地機(jī)器碼6.eBPF
程序在內(nèi)核中以
VM
方式安全運(yùn)行3.3.2
基于
eBPF
云原生可觀測(cè)性技術(shù)架構(gòu)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有35云原生環(huán)境中每臺(tái)機(jī)器(或虛擬機(jī))只有一個(gè)內(nèi)核,所有運(yùn)行在該機(jī)器上的容器都共享同一個(gè)內(nèi)核,內(nèi)核了解主機(jī)上運(yùn)行的所有應(yīng)用代碼。通過(guò)對(duì)內(nèi)核的檢測(cè),基于
eBPF
可以同時(shí)檢測(cè)在該機(jī)器上運(yùn)行的所有應(yīng)用程序代碼。當(dāng)將
eBPF
程序加載到內(nèi)核并將其附加到事件上時(shí),它就會(huì)被觸發(fā),而不考慮哪個(gè)進(jìn)程與該事件有關(guān)。eBPF
能夠?qū)趶V泛的可能來(lái)源的可視化事件的定制指標(biāo)進(jìn)行收集和核內(nèi)聚合?;?/p>
eBPF
在操作系統(tǒng)內(nèi)核特性優(yōu)勢(shì),與
OpenTelemetry
結(jié)合實(shí)現(xiàn)云原生觀測(cè)數(shù)據(jù)收集處理的架構(gòu),極大增強(qiáng)云原生環(huán)境可觀測(cè)性能力?;?/p>
eBPF
的可觀測(cè)性架構(gòu)如下圖
6:圖
6
基于
eBPF
的可觀測(cè)性架構(gòu)?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有36關(guān)鍵點(diǎn)在
eBPF
采集數(shù)據(jù)導(dǎo)入
OpenTelemetry
Collector,步驟如下:1.
數(shù)據(jù)接收:在
kubernetes
集群節(jié)點(diǎn)上基于
eBPF
的
tracepoint
和kprobe/kretprobe,將內(nèi)核采集到的應(yīng)用請(qǐng)求、系統(tǒng)調(diào)用、網(wǎng)絡(luò)傳輸性能等數(shù)據(jù)放到內(nèi)存中,在用戶態(tài)
eBPF
程序讀取數(shù)據(jù),進(jìn)行預(yù)處理;基于OpenTelemetry
規(guī)范實(shí)現(xiàn)
Receiver,以事件訂閱方式接收采集數(shù)據(jù);2.
數(shù)據(jù)處理:基于
OpenTelemetry
規(guī)范實(shí)現(xiàn)
Processor,對(duì)采集數(shù)據(jù)進(jìn)行協(xié)議解析和指標(biāo)處理評(píng)估,然后填充
kubernetes
metadata(元信息),實(shí)現(xiàn)
eBPF
采集的內(nèi)核數(shù)據(jù)與
kubernetes
調(diào)度請(qǐng)求、上下文信息關(guān)聯(lián);3.
數(shù)據(jù)導(dǎo)出:基于
OpenTelemetry
規(guī)范實(shí)現(xiàn)
Exporter
數(shù)據(jù)導(dǎo)出到可觀測(cè)平臺(tái)進(jìn)行分析?;?/p>
eBPF
實(shí)現(xiàn)云原生可觀測(cè)性數(shù)據(jù)采集具有以下優(yōu)勢(shì):1.
能夠采集更加全面的數(shù)據(jù),數(shù)據(jù)指標(biāo)覆蓋從程序調(diào)用、網(wǎng)絡(luò)傳輸性能、網(wǎng)絡(luò)協(xié)議棧性能、服務(wù)黃金指標(biāo)等各個(gè)層面;2.
資源消耗占比小,eBPF
程序以本機(jī)機(jī)器指令運(yùn)行,性能很高,基于內(nèi)核進(jìn)行數(shù)據(jù)采集,對(duì)應(yīng)用零侵入、零改造;3.
更加靈活具備可伸縮性,eBPF
程序可以在運(yùn)行時(shí)動(dòng)態(tài)附加到系統(tǒng)中,無(wú)需重新啟動(dòng)目標(biāo)系統(tǒng);?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有374.
能夠輕松應(yīng)對(duì)容器啟動(dòng)、停止等動(dòng)態(tài)特點(diǎn),不需要任何的邊車(
Sidecar)侵入,直接通過(guò)內(nèi)核來(lái)觀測(cè)任意的容器行為。3.3.3
基于的
eBPF
云原生可觀測(cè)性增強(qiáng)示例
動(dòng)態(tài)網(wǎng)絡(luò)性能監(jiān)控通過(guò)在每個(gè)
kubernetes節(jié)點(diǎn)上部署?個(gè)探針eBPF程序。這個(gè)探針通過(guò)
hook內(nèi)核的
accept,
connect,
send,
recv
等
L4(TCP、UDP)相關(guān)的系統(tǒng)調(diào)?,可以獲取進(jìn)程與綁定地址的關(guān)系、通信雙?的地址、各連接收發(fā)的流量統(tǒng)計(jì)。探針會(huì)去獲取當(dāng)前
kubernetes
集群的
metadata
數(shù)據(jù)(pid,
container,
pod,
service,
node
等)并把它們保存在內(nèi)存中,豐富原始
eBPF
數(shù)據(jù)。服務(wù)端在收集到通信雙?的
eBPF數(shù)據(jù)后做進(jìn)?步數(shù)據(jù)填充,并存?數(shù)據(jù)庫(kù)。查詢時(shí),根據(jù)指定的時(shí)間范圍、主機(jī)/服務(wù)/pod
等篩選條件查詢數(shù)據(jù)庫(kù),從?構(gòu)造出該時(shí)段的各級(jí)別的動(dòng)態(tài)拓?fù)鋱D。并且基于
eBPF
能進(jìn)一步采集內(nèi)核級(jí)底層網(wǎng)絡(luò)可觀測(cè)性黃金信號(hào)數(shù)據(jù),如
TCP
網(wǎng)絡(luò)流量、網(wǎng)絡(luò)延遲、堵塞等數(shù)據(jù),并建立與
kubernetes
對(duì)象關(guān)聯(lián)。
HTTP
黃金指標(biāo)監(jiān)控云原生環(huán)境中有運(yùn)行狀況的三個(gè)關(guān)鍵
HTTP
黃金指標(biāo):請(qǐng)求速率、請(qǐng)求延遲、請(qǐng)求響應(yīng)代碼/錯(cuò)誤。基于
eBPF
能夠在不對(duì)應(yīng)用程序進(jìn)行任何更改的情況下提取這些數(shù)據(jù),并且聚合相應(yīng)的指標(biāo)不是基于
IP,探針在獲得?絡(luò)報(bào)文之后,進(jìn)?步解析
L7
內(nèi)容,包括
HTTP、HTTPS、gRPC
等將微服務(wù)的各個(gè)會(huì)話(?次請(qǐng)求和響應(yīng))的
URL、latency、錯(cuò)誤碼關(guān)聯(lián)到服務(wù)標(biāo)識(shí)。探針定期將會(huì)話聚合信息推送到服務(wù)端進(jìn)?步豐富數(shù)據(jù),構(gòu)建微服務(wù)鏈路、監(jiān)控儀表盤(pán)等。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有38
性能剖析(Profiling)傳統(tǒng)工具對(duì)系統(tǒng)中
CPU
進(jìn)行定時(shí)采樣,以特定的時(shí)間間隔或速率采集正在運(yùn)行的函數(shù)或堆棧跟蹤的計(jì)數(shù),估計(jì)
CPU
的時(shí)間消耗分布,這種方式需要與應(yīng)用強(qiáng)綁定,受開(kāi)發(fā)語(yǔ)言局限,并且在跟蹤多線程、多請(qǐng)求應(yīng)用時(shí)存在困難?;趀BPF
可以輕松地對(duì)堆棧跟蹤和時(shí)間進(jìn)行內(nèi)核內(nèi)摘要,獲得系統(tǒng)級(jí)別特定進(jìn)程的On-CPU
和
Off-CPU
事件。基于
On-CPU
事件可以繪制?焰圖,直觀地展示各個(gè)調(diào)?棧所占時(shí)間?例。通過(guò)分析線程堆棧能夠定位分析服務(wù)
CPU
使用率高的問(wèn)題,如果堆棧被轉(zhuǎn)儲(chǔ)的次數(shù)更多,則意味著線程堆棧占用了更多的
CPU
資源,如下圖
7:圖
7
CPU
資源?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有394.云原生可觀測(cè)性應(yīng)用場(chǎng)景4.1
故障分析故障分析是云原生可觀測(cè)性的最基本的應(yīng)用場(chǎng)景,也是可觀測(cè)性技術(shù)的持續(xù)發(fā)展的重要驅(qū)動(dòng)力。谷歌給出可觀測(cè)性的核心價(jià)值快速排障(troubleshooting)??捎^測(cè)性猶如整個(gè)
IT
系統(tǒng)的眼睛,它是運(yùn)維人員發(fā)現(xiàn)問(wèn)題、定位問(wèn)題、解決問(wèn)題的第一步,同時(shí),也是運(yùn)維監(jiān)控的實(shí)現(xiàn)“先知、先覺(jué)、先行”的重要條件。隨著云原生持續(xù)發(fā)展,業(yè)務(wù)對(duì)可靠性、穩(wěn)定性的要求越來(lái)越高。提前發(fā)現(xiàn)故障、快速發(fā)現(xiàn)故障、快速定位故障原因是做好穩(wěn)定性的核心要素,良好的可觀測(cè)性能夠幫助用戶在故障分析上事半功倍,有效提高業(yè)務(wù)上線運(yùn)行地穩(wěn)定性。在故障分析領(lǐng)域,云原生可觀測(cè)技術(shù)協(xié)助運(yùn)維人員發(fā)現(xiàn)故障事件,分析故障發(fā)生原因,快速定位故障根因,可極大提升云原生領(lǐng)域運(yùn)維效率。4.2
事件預(yù)測(cè)在安全運(yùn)維領(lǐng)域,自動(dòng)化成為技術(shù)發(fā)展的趨勢(shì)。系統(tǒng)能夠完成人類根本無(wú)法完成的任務(wù),例如通過(guò)機(jī)器學(xué)習(xí)方法,在錯(cuò)誤或事件發(fā)生之前進(jìn)行預(yù)測(cè)。實(shí)現(xiàn)預(yù)測(cè)能力,需要通過(guò)在可觀測(cè)性系統(tǒng)添加人工智能層。將人工智能的大數(shù)據(jù)分析能力及結(jié)果賦能于可觀測(cè)性系統(tǒng),使可觀測(cè)性系統(tǒng)在問(wèn)題發(fā)生之前提供預(yù)測(cè)能力。人工智能賦能的可觀測(cè)性系統(tǒng),除了提供預(yù)測(cè)能力,并且可對(duì)預(yù)測(cè)發(fā)生的問(wèn)題提供解決方案。在安全運(yùn)維領(lǐng)域提升對(duì)未發(fā)生事件、未知威脅的感知能力。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有40為使得可觀測(cè)性系統(tǒng)具備更強(qiáng)的預(yù)測(cè)能力,需要更多的數(shù)據(jù)和更強(qiáng)大的算力支持,建立精確的模型和預(yù)測(cè)系統(tǒng),提供更深刻的事件洞察能力。4.3
日志審計(jì)日志與審計(jì)對(duì)系統(tǒng)和應(yīng)用行為的記錄,對(duì)云原生可觀測(cè)性的實(shí)現(xiàn)起到了重要的作用。通過(guò)日志系統(tǒng)獲取系統(tǒng)以及應(yīng)用的詳細(xì)操作數(shù)據(jù),是云原生可觀測(cè)性重要的數(shù)據(jù)來(lái)源。針對(duì)
Docker
和
Kubernetes,分別具有對(duì)應(yīng)的日志采集機(jī)制,從安全審計(jì)的角度出發(fā),可對(duì)日志數(shù)據(jù)進(jìn)行存儲(chǔ)、歸類、查詢等操作處理。4.3.1
Docker
日志審計(jì)Docker
支持多種日志記錄機(jī)制,用以幫助用戶從正在運(yùn)行的容器和服務(wù)中獲取信息,這種機(jī)制被稱為日志驅(qū)動(dòng)程序。Docker
從
1.6
版本開(kāi)始支持日志驅(qū)動(dòng),用戶可以將日志直接從容器輸出到如
syslogd
這樣的日志系統(tǒng)中。每個(gè)
Docker
守護(hù)進(jìn)程都有一個(gè)默認(rèn)的日志驅(qū)動(dòng)程序,通常這個(gè)默認(rèn)的日志驅(qū)動(dòng)是
json-file,也就是以
JSON
文件的形式保存日志信息。同時(shí)
Docker
還支持其他的日志驅(qū)動(dòng),比如
none、json-file、syslog
和
fluentd
等。下表
2
展示了當(dāng)前Docker
支持的日志驅(qū)動(dòng)格式。驅(qū)動(dòng)描述none不啟用
log
功能,該容器
docker
logs
沒(méi)有可用的日志,并且不返?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有41回任何輸出。local日志以自定義格式存儲(chǔ),旨在最大程度地減少開(kāi)銷。日志格式為
JSON。這是
Docker
的默認(rèn)日志驅(qū)動(dòng)程序。json-filesyslogLinux
的系統(tǒng)
log
服務(wù),將日志消息寫(xiě)入
syslog,確保
syslog
守護(hù)程序必須在
Docker
主機(jī)上已經(jīng)運(yùn)行。journaldsystemd
的
log
服務(wù),可以代替
syslog
服務(wù),將日志消息寫(xiě)入journald,journald
守護(hù)進(jìn)程必須在主機(jī)上運(yùn)行。gelf將
log
寫(xiě)入
graylog
或
Logstash
等端點(diǎn)。將
log
寫(xiě)入
fluentd,確保
fluentd
在主機(jī)上已運(yùn)行。將
log
寫(xiě)入
Amazon
CloudWatch
Logs。fluentdawslogssplunketwlogs使用
HTTP
Event
Collector
將
log
寫(xiě)入
splunk將
log
寫(xiě)為
Event
Tracing
for
Windows
(ETW)事件,僅適用于Windows
平臺(tái)gcplogs將
log
寫(xiě)入
Cloud
Platform
(GCP)logentries將
log
寫(xiě)入
Rapid7
Logentries表
2
Docker
支持的日志驅(qū)動(dòng)格式?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有42CIS
Benchmark
對(duì)
Docker
的日志審計(jì)也提出了安全建議和要求,例如,在
CISDocker
Benchmark
v1.6.0
版本中,2.13
小節(jié)要求需要配置集中和遠(yuǎn)程的日志記錄,以確保所有的日志記錄都是安全的,進(jìn)而滿足容災(zāi)的需要,而具體的日志驅(qū)動(dòng)程序,則可以根據(jù)自身情況進(jìn)行選擇。
除了對(duì)容器的日志審計(jì)外,CIS
Benchmark還針對(duì)
Docker
主機(jī),提出了相關(guān)的安全審計(jì)建議。對(duì)
Docker
主機(jī)的安全審計(jì),一方面包括了常規(guī)的對(duì)
Linux
文件系統(tǒng)以及系統(tǒng)調(diào)用等進(jìn)行審計(jì)。另一方面,也包括針對(duì)
Docker
守護(hù)進(jìn)程等相關(guān)內(nèi)容的安全審計(jì)。例如
CIS
Docker
Benchmarkv1.12.0
版本中,1.1.3
小節(jié)要求,需要審計(jì)所有活動(dòng)的
Docker
守護(hù)進(jìn)程,可以通過(guò)
auditctl
-l
|
grep
/usr/bin/docker
命令,列出當(dāng)前的審計(jì)規(guī)則,默認(rèn)情況下,沒(méi)有針對(duì)
Docker
守護(hù)進(jìn)程的審計(jì)規(guī)則。CIS
Benchmark
中除了對(duì)
Docker
守護(hù)進(jìn)程提出了安全審計(jì)的建議外,還對(duì)Docker
相關(guān)的文件和目錄提出了安全審計(jì)建議,例如:需要審計(jì)
Docker
文件和/var/lib/docker
目錄、需要審計(jì)
Docker
文件和/etc/docker
目錄、需要審計(jì)
Docker文件和
docker.socket
目錄等。更多針對(duì)
Docker
詳細(xì)的安全審計(jì)建議,可參考
CISDocker
Benchmark
標(biāo)準(zhǔn)。4.3.2
Kubernetes
日志審計(jì)
應(yīng)用程序日志應(yīng)用程序的日志記錄可以更好的了解應(yīng)用內(nèi)部的運(yùn)行狀況,同時(shí)對(duì)調(diào)試問(wèn)題、監(jiān)控集群活動(dòng)以及對(duì)應(yīng)用程序運(yùn)行過(guò)程的安全性分析有著非常大的作用。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有43當(dāng)前,大部分應(yīng)用程序都有某種日志記錄機(jī)制,前文已經(jīng)介紹過(guò),以
Docker為代表的容器引擎也被設(shè)計(jì)成支持日志記錄的方式。針對(duì)容器化應(yīng)用,最簡(jiǎn)單且最廣泛采用的日志記錄方式就是寫(xiě)入標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯(cuò)誤流(stderr)。但是,由容器引擎或運(yùn)行時(shí)提供的原生日志功能,通常不足以構(gòu)成完整的日志審計(jì)方案。例如,當(dāng)發(fā)生容器崩潰或者節(jié)點(diǎn)宕機(jī)等情況時(shí),我們通常會(huì)想訪問(wèn)應(yīng)用的日志,這時(shí)可能就會(huì)出現(xiàn)問(wèn)題。在集群中,日志應(yīng)該具有獨(dú)立的存儲(chǔ)和生命周期,與節(jié)點(diǎn)、Pod
或容器的生命周期相獨(dú)立。這里通常會(huì)稱為集群級(jí)的日志。集群級(jí)的日志架構(gòu)需要一個(gè)獨(dú)立的后端用來(lái)存儲(chǔ)、分析和查詢?nèi)罩?。Kubernetes
當(dāng)前并不為日志數(shù)據(jù)提供原生的存儲(chǔ)解決方案,有很多現(xiàn)成的日志方案可以集成到
Kubernetes
中,
具體可參考下
日志工具小節(jié)。
系統(tǒng)組件日志在
Kubernetes
中,除了
Pod
中應(yīng)用程序的日志外,Kubernetes
系統(tǒng)組件的日志同樣需要有一定的方案來(lái)記錄和存儲(chǔ)。系統(tǒng)組件的日志主要記錄了集群中發(fā)生的事件,這對(duì)于調(diào)試以及安全審計(jì)有著重要的作用。系統(tǒng)組件日志可以根據(jù)需要配置日志的粒度,靈活調(diào)整日志記錄的細(xì)節(jié)程度。日志可以是只顯示組件內(nèi)錯(cuò)誤這種粗粒度的,也可以是更加細(xì)粒度的,例如記錄事件的每一個(gè)追蹤步驟(HTTP
訪問(wèn)日志、Pod
狀態(tài)更新、控制器操作、調(diào)度器決策等)。?
2023
云安全聯(lián)盟大中華區(qū)版權(quán)所有44在
Kubernetes
中,系統(tǒng)組件根據(jù)部署運(yùn)行方式的不同,可以分為兩種類型:其中一種是運(yùn)行在容器中的,比如,kube-scheduler、kube-proxy
等;另一種是不在容器中運(yùn)行的,比如
kubelet、以及容器運(yùn)行時(shí)等。在使用
systemd
機(jī)制的服務(wù)器上,kubelet
和容器運(yùn)行時(shí)將日志寫(xiě)入到
journald
中。如果沒(méi)有
systemd,它們會(huì)將日志寫(xiě)入到/var/log
目錄下的.log
文件中。容器中的系統(tǒng)組件通常將日志寫(xiě)到/var/log
目錄,繞過(guò)默認(rèn)的日志機(jī)制。Kubernetes
默認(rèn)使用的日志庫(kù)是
klog,專門(mén)用來(lái)做日志初始化的相關(guān)操作,klog
是
glog
的
fork
版本,由于
glog
不再開(kāi)發(fā)、在容器中運(yùn)行有不易測(cè)試等一系列問(wèn)題,所以
Kubenetes
自己維護(hù)了一個(gè)
klog,
由于
Kubernetes
近期版本一直持續(xù)不斷在精簡(jiǎn)系統(tǒng)日志組件的,因此在
Kubernetes
v1.23.0
開(kāi)始,klog
的一些命令行參數(shù)已經(jīng)被廢棄。CIS
Benchmark
對(duì)
Kubernetes
的日志審計(jì)也提出了安全建議和要求,例如,在
CIS
Kubernetes
Benchmark
v1.6.0
版本中,1.2.22
小結(jié)要求需要配置—audit-log-path
路徑,啟動(dòng)
Kubernetes
API
Server
的審計(jì)功能,設(shè)置合適的日志路徑,進(jìn)而可以獲取
API
Server
一系列按時(shí)間排序的與安全相關(guān)的記錄。更多針對(duì)Kubernetes
詳細(xì)的安全審計(jì)建議,可參考
CIS
kubernetes
Benchmark
標(biāo)準(zhǔn)。雖然
Kubernetes
沒(méi)有為集群級(jí)日志記錄提供原生的解決方案,但是Kubernetes
官方給出了幾種常見(jiàn)的參考設(shè)計(jì)方法(L
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上??苿?chuàng)職業(yè)技術(shù)學(xué)院《網(wǎng)頁(yè)制作與設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海交通大學(xué)《地球表層系統(tǒng)科學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海建設(shè)管理職業(yè)技術(shù)學(xué)院《設(shè)計(jì)基礎(chǔ)造型》2023-2024學(xué)年第一學(xué)期期末試卷
- 教室考核情況報(bào)告范文
- 上海海事大學(xué)《新能源汽車性能仿真技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海關(guān)學(xué)院《運(yùn)輸與保險(xiǎn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海行健職業(yè)學(xué)院《編譯原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年中國(guó)大口徑中空纏繞管生產(chǎn)線市場(chǎng)調(diào)查研究報(bào)告
- Unit 5 Signs(教學(xué)實(shí)錄)-2024-2025學(xué)年譯林版(三起)英語(yǔ)六年級(jí)上冊(cè)
- 冬季常見(jiàn)病的保健調(diào)理
- 收購(gòu)公司法律盡職調(diào)查合同(2篇)
- 第六單元多邊形的面積 (單元測(cè)試)-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)人教版
- 《內(nèi)外科疾病康復(fù)學(xué)》課程教學(xué)大綱
- 公路養(yǎng)護(hù)培訓(xùn)知識(shí)
- 國(guó)家安全教育高教-第六章堅(jiān)持以經(jīng)濟(jì)安全為基礎(chǔ)
- 鋰電儲(chǔ)能產(chǎn)品設(shè)計(jì)及案例詳解-筆記
- 廣東開(kāi)放大學(xué)2024年秋《國(guó)家安全概論(S)(本專)》形成性考核作業(yè)參考答案
- 期末模擬考試卷01-2024-2025學(xué)年上學(xué)期高二思想政治課《哲學(xué)與人生》原題卷+答案卷
- 小兒靜脈留置針操作與護(hù)理
- 天津市南開(kāi)區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期期末英語(yǔ)試題
- 初中語(yǔ)文部編版七年級(jí)上冊(cè)期末復(fù)習(xí)詞語(yǔ)成語(yǔ)運(yùn)用練習(xí)題(附參考答案)
評(píng)論
0/150
提交評(píng)論