本發(fā)明屬于計(jì)算機(jī)信息,具體涉及到一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf的系統(tǒng)活動(dòng)監(jiān)測(cè)服務(wù)性能的方法及系統(tǒng)。
背景技術(shù):
1、當(dāng)前市場(chǎng)上的基于ebpf的系統(tǒng)活動(dòng)監(jiān)測(cè)服務(wù)在安全感知業(yè)務(wù)中得到了廣泛應(yīng)用。通過訂閱不同的活動(dòng)信息(topic),可以實(shí)現(xiàn)對(duì)系統(tǒng)行為的精細(xì)化監(jiān)測(cè)。然而,這種監(jiān)測(cè)機(jī)制在性能優(yōu)化方面存在明顯不足。
2、現(xiàn)有技術(shù)中,基于ebpf的系統(tǒng)活動(dòng)監(jiān)測(cè)服務(wù)通常在系統(tǒng)啟動(dòng)時(shí)加載所有監(jiān)測(cè)邏輯,無論topic是否被訂閱,所有hook函數(shù)均會(huì)在觸發(fā)時(shí)執(zhí)行完整的處理流程,包括數(shù)據(jù)解析、過濾、格式化等操作。這種設(shè)計(jì)缺乏靈活性,當(dāng)安全感知業(yè)務(wù)未訂閱任何topic或僅訂閱少量topic時(shí),未被訂閱的topic仍會(huì)觸發(fā)內(nèi)核中的ebpf程序和用戶態(tài)的處理流程,導(dǎo)致未訂閱topic的處理負(fù)擔(dān)依然存在,引起系統(tǒng)資源的浪費(fèi),影響了系統(tǒng)的整體性能,尤其是在高頻觸發(fā)場(chǎng)景下,這種冗余處理對(duì)系統(tǒng)性能的影響尤為顯著。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法及系統(tǒng),減少未訂閱topic帶來的系統(tǒng)資源浪費(fèi),動(dòng)態(tài)調(diào)整內(nèi)核hook函數(shù)的處理邏輯,保證監(jiān)測(cè)服務(wù)的靈活性和實(shí)時(shí)性。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是這樣的:
3、一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,包括:
4、s1、新增sdk封裝接口函數(shù)供用戶進(jìn)行topic的事件訂閱,所述sdk基于grpc框架,包括grpc服務(wù)器和客戶端組件;
5、s2、設(shè)定用于監(jiān)控其他用戶訂閱/取消事件的訂閱值,新增一個(gè)保存訂閱值的ebpfmap對(duì)象b,用于動(dòng)態(tài)訂閱狀態(tài)同步;
6、s3、優(yōu)化ebpf內(nèi)核程序,根據(jù)所述訂閱值設(shè)定內(nèi)核hook函數(shù)觸發(fā)后的執(zhí)行邏輯;
7、s4、ebpf用戶態(tài)程序通過訂閱值變化動(dòng)態(tài)更新ebpf?map對(duì)象b,實(shí)現(xiàn)動(dòng)態(tài)控制。
8、進(jìn)一步的,步驟s1中所述接口函數(shù)包括訂閱事件、取消訂閱、發(fā)布事件、讀取事件,所述接口函數(shù)直接映射到grpc框架中的對(duì)應(yīng)操作,供用戶在連接到grpc客戶端后無縫調(diào)用。
9、進(jìn)一步的,步驟s2中ebpf?map對(duì)象b保存訂閱值的方法包括:
10、s201、ebpf用戶態(tài)程序啟動(dòng)后先訂閱自身為系統(tǒng)用戶,調(diào)用讀取事件的接口函數(shù)等待獲取其他用戶訂閱的事件信息;
11、s202、當(dāng)其他用戶調(diào)用訂閱事件或取消訂閱的接口函數(shù)時(shí),grpc服務(wù)器調(diào)用發(fā)布事件的接口函數(shù)將用戶信息、訂閱事件或取消訂閱的類型進(jìn)行發(fā)布,此時(shí)ebpf用戶態(tài)程序接收到訂閱值;
12、s203、ebpf用戶態(tài)程序接收到訂閱值后,寫入新增的ebpf?map對(duì)象b,供ebpf內(nèi)核程序讀取使用。
13、進(jìn)一步的,步驟s3中ebpf內(nèi)核程序的優(yōu)化包括:
14、s301、內(nèi)核hook函數(shù)被觸發(fā)后,ebpf內(nèi)核程序執(zhí)行,首先從ebpf?map對(duì)象b中讀取當(dāng)前的訂閱值并判斷當(dāng)前內(nèi)核hook函數(shù)對(duì)應(yīng)的訂閱值是否處于訂閱狀態(tài);
15、s302、若未被訂閱,則直接結(jié)束ebpf內(nèi)核程序并返回;
16、s303、若被訂閱,則繼續(xù)后續(xù)的數(shù)據(jù)處理流程。
17、進(jìn)一步的,步驟s4包括:
18、當(dāng)用戶的訂閱狀態(tài)發(fā)生變化時(shí),ebpf用戶態(tài)程序通過grpc服務(wù)器得到變化的訂閱值,動(dòng)態(tài)更新ebpf?map對(duì)象b。
19、本發(fā)明另一方面還提出了一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),包括:
20、sdk模塊:新增sdk封裝接口函數(shù)供用戶進(jìn)行topic的事件訂閱,所述sdk基于grpc框架,包括grpc服務(wù)器和客戶端組件;
21、訂閱值模塊:設(shè)定用于監(jiān)控其他用戶訂閱/取消事件的訂閱值,新增一個(gè)保存訂閱值的ebpf?map對(duì)象b,用于動(dòng)態(tài)訂閱狀態(tài)同步;
22、優(yōu)化模塊:優(yōu)化ebpf內(nèi)核程序,根據(jù)所述訂閱值設(shè)定內(nèi)核hook函數(shù)觸發(fā)后的執(zhí)行邏輯;
23、動(dòng)態(tài)控制模塊:ebpf用戶態(tài)程序通過訂閱值變化動(dòng)態(tài)更新ebpf?map對(duì)象b,實(shí)現(xiàn)動(dòng)態(tài)控制。
24、進(jìn)一步的,sdk模塊中所述接口函數(shù)包括訂閱事件、取消訂閱、發(fā)布事件、讀取事件,所述接口函數(shù)直接映射到grpc框架中的對(duì)應(yīng)操作,供用戶在連接到grpc客戶端后無縫調(diào)用。
25、進(jìn)一步的,訂閱值模塊包括:
26、等待單元:ebpf用戶態(tài)程序啟動(dòng)后先訂閱自身為系統(tǒng)用戶,調(diào)用讀取事件的接口函數(shù)等待獲取其他用戶訂閱的事件信息;
27、接收單元:當(dāng)其他用戶調(diào)用訂閱事件或取消訂閱的接口函數(shù)時(shí),grpc服務(wù)器調(diào)用發(fā)布事件的接口函數(shù)將用戶信息、訂閱事件或取消訂閱的類型進(jìn)行發(fā)布,此時(shí)ebpf用戶態(tài)程序接收到訂閱值;
28、寫入單元:ebpf用戶態(tài)程序接收到訂閱值后,寫入新增的ebpf?map對(duì)象b,供ebpf內(nèi)核程序讀取使用。
29、進(jìn)一步的,優(yōu)化模塊包括:
30、讀取單元:內(nèi)核hook函數(shù)被觸發(fā)后,ebpf內(nèi)核程序執(zhí)行,首先從ebpf?map對(duì)象b中讀取當(dāng)前的訂閱值并判斷當(dāng)前內(nèi)核hook函數(shù)對(duì)應(yīng)的訂閱值是否處于訂閱狀態(tài);
31、返回單元:若未被訂閱,則直接結(jié)束ebpf內(nèi)核程序并返回;
32、繼續(xù)單元:若被訂閱,則繼續(xù)后續(xù)的數(shù)據(jù)處理流程。
33、進(jìn)一步的,動(dòng)態(tài)控制模塊包括:
34、當(dāng)用戶的訂閱狀態(tài)發(fā)生變化時(shí),ebpf用戶態(tài)程序通過grpc服務(wù)器得到變化的訂閱值,動(dòng)態(tài)更新ebpf?map對(duì)象b。
35、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
36、1.本發(fā)明減少冗余處理:未訂閱topic對(duì)應(yīng)的內(nèi)核和用戶態(tài)處理流程被即時(shí)中斷,避免了不必要的cpu和內(nèi)存消耗。
37、2.本發(fā)明動(dòng)態(tài)調(diào)整靈活性:訂閱狀態(tài)變化時(shí),能即時(shí)調(diào)整內(nèi)核行為,無需重啟服務(wù)或手動(dòng)干預(yù)。
38、3.本發(fā)明性能優(yōu)化顯著:在高頻觸發(fā)場(chǎng)景中,系統(tǒng)資源利用率顯著提升,尤其對(duì)大規(guī)模監(jiān)控場(chǎng)景具有較大優(yōu)勢(shì)。
1.一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,其特征在于,步驟s1中所述接口函數(shù)包括訂閱事件、取消訂閱、發(fā)布事件、讀取事件,所述接口函數(shù)直接映射到grpc框架中的對(duì)應(yīng)操作,供用戶在連接到grpc客戶端后無縫調(diào)用。
3.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,其特征在于,步驟s2中ebpf?map對(duì)象b保存訂閱值的方法包括:
4.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,其特征在于,步驟s3中ebpf內(nèi)核程序的優(yōu)化包括:
5.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的方法,其特征在于,步驟s4包括:
6.一種基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),其特征在于,包括:
7.根據(jù)權(quán)利要求6所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),其特征在于,sdk模塊中所述接口函數(shù)包括訂閱事件、取消訂閱、發(fā)布事件、讀取事件,所述接口函數(shù)直接映射到grpc框架中的對(duì)應(yīng)操作,供用戶在連接到grpc客戶端后無縫調(diào)用。
8.根據(jù)權(quán)利要求6所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),其特征在于,訂閱值模塊包括:
9.根據(jù)權(quán)利要求6所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),其特征在于,優(yōu)化模塊包括:
10.根據(jù)權(quán)利要求6所述的基于動(dòng)態(tài)訂閱機(jī)制優(yōu)化ebpf監(jiān)測(cè)服務(wù)的系統(tǒng),其特征在于,動(dòng)態(tài)控制模塊包括: