日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 基礎(chǔ)知識科普站
[導(dǎo)讀]萬物互聯(lián)和大數(shù)據(jù)技術(shù)的發(fā)展,讓我們的生活更加活色生香,其背后離不開安全、穩(wěn)定可靠的服務(wù)器系統(tǒng)。

萬物互聯(lián)和大數(shù)據(jù)技術(shù)的發(fā)展,讓我們的生活更加活色生香,其背后離不開安全、穩(wěn)定可靠的服務(wù)器系統(tǒng)。

這里我們主要是從系統(tǒng)日常行為安全的角度分享一種能滿足線上部署、能夠?qū)⑦M程或文件創(chuàng)建、網(wǎng)絡(luò)連接、網(wǎng)絡(luò)I/O、文件I/O、shell操作、數(shù)據(jù)庫操作、telnet操作、http訪問、系統(tǒng)調(diào)用(syscall)和系統(tǒng)資源信息等系統(tǒng)相關(guān)的行為信息實時采集和存儲的Linux行為監(jiān)控技術(shù)。

傳統(tǒng)監(jiān)控技術(shù)

現(xiàn)有系統(tǒng)行為監(jiān)控的實現(xiàn)技術(shù)主要采用以下方法:

1.LinuxKprobes調(diào)試技術(shù)

Kprobes調(diào)試技術(shù)是一種專為Linux內(nèi)核跟蹤和調(diào)試而設(shè)計的特定API。Kprobes允許內(nèi)核開發(fā)人員為任何內(nèi)核指令以及函數(shù)入口和函數(shù)返回處理程序安裝預(yù)處理程序和后處理程序,這些處理程序可以訪問并更改寄存器。這樣一來,內(nèi)核開發(fā)者們就可以監(jiān)控系統(tǒng)調(diào)用相關(guān)工作流程并簿記。利用Kprobes技術(shù),內(nèi)核開發(fā)人員可以在內(nèi)核的絕大多數(shù)指定函數(shù)中動態(tài)地插入探測點來收集所需的調(diào)試狀態(tài)信息;關(guān)于“調(diào)用了哪些系統(tǒng)”、“系統(tǒng)何時被調(diào)用”、“執(zhí)行是否正確以及函數(shù)的入?yún)⒑头祷刂凳鞘裁础钡纫苫蠖伎梢暂p松解決。此外,還能將這些信息屏幕輸出或轉(zhuǎn)儲日志文件。

詳談Linux系統(tǒng)之實時監(jiān)控相關(guān)技術(shù)

2.Linux內(nèi)核的tracepoints(跟蹤點)技術(shù)

內(nèi)核的tracepoint是一種輕量級的hooks技術(shù),使用高效的系統(tǒng)調(diào)用行為跟蹤及相關(guān)性能計算,對系統(tǒng)本身的性能只有微小的時間損失和空間損失。通過注冊syscall_enter_probe等定制的probe函數(shù),在發(fā)生系統(tǒng)調(diào)用相關(guān)行為后,內(nèi)核找到probe函數(shù),并將參數(shù)等信息傳遞給probe函數(shù)。只要將probe函數(shù)中記錄的相關(guān)行為信息輸出,即可達到監(jiān)控目的。

在現(xiàn)有的Linux系統(tǒng)行為監(jiān)控工具中,采用LinuxKprobes調(diào)試技術(shù)、Linux內(nèi)核的tracepoints(跟蹤點)技術(shù)的工具有:strace、ftrace、tcpdump、lsof、htop、iftop、systemTap、perf……

以上的工具通常只能作為日常內(nèi)核開發(fā)調(diào)試或日常運維分析工具來使用,主要用于開發(fā)調(diào)試或問題定位等簡單的信息輸出。然而,這些工具存在一些使用缺陷,可以總結(jié)為以下幾點:

1、僅適用于內(nèi)核開發(fā)人員調(diào)試使用或是運維人員在現(xiàn)場開啟使用,各工具特點不一,難以滿足系統(tǒng)全面監(jiān)控的需求。

2、沒有提供行為數(shù)據(jù)的良好存儲能力,只提供簡單的輸出或是日志存儲。由于沒有數(shù)據(jù)緩存功能,容易造成行為數(shù)據(jù)的丟包,不能很好地支撐事后數(shù)據(jù)回放或分析。

3、不能進行線上運行的實時部署,只能在事后或事中開啟,無法滿足運維或安全監(jiān)控的自動化要求。在高吞吐、高并發(fā)的服務(wù)器上,增加了服務(wù)器運行的負擔(dān)。

新型實時監(jiān)控緩存技術(shù)方案

針對現(xiàn)有技術(shù)無法滿足線上實時部署、影響服務(wù)器性能、行為數(shù)據(jù)不具備良好的存儲和緩存功能等缺陷,我們給大家分享一種具備實時監(jiān)控和緩存功能的技術(shù)方案。

該方案主要是采用分層結(jié)構(gòu)的模型進行架構(gòu)的,具體分為內(nèi)核probe層、基于內(nèi)存映射mmap技術(shù)的buffer層、基于本地數(shù)據(jù)庫的用戶態(tài)緩存層。具體結(jié)構(gòu)如下圖:

業(yè)務(wù)流程描述

下面通過一個具體的系統(tǒng)行為事件信息采集-緩存的例子,來說明這三層之間的業(yè)務(wù)流關(guān)系:

首先,當(dāng)用戶發(fā)起網(wǎng)絡(luò)連接服務(wù)主機操作,在服務(wù)主機系統(tǒng)中將發(fā)生socketaccpet系統(tǒng)調(diào)用中斷,服務(wù)進程陷入內(nèi)核態(tài),進入系統(tǒng)調(diào)用例程。

其次,通過Linux內(nèi)核tracepoints機制,內(nèi)核查找系統(tǒng)調(diào)用tracepoint的probe函數(shù);此時,內(nèi)核查到已經(jīng)掛載的內(nèi)核probe層的probe函數(shù),并將相應(yīng)accpet系統(tǒng)調(diào)用參數(shù)信息傳入probe函數(shù)。

接下來,內(nèi)核probe層的probe函數(shù)將傳來的系統(tǒng)調(diào)用相關(guān)信息進行分類、序列化處理后,將相關(guān)參數(shù)信息轉(zhuǎn)化為系統(tǒng)行為事件信息寫入mmapbuffer層。

最后,用戶態(tài)緩存層進程通過mmap映射技術(shù),從mmapbuffer層讀取具體的系統(tǒng)行為事件信息,將系統(tǒng)行為事件信息再次格式化為易于閱讀和分析的字符串信息,并選擇一種本地或分布式的緩存技術(shù),持久化存儲系統(tǒng)行為事件信息。

通過上述業(yè)務(wù)流程的分析,可以概括出上述三層主體功能分別為:內(nèi)核probe層采集系統(tǒng)調(diào)用信息、mmapbuffer層轉(zhuǎn)化系統(tǒng)行為事件信息、用戶態(tài)緩存層持久化系統(tǒng)行為事件信息。如下圖所示:

通過上文可以得知,本方案與目前現(xiàn)有工具或方案的主要區(qū)別在于本方案體現(xiàn)了以下兩方面:實時性、緩存持久化。

實時性

“實時性”就是指系統(tǒng)操作行為(系統(tǒng)調(diào)用)信息能夠?qū)崟r感知,“零損耗”地對信息進行采集。

我們知道系統(tǒng)行為信息的采集是由“內(nèi)核probe層”完成的,在該層中主要也是采用了Linux內(nèi)核字符設(shè)備驅(qū)動技術(shù)+Linuxtracepoints機制。通過開發(fā)Linux內(nèi)核字符設(shè)備驅(qū)動來驅(qū)動probe模塊,在probe模塊中掛載tracepoint函數(shù),采集各系統(tǒng)調(diào)用的相關(guān)信息。

為了實現(xiàn)系統(tǒng)調(diào)用信息從內(nèi)核probe層到用戶態(tài)緩存層的“Zerocopy”高效傳遞,在probe層與用戶態(tài)緩存層采用了Linux內(nèi)核驅(qū)動與用戶態(tài)進程實現(xiàn)地址共享的mmapbuffer技術(shù)方案。

緩存持久化

經(jīng)過內(nèi)核probe層采集的系統(tǒng)行為事件信息存放在mmapbuffer層中,為了實時高效地將這些事件信息持久化存儲,本方案采用了一種開源高效的本地文件數(shù)據(jù)庫引擎,該引擎占用資源少、無需安裝和管理配置、數(shù)據(jù)吞吐率每秒可達上萬條記錄。這樣輕型的持久化模塊,可以通過“零損耗”的方式部署到線上服務(wù)器,而不占用服務(wù)器資源。

從mmapbuffer層中讀取到系統(tǒng)行為事件信息,在用戶態(tài)緩存層還可以根據(jù)具體業(yè)務(wù)的要求,做一些數(shù)據(jù)處理分析,如格式化、過濾等。最終存放到文件數(shù)據(jù)庫中,從而實現(xiàn)系統(tǒng)行為事件信息的持久化緩存。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉