專利名稱:一種基于進程掃描的非法作業(yè)監(jiān)控方法
技術領域:
本發(fā)明涉及高性能計算中的作業(yè)調度,特別涉及一種基于進程掃描的非法作業(yè)監(jiān)控方法。
背景技術:
一般高性能計算集群中,作業(yè)調度系統(tǒng)來負責作業(yè)(及作業(yè)進程)的管理。但是往往存在兩個方面的問題一是某些用戶為了自身的利益繞過作業(yè)調度系統(tǒng)去運行自己的應用從而規(guī)避記賬,而這在公共的計算中心是非法的;二是某些作業(yè)調度系統(tǒng)對于作業(yè)進程的控制不夠準確,存在進程殘留的問題。
對于上述的第一個問題,主要有兩種處理方式(1)由系統(tǒng)管理員定期檢查節(jié)點的進程狀態(tài),發(fā)現(xiàn)可疑的作業(yè)將其殺死。這種方法的問題是在大量應用的大集群上系統(tǒng)管理員的工作量比較大,而且要對當前應用非常熟悉;( 通過某種方式限制ssh/rsh的方式限制mpi通信,從而達到限制非法作業(yè)運行的目的。這種方法的問題顯而易見,對于非mpi 應用無效。
對于上述的第二個問題,目前的解決辦法基本都是由管理員通過手工或者定時任務殺進程的方式完成。
綜上所述,目前對于非法作業(yè)或者殘留進程的處理方法,要么存在明顯的方法缺陷,要么過度依賴管理員的人工干預。發(fā)明內(nèi)容
本發(fā)明的目的是通過一定的配置信息和對于作業(yè)調度系統(tǒng)、操作系統(tǒng)進程信息的綜合分析,判定作業(yè)進程的合法性,進而完成對于作業(yè)進程的預定處理操作,達到控制非法作業(yè)和殘留進程的目的。
為了實現(xiàn)上述目的,本發(fā)明提供了一種基于進程掃描的非法作業(yè)監(jiān)控方法,包括以下步驟
(1)首先,初始化進程黑名單和白名單;
(2)其次,讀取作業(yè)調度的作業(yè)詳細信息;
(3)再次,獲取所有計算節(jié)點的進程信息及網(wǎng)絡連接信息;
(4)然后,根據(jù)步驟(1)、(2), (3)中獲取的信息,按照某種匹配策略判定進程與 “黑名單”、“白名單”及作業(yè)的相關性,進而判定進程的合法性。
進程與黑名單、白名單的相關性可以通過直接檢查進程的屬性取值的方法得到, 而進程與作業(yè)的相關性則需要借助進程的“父子關系”、“會話號”、“網(wǎng)絡連接”來間接判定。
合法性判定的規(guī)則為a、與“白名單”相關的進程皆為合法進程;b、與“黑名單”相關的進程皆為非法進程;C、與作業(yè)相關的進程皆為合法進程;d、其它進程為“未知”進程, “未知”狀態(tài)連續(xù)持續(xù)多次則可判定其為非法進程;
(5)最后,根據(jù)步驟4)的判定結果和預定的處理策略對非法進程作出后繼處理,并更新進程的“未知”進程的狀態(tài)計數(shù);
(6)根據(jù)設定的時間間隔不斷重復步驟(2)到(5)。
上述技術方案中,
在所述的步驟(1)中,黑名單和白名單分別是指無需根據(jù)作業(yè)匹配的某些進程特征的取值列表,這些特征包括進程名、用戶名、用戶ID、節(jié)點名;
在所述的步驟O)中,作業(yè)詳細信息是指從作業(yè)調度系統(tǒng)取到的作業(yè)的全部信息,包括“作業(yè)ID”、“作業(yè)狀態(tài)”、“所屬用戶”、“進程數(shù)”、“頭節(jié)點名”、“首進程號”、“首進程會話號”、“占用計算節(jié)點列表”。其中“頭節(jié)點”是指啟動作業(yè)的節(jié)點,“首進程號”是指作業(yè)啟動后在第一個計算節(jié)點上的第一個作業(yè)進程的進程號,“首進程會話號”則是指“首進程”所在的會話號;網(wǎng)絡連接信息是指該進程使用的所有TCP/IP連接的描述信息,包括“協(xié)議類型”、“本地地址”、“本地端口,,、“遠程地址”、“遠程端口,,、“連接狀態(tài)”;
在所述的步驟(3)中,進程信息包括“進程號”、“父進程號”、“進程組號”、“會話號”、“用戶名”、“用戶ID”、“進程狀態(tài)”、“進程名”。
在所述的步驟中,匹配策略是指確定進程與黑名單、白名單或者作業(yè)的相關性的匹配方法。進程與白名單或黑名單的相關性可以直接判定,與作業(yè)的相關性則可能需要借助“父子進程”、“同一會話”、“網(wǎng)絡相關”等間接的關聯(lián)方式來判定。
在所述的步驟(5)中,處理策略是指對于非法進程的處理方式,包括打印、告警、 殺死、掛起等多種方法。
本發(fā)明的優(yōu)點在于
(1)綜合作業(yè)信息和操作系統(tǒng)信息(進程+網(wǎng)絡)來判定進程與作業(yè)的相關性,可以不用關心用戶應用的并行編程模型;
(2)通過多種類型的白名單、黑名單以及后繼處理策略均可靈活配置,極大簡化了管理員的工作。
圖1為本發(fā)明的實現(xiàn)方法的流程圖。
具體實施方式
下面結合附圖和具體實施方式
對本發(fā)明的方法進行說明。
集群的角色可以分為管理節(jié)點和普通計算節(jié)點兩種,分別運行“主服務進程”和 “代理服務進程”。
主服務進程負責實現(xiàn)本發(fā)明的所有主要流程,負責配置信息讀取、計算節(jié)點查詢、 進程合法性判定、后繼處理等過程;計算節(jié)點提供代理進程,負責相應服務端的請求,包括進程信息查詢、網(wǎng)絡連接信息查詢、進程處理請求(如殺死)。
具體過程下
步驟0),主服務進程啟動;
步驟1),主服務進程讀取各種配置參數(shù),包括三類參數(shù)(1)匹配參數(shù),如黑名單、 白名單;(2)運行參數(shù),如刷新間隔、未知狀態(tài)最大持續(xù)計數(shù)、節(jié)點查詢線程并發(fā)數(shù)等;(3) 后繼處理參數(shù),如是否打印判定結果、是否產(chǎn)生非法進程告警以及何種告警、是否殺死或者掛起非法進程等;
步驟2、主服務程序按照刷新時間設置睡眠一段時間。這樣做的目的一是循環(huán)的需要,而是在首次循環(huán)時,可以給其它服務啟動多留出一些啟動時間;
步驟3)查詢所有節(jié)點列表,即需要監(jiān)控的所有集群節(jié)點的列表;
步驟4)查詢節(jié)點進程相關信息,包括進程本身信息、網(wǎng)絡信息(4-2)和更新信息過程G-3)。其中(4-1)和(4-2)在實現(xiàn)上可以合并處理,(4-3)除了合并整理信息之外,主要是完成對于“未知”進程的“未知”狀態(tài)的連續(xù)計數(shù);
步驟幻匹配白名單的過程,即遍歷所有節(jié)點及所有進程,分別檢查各個進程是否與“節(jié)點”、“用戶”、“進程名”三種白名單匹配。如果匹配成功則可以判定進程合法;
步驟6)與步驟5)類似,只是匹配成功則可以判定進程為非法;
步驟7)查詢所有運行作業(yè)的信息,即查詢所有運行作業(yè)的作業(yè)ID、用戶名、首進程號、首進程會話號、頭節(jié)點、計算節(jié)點列表等作業(yè)信息;
步驟8)遍歷所有作業(yè),判定相關的進程。該過程是本發(fā)明的核心過程。主要是從作業(yè)的“首進程”出發(fā),判定所有相關的進程。其過程分三步完成
(8-1)根據(jù)作業(yè)的“頭節(jié)點”和“會話號”判定作業(yè)“首進程”的位置,并判定其為合法進程;
(8-2)遍歷“頭節(jié)點”上的所有進程,將“首進程”的所有子孫進程標記為合法進程;
(8-3)根據(jù)(8-2)的判定結果,遍歷子孫進程的網(wǎng)絡連接信息,將與之連接的對點的進程(及其子孫進程)設置為合法進程。
步驟9)遍歷各個節(jié)點的進程,將作業(yè)調度守護進程的子孫進程設置為合法進程;
步驟10)對于非法進程作出后繼處理,分為三個子步驟
(10-1)根據(jù)參數(shù)配置,打印判定結果到臨時文件供管理員查看;
(10-2)根據(jù)參數(shù)配置,進行告警處理(發(fā)郵件、發(fā)短信、聲光告警)
(10-3)根據(jù)參數(shù)配置,對非法進程進行處理(如是否殺死)
步驟11)檢查是否需要結束循環(huán)。在檢測到用戶設置結束標記的情況下退出循環(huán)過程。
權利要求
1.一種基于進程掃描的非法作業(yè)監(jiān)控方法,其特征在于所述方法包括如下步驟Si,初始化進程黑名單和白名單;S2,讀取作業(yè)調度的作業(yè)的詳細信息;S3,獲取所有計算節(jié)點的進程信息和網(wǎng)絡連接信息;S4,根據(jù)前述步驟獲取的信息,按照匹配策略判定進程與黑名單和白名單及作業(yè)的相關性,進而判定進程合法性;S5,根據(jù)上述S4步驟的判定結果和預定的處理策略對非法進程作后繼處理,并更新進程中未知進程的計數(shù),根據(jù)設定的時間間隔重復前述步驟判定。
2.如權利要求1所述的方法,其特征在于所述合法性的判定規(guī)則如下a、與“白名單”相關的進程皆為合法進程;b、與“黑名單”相關的進程皆為非法進程;C、與作業(yè)相關的進程皆為合法進程;d、其它進程為未知進程,未知狀態(tài)連續(xù)持續(xù)多次則可判定其為非法進程。
3.如權利要求1所述的方法,其特征在于所述作業(yè)詳細信息是指從作業(yè)調度系統(tǒng)取到的作業(yè)的全部信息,包括作業(yè)ID、作業(yè)狀態(tài)、所屬用戶、進程數(shù)、頭節(jié)點名、首進程號、首進程會話號和占用計算節(jié)點列表;其中,頭節(jié)點是指啟動作業(yè)的節(jié)點,首進程號是指作業(yè)啟動后在第一個計算節(jié)點上的第一個作業(yè)進程的進程號,首進程會話號是指首進程所在的會話號。
4.如權利要求1所述的方法,其特征在于所述網(wǎng)絡連接信息是指該進程使用的所有 TCP/IP連接的描述信息,包括協(xié)議類型、本地地址、本地端口、遠程地址、遠程端口和連接狀態(tài)。
5.如權利要求1所述的方法,其特征在于所述進程信息包括進程號、父進程號、進程組號、會話號、用戶名、用戶ID、進程狀態(tài)和進程名。
6.如權利要求1所述的方法,其特征在于所述匹配策略是指確定進程與黑名單、白名單或者作業(yè)的相關性的匹配方法;進程與白名單或黑名單的相關性可以直接判定,與作業(yè)的相關性則需要借助“父子進程”、“同一會話”、“網(wǎng)絡相關”間接的關聯(lián)方式判定。
全文摘要
本發(fā)明提供了一種基于進程掃描的非法作業(yè)監(jiān)控方法,首先,初始化進程黑名單和白名單;其次,讀取作業(yè)調度的作業(yè)詳細信息;再次,獲取所有計算節(jié)點的進程信息及網(wǎng)絡連接信息;然后,根據(jù)步獲取的信息,按照某種匹配策略判定進程與“黑名單”、“白名單”及作業(yè)的相關性,進而判定進程的合法性。最后,根據(jù)判定結果和預定的處理策略對非法進程作出后繼處理,并更新進程的“未知”進程的狀態(tài)計數(shù);本發(fā)明的優(yōu)點在于綜合作業(yè)信息和操作系統(tǒng)信息(進程+網(wǎng)絡)來判定進程與作業(yè)的相關性,可以不用關心用戶應用的并行編程模型;通過多種類型的白名單、黑名單以及后繼處理策略均可靈活配置,極大簡化了管理員的工作。
文檔編號G06F11/30GK102521101SQ20111040573
公開日2012年6月27日 申請日期2011年12月8日 優(yōu)先權日2011年12月8日
發(fā)明者孫國忠, 張濤, 李媛, 梁曉湛, 溫鑫, 趙歡, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司