日志管理在云中和在數(shù)據(jù)中心同樣重要。本文將評估公有云的日志管理工具,如AWS 的CloudWatch和谷歌的Stackdriver。
日志文件記錄了硬件系統(tǒng)、企業(yè)服務(wù)、應(yīng)用和用戶的動(dòng)作和響應(yīng)。IT管理員通過分析和審查日志活動(dòng)來提高性能、排除問題,發(fā)現(xiàn)惡意活動(dòng)等等。
但是日志可用性在公有云領(lǐng)域是處于落后的。客戶在傳統(tǒng)意義上對于云提供商機(jī)出架構(gòu)的可見性如果有的話也是極少的。幸運(yùn)的是,公有云提供商正在意識到日志在故障排除,安全和合規(guī)性的方面都是極為關(guān)鍵的,而如亞馬遜網(wǎng)絡(luò)服務(wù)(AWS),微軟Azure和谷歌之類的供應(yīng)商現(xiàn)在都開始提供某種類型的日志管理服務(wù)。
下面我們來仔細(xì)了解一下公有云的日志管理工具,以及如何從這些服務(wù)中收獲更多的價(jià)值。
主流公有云提供商提供了哪些日志管理工具?
大多數(shù)主要的公有云供應(yīng)商都提供了日志管理服務(wù)。考慮到價(jià)格,整合程度和功能方面的差異,在將它們添加到你的每月云賬單之前,請先對這些日志管理工具進(jìn)行評估。
AWS提供CloudWatch日志,其目的是監(jiān)控和解決虛擬服務(wù)器的問題,如彈性計(jì)算云(EC2)實(shí)例,以及那些有著原生或自定義日志文件的應(yīng)用。日志文件經(jīng)由API編程傳輸?shù)紸WS 的CloudWatch日志,并進(jìn)行近實(shí)時(shí)監(jiān)測。用戶可以設(shè)置日志數(shù)據(jù)觸發(fā)報(bào)警來提醒他們,例如,當(dāng)錯(cuò)誤達(dá)到一定的數(shù)量,或者使用指標(biāo)生成圖表或報(bào)告。
谷歌云平臺(GCP)提供完全托管的Stackdriver日志服務(wù),旨在對GCP實(shí)例中產(chǎn)生的日志數(shù)據(jù),事件指標(biāo)進(jìn)行存儲(chǔ),監(jiān)控,搜索,分析和產(chǎn)生實(shí)時(shí)警報(bào)。谷歌Stackdriver服務(wù),目前仍處于測試階段,目標(biāo)是與AWS EC2實(shí)例以及任何來源的自定義日志數(shù)據(jù)兼容。
微軟則采用了更混合的方式來進(jìn)行日志管理。不同于將日志管理作為Azure服務(wù)組合的一個(gè)菜單項(xiàng)來提供,微軟將運(yùn)營管理套件作為System Center的一個(gè)附加組件來提供,這樣便可以攝取,關(guān)聯(lián)和可視化所有Windows和Linux的跨本地,Azure和AWS實(shí)例的工作負(fù)載所產(chǎn)生的日志數(shù)據(jù)。
云日志管理中的事件、流和組是什么?
像AWS之類的供應(yīng)商將日志分解為事件、流和組。日志一般由事件或系統(tǒng),服務(wù)或應(yīng)用所生成的特定活動(dòng)組成。日志文件必須在運(yùn)行中才能捕獲事件。而日志事件通常包含一個(gè)標(biāo)注事件的日期和時(shí)間的時(shí)間戳,以及描述該事件的原始消息。
相關(guān)的日志條目通常會(huì)組成一個(gè)流。例如,一個(gè)流可以顯示某個(gè)特定的服務(wù)器實(shí)例所產(chǎn)生的所有事件。管理員可以監(jiān)控特定的流來更好的了解資源的行為。他們也可以刪除舊的流來為更多的日志釋放存儲(chǔ)空間。
設(shè)定云日志的保留期限
管理員通常可以選擇日志組的保留期限,范圍從一天到10年,或者選擇設(shè)定為永不過期。但是日志數(shù)據(jù)量可能使巨大的,尤其當(dāng)由很多個(gè)日志組的時(shí)候。所以我們應(yīng)該選擇一個(gè)適當(dāng)?shù)谋A羝谙蓿軌蛱峁┳銐虻暮弦?guī)性要求遵循,并同時(shí)讓云日志存儲(chǔ)的成本可控。
為了更好的管理,相關(guān)的日志流會(huì)被分組。每一個(gè)具有相同配置的流,如管理權(quán)限,保留期限和其他特點(diǎn)等,通常會(huì)關(guān)聯(lián)到一組。
日志管理工具提供查找事件并將其轉(zhuǎn)換成數(shù)據(jù)點(diǎn)的指標(biāo)篩選器。例如,管理員可以創(chuàng)建一個(gè)計(jì)算日志組內(nèi)列出的無效登錄嘗試的指標(biāo)過濾器。這有助于識別可能的攻擊或惡意的登錄活動(dòng)。在針對日志建立指標(biāo)之后,還可以在滿足某些條件時(shí)創(chuàng)建一個(gè)警報(bào)。
公有云與本地的日志管理工具和實(shí)踐有何不同?
在本地日志管理和公有云提供商的日志管理服務(wù)之間并不存在深刻的分歧。然而,也有一些小細(xì)節(jié)是必須注意的。
首先,你可能需要使用不止一個(gè)工具。理想情況下,一個(gè)單一的日志管理工具可以同時(shí)用于本地部署和云部署。供應(yīng)商可以獲取本地日志并將內(nèi)容添加到云部署收集到的日志中。不過,底層的日志管理工具,如AWS CloudWatch日志和Google Stackdriver Logging,是云服務(wù)提供商的服務(wù);這對于那些已經(jīng)對本地日志管理工具做了大筆投資的企業(yè)來說會(huì)是一件痛苦的事。
其次,只靠云提供商自身的日志管理工具可能不夠。組織可能需要額外的云服務(wù),如存儲(chǔ)、消息傳遞和警報(bào),以創(chuàng)建一個(gè)合適的日志管理環(huán)境。然而,每一個(gè)附加的功能都可能會(huì)增加每月的日志管理成本。
最后,成功的云日志系統(tǒng)可能需要IT團(tuán)隊(duì)在記錄日志的每個(gè)云實(shí)例上安裝代理。不是所有的應(yīng)用程序或服務(wù)都會(huì)生成日志文件,即便那些會(huì)產(chǎn)生日志的應(yīng)用的日志在格式和細(xì)節(jié)上也會(huì)有所不同。這使得日志管理工具處理日志內(nèi)容變得困難。使用一個(gè)統(tǒng)一的代理以一致的方式捕獲事件,并按正確的格式將內(nèi)容傳遞給日志工具。
此外,還需制定一個(gè)處理代理更新的計(jì)劃;日志管理服務(wù)通常使用代理從部署的云實(shí)例上收集和傳遞數(shù)據(jù)到日志服務(wù)。日志代理可能會(huì)定期更新以反映日志服務(wù)的API、功能集或依賴項(xiàng)的變更。了解如何檢查代理的版本,如何在運(yùn)行中更新代理,以及如何調(diào)整代理所在的虛擬機(jī)鏡像文件。