《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》_第1頁(yè)
《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》_第2頁(yè)
《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》_第3頁(yè)
《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》_第4頁(yè)
《云原生可觀測(cè)性技術(shù)研究與應(yīng)用》_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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

圖片引用自

Google

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

圖片引用自

Google

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ě)入

Google

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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論