本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)。
背景技術(shù):
近年來,內(nèi)網(wǎng)安全問題日益成為人們關(guān)注的焦點(diǎn),據(jù)統(tǒng)計(jì),超過50%的網(wǎng)絡(luò)安全問題源自于內(nèi)部人員所為。因此,為了滿足對(duì)內(nèi)部信息安全監(jiān)控的需要,主機(jī)監(jiān)控系統(tǒng)應(yīng)運(yùn)而生,它能夠有效控制內(nèi)部用戶對(duì)終端主機(jī)和網(wǎng)絡(luò)的使用,防止內(nèi)部違規(guī)行為的發(fā)生,同時(shí)具有強(qiáng)大的日志審計(jì)功能,以便相關(guān)人員日后審查、取證。
目前,主機(jī)監(jiān)控系統(tǒng)主要基于c/s(客戶端/服務(wù)端)和b/s(瀏覽器/服務(wù)端)的使用模式,管理員通過瀏覽器訪問服務(wù)端,并對(duì)內(nèi)網(wǎng)中的終端進(jìn)行監(jiān)控和管理。但隨著內(nèi)網(wǎng)計(jì)算機(jī)終端的日益增多、網(wǎng)絡(luò)結(jié)構(gòu)的愈發(fā)復(fù)雜,由此也引發(fā)了一些問題:1)網(wǎng)絡(luò)負(fù)載加劇,當(dāng)網(wǎng)絡(luò)請(qǐng)求超過服務(wù)器并發(fā)處理能力后,會(huì)造成網(wǎng)絡(luò)延遲甚至中斷;2)主機(jī)和用戶的逐漸增多,使得與用戶相關(guān)聯(lián)的安全策略變得繁雜,進(jìn)而增加了管理員的運(yùn)維管理難度;3)對(duì)于開發(fā)和部署人員而言,為了確保軟件升級(jí)不影響當(dāng)前系統(tǒng)正常運(yùn)行,每次新功能的開發(fā)、測(cè)試、交付,都會(huì)耗費(fèi)大量時(shí)間和精力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng),用于解決上述現(xiàn)有技術(shù)的問題
本發(fā)明的一種基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng),其中,包括:服務(wù)端和客戶端,服務(wù)端包括:nginx負(fù)載均衡模塊、api接入點(diǎn)模塊、etcd服務(wù)發(fā)現(xiàn)模塊、jenkins持續(xù)部署環(huán)境模塊以及微服務(wù)模塊;客服端包括插件管理器以及多個(gè)插件;jenkins持續(xù)部署環(huán)境模塊,用于接收各個(gè)微服務(wù)的升級(jí)代碼,并對(duì)應(yīng)對(duì)各微服務(wù)進(jìn)行代碼更新、測(cè)試和部署,以及在服務(wù)端安裝新的微服務(wù);微服務(wù)模塊,存儲(chǔ)有多個(gè)微服務(wù),每個(gè)微服務(wù)用于實(shí)現(xiàn)服務(wù)端的一項(xiàng)獨(dú)立功能,向插件管理器提供功能服務(wù),并對(duì)系統(tǒng)管理員提供服務(wù)端的操作接口;etcd服務(wù)發(fā)現(xiàn)模塊,用于獲取每個(gè)微服務(wù)的更新信息以及新增加的微服務(wù)信息,并將微服務(wù)的訪問接口發(fā)送給api接入點(diǎn);api接入點(diǎn)模塊,用于提供服務(wù)訪問接口,客戶端通過url的形式經(jīng)api接入點(diǎn)模塊調(diào)用相應(yīng)的微服務(wù);nginx負(fù)載均衡模塊,用于將多個(gè)客戶端的同一類型的訪問,分散給同一微服務(wù)的多個(gè)副本,來實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡;插件管理器用于為各個(gè)插件的運(yùn)行提供基礎(chǔ)環(huán)境并進(jìn)行管理;插件是終端安全監(jiān)控功能的最終執(zhí)行單元,用于讀取服務(wù)端下發(fā)的安全策略,并依據(jù)安全策略中描述對(duì)終端進(jìn)行管控。
根據(jù)本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的一實(shí)施例,其中,微服務(wù)的載體通過docker實(shí)現(xiàn)。
根據(jù)本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的一實(shí)施例,其中,微服務(wù)包括:資產(chǎn)管理微服務(wù)模塊,用于維護(hù)內(nèi)網(wǎng)的資產(chǎn)數(shù)據(jù),每臺(tái)終端被認(rèn)為是一個(gè)資產(chǎn),進(jìn)行資產(chǎn)的注冊(cè)、登記和銷毀;組織管理微服務(wù)模塊,用于維護(hù)內(nèi)網(wǎng)的組織機(jī)構(gòu)和用戶人員信息;策略管理微服務(wù)模塊,用于維護(hù)著安全策略信息,提供安全策略的生成、修改、刪除和拉取功能;審計(jì)管理微服務(wù)模塊,用于維護(hù)著內(nèi)網(wǎng)終端所產(chǎn)生的審計(jì)數(shù)據(jù)信息,支持對(duì)終端日志的搜集、整理、呈現(xiàn)以及導(dǎo)入導(dǎo)出;文件管理微服務(wù)模塊,用于維護(hù)內(nèi)網(wǎng)終端安全運(yùn)行所需的各類文件數(shù)據(jù),包括安全策略執(zhí)行所依賴的插件以及終端上的各類補(bǔ)丁文件。
根據(jù)本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的一實(shí)施例,其中,插件管理器包括:配置模塊,用于維護(hù)客戶端和服務(wù)端的基本配置信息,包括服務(wù)端ip地址、端口以及url,并且向服務(wù)端發(fā)起注冊(cè)請(qǐng)求,以便服務(wù)端將其納為資產(chǎn);控制模塊,負(fù)責(zé)將服務(wù)端下發(fā)的安全策略調(diào)度給相應(yīng)的插件,并且控制插件的啟動(dòng)和停止,在終端的正常使用過程中,該模塊將各個(gè)插件始終維持在運(yùn)行狀態(tài);升級(jí)模塊,負(fù)責(zé)接收來自服務(wù)端的插件和補(bǔ)丁,執(zhí)行插件和補(bǔ)丁的安裝或更新,以及對(duì)整個(gè)客戶端進(jìn)行升級(jí);通信模塊,負(fù)責(zé)維持與服務(wù)端的通信數(shù)據(jù)連接,將終端信息、插件信息以及日志信息發(fā)送至服務(wù)端。
根據(jù)本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的一實(shí)施例,其中,插件包括:外設(shè)控制插件,用于對(duì)usb設(shè)備、串行設(shè)備、無線網(wǎng)卡、光驅(qū)以及打印機(jī)的使用進(jìn)行允許或禁止的控制;軟件控制插件,用于對(duì)終端上各類軟件的運(yùn)行進(jìn)行運(yùn)行或禁止的控制;網(wǎng)絡(luò)控制插件,用于基于ip、端口或者協(xié)議類型,對(duì)終端的網(wǎng)絡(luò)訪問進(jìn)行運(yùn)行或禁止的控制;文件控制插件,用于對(duì)終端某個(gè)目錄下的文件的操作行為進(jìn)行控制。
本發(fā)明基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng),充分考慮主機(jī)監(jiān)控系統(tǒng)高可用性的原則,綜合利用客戶端的插件架構(gòu)和服務(wù)端的微服務(wù)架構(gòu),采用開源、成熟、高效的技術(shù)和框架,彌補(bǔ)了傳統(tǒng)主機(jī)監(jiān)控系統(tǒng)在軟件架構(gòu)上的不足,有效減少了管理員的管理難度,增加了開發(fā)運(yùn)維人員的開發(fā)部署效率。具體表現(xiàn)為:(1)客戶端采用插件架構(gòu),使客戶端軟件具備良好的功能可擴(kuò)展性,插件之間彼此獨(dú)立,可按需進(jìn)行定制,并且支持彈性管理,插件可以獨(dú)立地安裝、加載和卸載,使得服務(wù)端統(tǒng)一推送部署更為方便;(2)服務(wù)端采用微服務(wù)架構(gòu),每個(gè)微服務(wù)都是一個(gè)獨(dú)立的部署單元,這些單元支持分布式,借助容器機(jī)制,保證互相隔離、彼此解耦,并且通過持續(xù)集成工具,每個(gè)微服務(wù)都可以進(jìn)行持續(xù)集成式的開發(fā),可以做到實(shí)時(shí)部署,不間斷升級(jí),同時(shí)在服務(wù)端入口引入負(fù)載均衡機(jī)制,保障了web應(yīng)用服務(wù)的高并發(fā)和高容錯(cuò)性;(3)通過引入優(yōu)秀的第三方軟件技術(shù)框架,使得主機(jī)監(jiān)控系統(tǒng)具備跨平臺(tái)、可靠性強(qiáng)的特點(diǎn)。
附圖說明
圖1所示為本發(fā)明基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的模塊圖;
圖2所示為本發(fā)明的主機(jī)監(jiān)控系統(tǒng)的一微服務(wù)的架構(gòu)圖;
圖3所示為插件和插件管理器的示意圖;
圖4所示為本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)典型部署使用流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。
圖1所示為本發(fā)明基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)的模塊圖,如圖1所示,本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)主要由服務(wù)端和客戶端兩大部分組成,包括:服務(wù)端1、客戶端2、客戶端3。其中,服務(wù)端1以軟件的形式部署在物理服務(wù)器或虛擬機(jī)之上。
如圖1所示,服務(wù)端1包括nginx負(fù)載均衡模塊11、api接入點(diǎn)模塊12、etcd服務(wù)發(fā)現(xiàn)模塊13,jenkins持續(xù)部署環(huán)境模塊14,以及多個(gè)微服務(wù)模塊。客服端1和2包括插件管理器以及多個(gè)插件。
如圖1所示,為滿足數(shù)量龐大的終端所產(chǎn)生的高并發(fā)的要求,在服務(wù)端1入口處,通過nginx負(fù)載均衡模塊11,其采用nginx(一種高性能的http和反向代理服務(wù)器),用于將多個(gè)客戶端的同一類型的訪問,分散給同一微服務(wù)的多個(gè)副本,來實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。
如圖1所示,api接入點(diǎn)12提供rest(一種萬維網(wǎng)軟件架構(gòu)風(fēng)格,目的是便于不同軟件/程序在網(wǎng)絡(luò)中互相傳遞信息)風(fēng)格的服務(wù)訪問接口,客戶端2和3的的插件管理器或系統(tǒng)管理員可以通過url的形式調(diào)用相應(yīng)的微服務(wù),可以更高效地利用緩存來提高響應(yīng)速度。
如圖1所示,對(duì)于服務(wù)端1的應(yīng)用服務(wù),諸如組織管理、審計(jì)管理、策略管理等,按照業(yè)務(wù)功能將其分割分成微服務(wù)的形式,使其具有松耦合、可擴(kuò)展、高可用、持續(xù)部署的特性。每個(gè)微服務(wù)都采用開源的docker容器技術(shù)來實(shí)現(xiàn),每個(gè)docker是一個(gè)可靈活配置并管理的獨(dú)立運(yùn)行環(huán)境,內(nèi)部運(yùn)行著一個(gè)具有特定功能的微服務(wù)。該方式能夠在降低服務(wù)器訪問壓力的同時(shí),增加微服務(wù)之間的隔離性,避免互相影響,由此確保整個(gè)服務(wù)端的可靠。
如圖1所示,etcd服務(wù)發(fā)現(xiàn)模塊13獲取每個(gè)微服務(wù)的更新信息以及新增加的微服務(wù)信息,并將微服務(wù)的訪問接口發(fā)送給api接入點(diǎn)12。etcd服務(wù)發(fā)現(xiàn)模塊13是一個(gè)高可用的“鍵/值”存儲(chǔ)服務(wù),每個(gè)微服務(wù)自己隨機(jī)獲取一至多個(gè)可用端口并監(jiān)聽,當(dāng)微服務(wù)啟動(dòng)完畢時(shí)開始向etcd服務(wù)發(fā)現(xiàn)模塊13注冊(cè)自己的服務(wù)地址,而微服務(wù)的使用者則從etcd服務(wù)發(fā)現(xiàn)模塊13中獲取所需服務(wù)的所有可用地址,從而實(shí)現(xiàn)微服務(wù)發(fā)現(xiàn)。
如圖1所示,為了支持微服務(wù)的持續(xù)開發(fā)部署,本發(fā)明采用jenkins持續(xù)部署環(huán)境模塊14作為持續(xù)部署工具,jenkins持續(xù)部署環(huán)境模塊14對(duì)docker支持友好,并有著強(qiáng)大的擴(kuò)展能力和豐富的插件,可以實(shí)現(xiàn)各種復(fù)雜的流程。當(dāng)開發(fā)人員提交新功能的代碼后,jenkins持續(xù)部署環(huán)境模塊14能夠捕捉到代碼的更新,并自動(dòng)對(duì)代碼進(jìn)行打包、測(cè)試和部署,及在服務(wù)端1安裝新的微服務(wù),由此縮短微服務(wù)的發(fā)布周期,減輕開發(fā)和運(yùn)維人員的工作量。
如圖1所示,微服務(wù)模塊,存儲(chǔ)有多個(gè)微服務(wù),每個(gè)微服務(wù)用于實(shí)現(xiàn)服務(wù)端的一項(xiàng)獨(dú)立功能,向插件管理器提供功能服務(wù),并對(duì)系統(tǒng)管理員提供服務(wù)端的操作接口,docker是微服務(wù)的具體載體;
如圖1所示,客戶端2和3插件管理器即是所謂的軟件微內(nèi)核,它為各個(gè)插件的運(yùn)行提供基礎(chǔ)環(huán)境并對(duì)其進(jìn)行管理。多個(gè)插件是終端安全監(jiān)控功能的最終執(zhí)行單元,它讀取服務(wù)端下發(fā)的安全策略,并依據(jù)安全策略中描述對(duì)終端進(jìn)行管控。
圖2所示為本發(fā)明的主機(jī)監(jiān)控系統(tǒng)的一微服務(wù)的架構(gòu)圖,如圖2所示,從業(yè)務(wù)功能的角度出發(fā),本發(fā)明中服務(wù)端的微服務(wù)包括以下五種,并且支持?jǐn)U展,包括:
1)資產(chǎn)管理微服務(wù),維護(hù)著內(nèi)網(wǎng)中的資產(chǎn)數(shù)據(jù),每臺(tái)終端被認(rèn)為是一個(gè)資產(chǎn),資產(chǎn)的注冊(cè)、登記和銷毀,均由該微服務(wù)實(shí)現(xiàn)。
2)組織管理微服務(wù),維護(hù)著內(nèi)網(wǎng)中的組織機(jī)構(gòu)和用戶人員信息,用戶人員的查詢、添加、修改和刪除,均由該微服務(wù)實(shí)現(xiàn)。
3)策略管理微服務(wù),維護(hù)著安全策略信息,安全策略能夠指導(dǎo)插件的運(yùn)行,該微服務(wù)提供安全策略的生成、修改、刪除和拉取功能。常見的安全策略包括軟件控制策略、外設(shè)控制策略、網(wǎng)絡(luò)控制策略、文件控制策略。
4)審計(jì)管理微服務(wù),維護(hù)著內(nèi)網(wǎng)終端所產(chǎn)生的審計(jì)數(shù)據(jù)信息,支持對(duì)終端日志的搜集、整理、呈現(xiàn)、導(dǎo)入導(dǎo)出。能夠方便管理員及時(shí)、準(zhǔn)確地獲悉當(dāng)前各類違規(guī)告警信息。
5)文件管理微服務(wù)維護(hù)著內(nèi)網(wǎng)終端安全運(yùn)行所需的各類文件數(shù)據(jù),包括安全策略執(zhí)行所依賴的插件,以及終端上的各類補(bǔ)丁文件。
圖3所示為插件和插件管理器的示意圖,參考圖1、圖2以及圖3所示,客戶端軟件遵循插件架構(gòu),由插件管理器和多個(gè)插件1-n兩部分組成,插件架構(gòu),指的是軟件的內(nèi)核相對(duì)較小,主要功能和業(yè)務(wù)邏輯都通過插件實(shí)現(xiàn)。本發(fā)明里,插件管理器即是所謂的軟件微內(nèi)核,它為各個(gè)插件的運(yùn)行提供基礎(chǔ)環(huán)境。
插件管理器主要包括以下四個(gè)模塊:
1)配置模塊23,負(fù)責(zé)維護(hù)客戶端和服務(wù)端的基本配置信息,包括服務(wù)端ip地址、端口、url等,并且能夠向服務(wù)端發(fā)起注冊(cè)請(qǐng)求,以便服務(wù)端將其納為資產(chǎn);
2)控制模塊21,負(fù)責(zé)將服務(wù)端下發(fā)的安全策略調(diào)度給相應(yīng)的插件,并且控制插件的啟動(dòng)和停止,在終端的正常使用過程中,該模塊將各個(gè)插件始終維持在運(yùn)行狀態(tài);
3)升級(jí)模塊24,負(fù)責(zé)接收來自服務(wù)端的插件和補(bǔ)丁,并在本地執(zhí)行插件和補(bǔ)丁的安裝或更新,如果補(bǔ)丁為客戶端升級(jí)包,該模塊能夠?qū)φ麄€(gè)客戶端進(jìn)行升級(jí);
4)通信模塊22,負(fù)責(zé)維持與服務(wù)端的通信數(shù)據(jù)連接,將終端信息、插件信息、日志信息等發(fā)送至服務(wù)端。
如圖1至圖3所示,內(nèi)網(wǎng)環(huán)境中的終端類型各式各樣,有基于x86架構(gòu)的windows/linux操作系統(tǒng),也有基于arm或mips架構(gòu)的國(guó)產(chǎn)化操作系統(tǒng)等。插件管理器采用了django(一個(gè)基于python的輕量級(jí)開源web應(yīng)用框架)技術(shù),將自身轉(zhuǎn)變成終端上運(yùn)行的小型web服務(wù),在終端和服務(wù)端之間,起到數(shù)據(jù)處理和通信代理的作用。
如圖1至圖3所示,插件是終端安全監(jiān)控功能的最終執(zhí)行單元,它讀取服務(wù)端下發(fā)的安全策略,并依據(jù)安全策略中描述對(duì)終端進(jìn)行管控。從功能角度劃分,插件包括外設(shè)控制插件、軟件控制插件、網(wǎng)絡(luò)控制插件、文件控制插件等,并且擴(kuò)展方便。典型的插件描述如下。
1)外設(shè)控制插件25:對(duì)usb設(shè)備、串行設(shè)備、無線網(wǎng)卡、光驅(qū)、打印機(jī)等的使用進(jìn)行“允許”或“禁止”的控制。
2)軟件控制插件26:對(duì)終端上各類軟件的運(yùn)行進(jìn)行“運(yùn)行”或“禁止”的控制。
3)網(wǎng)絡(luò)控制插件27:基于ip、端口或者協(xié)議類型,對(duì)終端的網(wǎng)絡(luò)訪問進(jìn)行“運(yùn)行”或“禁止”的控制。
4)文件控制插件28:對(duì)終端某個(gè)目錄下的文件的操作行為進(jìn)行控制,該操作行為包括文件讀、寫、重命名、刪除等。
以外設(shè)控制插件25為例,當(dāng)服務(wù)端1下發(fā)一條“禁止使用光驅(qū)”的安全策略后,經(jīng)由插件管理器的數(shù)據(jù)轉(zhuǎn)發(fā),外設(shè)控制插件25會(huì)讀取到該條策略,從而啟動(dòng)該插件中的光驅(qū)監(jiān)控程序,一旦用戶在終端上插入光驅(qū),監(jiān)控程序會(huì)捕捉到該操作并及時(shí)進(jìn)行阻斷,使得光驅(qū)失效,同時(shí),外設(shè)控制插件25會(huì)生成一條日志,記錄該用戶的違規(guī)操作。
每個(gè)插件都是一套獨(dú)立的程序執(zhí)行環(huán)境,為了方便開發(fā)人員進(jìn)行插件功能擴(kuò)展,插件須遵循一定的編寫規(guī)范和執(zhí)行規(guī)范來適配插件管理器。在本發(fā)明中,編寫完成的插件至少需要包括以下六個(gè)單元:
1)插件的可執(zhí)行程序;
2)插件執(zhí)行所依賴的庫文件;
3)插件的唯一特征值;
4)插件運(yùn)行時(shí)用來存放日志的目錄;
5)插件運(yùn)行時(shí)需要讀取的策略文件;
6)插件運(yùn)行過程中用來存放進(jìn)程標(biāo)識(shí)符的目錄。
和常見的軟件服務(wù)一樣,插件的執(zhí)行由以下四類命令組成:
1)start,啟動(dòng)插件,并保持運(yùn)行狀態(tài);
2)stop,停止插件;
3)restart,重新啟動(dòng)運(yùn)行中的插件;
4)status,查詢插件當(dāng)前狀態(tài),即運(yùn)行或停止。
圖4所示為本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)典型部署使用流程圖,參考圖1至圖4,本發(fā)明的基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng),其典型部署使用流程包括以下步驟:
步驟1:服務(wù)端1部署微服務(wù)并提供服務(wù)接口。
(1)選擇linux作為服務(wù)器操作系統(tǒng),在其上安裝docker容器環(huán)境,將五個(gè)基礎(chǔ)微服務(wù)分別部署在五個(gè)docker容器之中,五個(gè)微服務(wù)包括:資產(chǎn)管理、組織管理、策略管理、審計(jì)管理和文件管理。微服務(wù)之間彼此隔離,并且共享同一套數(shù)據(jù)庫。
(2)微服務(wù)通過etcd服務(wù)發(fā)現(xiàn)模塊13向外提供rest風(fēng)格的api接入點(diǎn),方便終端插件通過url的形式對(duì)微服務(wù)進(jìn)行資源訪問。對(duì)資源的操作包括獲取、創(chuàng)建、修改和刪除,這些操作正好對(duì)應(yīng)http協(xié)議提供的get、post、put和delete方法。
步驟2:終端2和3部署客戶端軟件,包含插件管理器。
(1)雖然終端軟硬件平臺(tái)類型多樣,但都支持python運(yùn)行環(huán)境,因此在終端可以很方便地部署基于python編寫的插件管理器,它包括四個(gè)模塊:通信模塊22、配置模塊23、升級(jí)模塊24和控制模塊21,并且在本地使用sqlite數(shù)據(jù)庫,用于存放配置信息、用戶信息、日志信息等。
(2)客戶端軟件在初次部署時(shí)包含基本的功能插件,包括外設(shè)控制插件25和網(wǎng)絡(luò)控制插件27,能夠針對(duì)客戶需求,進(jìn)行默認(rèn)的終端控制,比如在初裝時(shí)就禁止終端使用usb存儲(chǔ)設(shè)備,或者禁止終端連接互聯(lián)網(wǎng)。
步驟3:終端2和3向服務(wù)端1進(jìn)行注冊(cè)并維持通信連接。
(1)在終端上,通過插件管理器的配置模塊23,配置需要連接的服務(wù)端1的ip地址和端口號(hào),并通過通信模塊22向服務(wù)端1發(fā)送連接請(qǐng)求。
(2)終端和服務(wù)端1建立連接之后,終端2和3通過通信模塊22向服務(wù)端1發(fā)送終端使用者的身份信息,執(zhí)行注冊(cè)操作。
(3)服務(wù)端1收到終端的注冊(cè)信息,服務(wù)端1的組織管理微服務(wù)會(huì)判斷收到的終端用戶身份信息是否正確,若不正確,反饋錯(cuò)誤信息;若正確,資產(chǎn)管理微服務(wù)將當(dāng)前發(fā)起注冊(cè)請(qǐng)求的終端轉(zhuǎn)換成在網(wǎng)資產(chǎn),并在后續(xù)管理中統(tǒng)一進(jìn)行維護(hù)。
步驟4:服務(wù)端1通過下發(fā)策略對(duì)終端2和3進(jìn)行管控。
(1)服務(wù)端1通過策略管理微服務(wù)新建一條安全策略,將該策略綁定至一個(gè)或多個(gè)資產(chǎn),此時(shí)策略管理微服務(wù)會(huì)將該安全策略以json格式推送至被綁定的終端。
(2)終端插件管理器中的通信模塊22接收到安全策略后,將安全策略轉(zhuǎn)發(fā)至控制模塊21,后者根據(jù)安全策略中的插件描述信息將安全策略保存至對(duì)應(yīng)的插件的策略目錄下。
(3)終端插件讀取策略目錄下的安全策略文件,并自動(dòng)觸發(fā)start命令啟動(dòng)插件,此時(shí)終端后臺(tái)中該插件的主機(jī)監(jiān)控進(jìn)程保持運(yùn)行。
(4)若終端用戶違規(guī)操作,例如當(dāng)前安全策略為“禁止使用光驅(qū)”,而用戶插入了光盤,此時(shí)外設(shè)控制插件25會(huì)捕捉到該操作,并立即進(jìn)行阻斷。同時(shí)插件會(huì)自動(dòng)生成審計(jì)日志,記錄違規(guī)操作的時(shí)間、主客體、描述、結(jié)果等信息,并將審計(jì)日志存儲(chǔ)于插件的日志目錄。
(5)終端插件管理器的通信模塊22循環(huán)讀取插件日志目錄中的日志,將日志信息發(fā)送至服務(wù)端1的審計(jì)管理微服務(wù),后者進(jìn)行日志數(shù)據(jù)的過濾、分析、匹配和保存,并且提供可視化的數(shù)據(jù)呈現(xiàn),方便管理員進(jìn)行查看和追溯。
步驟5:服務(wù)端1擴(kuò)展微服務(wù),終端2和3擴(kuò)展插件。
(1)當(dāng)服務(wù)端1功能需要擴(kuò)展時(shí),由開發(fā)人員向代碼版本控制系統(tǒng)(如svn、git等)提交新功能的代碼,jenkins持續(xù)部署工具將會(huì)自動(dòng)捕捉到該代碼的提交并將其進(jìn)行打包,然后運(yùn)行并測(cè)試打包后的代碼。若代碼測(cè)試通過,則生成基于該新功能的微服務(wù),并將其部署在新創(chuàng)建的docker容器中進(jìn)行發(fā)布;若代碼測(cè)試未通過,則反饋至開發(fā)人員進(jìn)行修改。
(2)新發(fā)布的微服務(wù)啟動(dòng)完畢后,向etcd服務(wù)發(fā)現(xiàn)模塊13注冊(cè)自身的服務(wù)地址,etcd服務(wù)發(fā)現(xiàn)模塊13將微服務(wù)名稱、微服務(wù)url地址等信息同步至終端插件管理器的配置模塊23,便于之后的服務(wù)訪問。
(3)若終端某個(gè)插件需要更新,此時(shí)服務(wù)端1通過文件管理微服務(wù)上傳修改后的插件,終端插件管理器中的升級(jí)模塊24檢測(cè)到當(dāng)前插件的唯一特征值和服務(wù)端1的插件唯一特征值不一致,于是向服務(wù)端1的文件管理微服務(wù)發(fā)起插件下載的請(qǐng)求。插件下載成功后,將收到的插件替換當(dāng)前插件,并保留當(dāng)前的安全策略和當(dāng)前插件的運(yùn)行狀態(tài),以此完成終端插件更新。
(4)若客戶端需要更新,此時(shí)服務(wù)端1通過文件管理微服務(wù)上傳客戶端軟件安裝包,終端插件管理器中的升級(jí)模塊24檢測(cè)到當(dāng)前客戶端軟件的版本號(hào)低于服務(wù)端上的安裝包版本號(hào),于是向服務(wù)端1的文件管理微服務(wù)發(fā)起安裝包下載的請(qǐng)求。安裝包下載成功后,升級(jí)模塊24停止當(dāng)前客戶端軟件主進(jìn)程,隨后覆蓋安裝新的客戶端軟件,并啟動(dòng)新的主進(jìn)程,以此完成客戶端軟件更新。文件管理微服務(wù)用于向客戶端提供軟件安裝包,更新數(shù)據(jù)等文件。
本發(fā)明提出一種基于微服務(wù)架構(gòu)的主機(jī)監(jiān)控系統(tǒng)。通過對(duì)內(nèi)網(wǎng)環(huán)境中終端軟件、用戶、安全策略等關(guān)鍵要素的細(xì)粒度集中管控,實(shí)現(xiàn)信息實(shí)體安全可信、信息流程規(guī)范可控的基礎(chǔ)計(jì)算環(huán)境。一方面,在客戶端采用插件架構(gòu),即將終端安全功能設(shè)計(jì)成“插件管理器+插件”的形式,由同一個(gè)插件管理器管理多個(gè)插件,以此來降低插件之間的耦合性,實(shí)現(xiàn)終端安全功能模塊的動(dòng)態(tài)調(diào)整;另一方面,在服務(wù)端采用微服務(wù)架構(gòu),將固有統(tǒng)一的服務(wù)進(jìn)行功能性解耦,拆分成若干個(gè)微服務(wù),每個(gè)微服務(wù)均是自治和獨(dú)立的,可以動(dòng)態(tài)調(diào)節(jié)服務(wù)的資源分配,從而應(yīng)對(duì)網(wǎng)絡(luò)訪問壓力,同時(shí),任何服務(wù)均可獨(dú)立于其它服務(wù)完成部署,從而達(dá)到快速且可持續(xù)性的部署目標(biāo)。
本發(fā)明充分考慮主機(jī)監(jiān)控系統(tǒng)高可用性的原則,綜合利用客戶端的插件架構(gòu)和服務(wù)端的微服務(wù)架構(gòu),采用開源、成熟、高效的技術(shù)和框架,彌補(bǔ)了傳統(tǒng)主機(jī)監(jiān)控系統(tǒng)在軟件架構(gòu)上的不足,有效減少了管理員的管理難度,增加了開發(fā)運(yùn)維人員的開發(fā)部署效率。具體表現(xiàn)為:(1)客戶端采用插件架構(gòu),使客戶端軟件具備良好的功能可擴(kuò)展性,插件之間彼此獨(dú)立,可按需進(jìn)行定制,并且支持彈性管理,插件可以獨(dú)立地安裝、加載和卸載,使得服務(wù)端統(tǒng)一推送部署更為方便;(2)服務(wù)端采用微服務(wù)架構(gòu),每個(gè)微服務(wù)都是一個(gè)獨(dú)立的部署單元,這些單元支持分布式,借助容器機(jī)制,保證互相隔離、彼此解耦,并且通過持續(xù)集成工具,每個(gè)微服務(wù)都可以進(jìn)行持續(xù)集成式的開發(fā),可以做到實(shí)時(shí)部署,不間斷升級(jí),同時(shí)在服務(wù)端入口引入負(fù)載均衡機(jī)制,保障了web應(yīng)用服務(wù)的高并發(fā)和高容錯(cuò)性;(3)通過引入優(yōu)秀的第三方軟件技術(shù)框架,使得主機(jī)監(jiān)控系統(tǒng)具備跨平臺(tái)、可靠性強(qiáng)的特點(diǎn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。