隨著企業(yè)規(guī)模的增長(zhǎng),在滿足合規(guī)、信息安全的要求下,管理大量電腦并滿足多樣化的員工需求,同時(shí)確保員工能夠高效、穩(wěn)定地工作,已成為一項(xiàng)很具有挑戰(zhàn)性的任務(wù)。
公司擁有大量的員工和電腦,電腦故障量較多,雖有各種自動(dòng)化工具幫助員工自行解決,但仍有不少故障需要運(yùn)維工程師人工排障。這種被動(dòng)式的排障管理模式不僅效率較低、耗時(shí)長(zhǎng),而且容易遺漏,影響員工的辦公效率。因此需考慮采用一種更加主動(dòng)、高效的桌面運(yùn)維模式,如自動(dòng)化的故障檢測(cè)和主動(dòng)修復(fù),以提高員工的辦公效率和運(yùn)維團(tuán)隊(duì)的工作效率。
為降低公司電腦故障量,引入主動(dòng)監(jiān)測(cè)電腦健康度的機(jī)制,及時(shí)發(fā)現(xiàn)電腦存在的已知問(wèn)題,可以主動(dòng)自行修復(fù),或提醒用戶當(dāng)前電腦的健康情況,由用戶自行處置。對(duì)一些特定的故障做到提前預(yù)警并提前解決,以保證用戶能夠持續(xù)高效辦公。
3.1 架構(gòu)選型
3.2 前期業(yè)務(wù)評(píng)估和設(shè)計(jì)
3.3 實(shí)戰(zhàn)業(yè)務(wù)流程
1) 客戶端
執(zhí)行調(diào)度:客戶端用戶登錄后,Agent定時(shí)在客戶端自動(dòng)調(diào)度運(yùn)行,執(zhí)行權(quán)限為System;
下載任務(wù):客戶端Agent向服務(wù)端請(qǐng)求,獲取客戶端所需要檢測(cè)的相關(guān)任務(wù)列表(檢查項(xiàng),如:C盤剩余空間、賬號(hào)鎖定狀態(tài)等),任務(wù)列表中包含檢查項(xiàng)Key、檢測(cè)腳本名、腳本MD5值、腳本運(yùn)行參數(shù)等信息;
采集腳本:客戶端Agent獲取對(duì)應(yīng)任務(wù)列表后,首先檢查本地緩存中是否存在相同MD5的文件,如果存在則直接運(yùn)行,如果不存在則Agent發(fā)起請(qǐng)求從服務(wù)端下載最新的腳本文件檢查校驗(yàn)MD5后緩存到本地,腳本類型可為:Powershell、bat、exe等;
采集數(shù)據(jù):客戶端Agent依次調(diào)度執(zhí)行各檢查項(xiàng)對(duì)應(yīng)的腳本,采集客戶端數(shù)據(jù);
數(shù)據(jù)上報(bào):所有檢測(cè)項(xiàng)數(shù)據(jù)采集完成后Agent將數(shù)據(jù)加密后上報(bào)到Server端,由Server端進(jìn)行解密、數(shù)據(jù)校驗(yàn)和存儲(chǔ);
修復(fù)腳本:Server端對(duì)采集數(shù)據(jù)結(jié)果檢查,校驗(yàn)后會(huì)將檢查結(jié)果異常需修復(fù)的項(xiàng),下發(fā)到客戶端Agent,返回?cái)?shù)據(jù)中包含了檢查項(xiàng)Key、修復(fù)腳本名、修復(fù)腳本MD5值、腳本參數(shù)、異常處理、超時(shí)時(shí)間類型等信息,參數(shù)類似采集腳本;
異常處理:修復(fù)腳本信息中,異常處理類型有“直接修復(fù)”、 “提醒修復(fù)”、“僅提醒”三種處理方案(處理類型可再后臺(tái)頁(yè)面配置)。Agent依次執(zhí)行所有“直接修復(fù)”相關(guān)的腳本,執(zhí)行后修復(fù)結(jié)果統(tǒng)一上報(bào)Server端進(jìn)行修復(fù)結(jié)果存儲(chǔ)。“提醒修復(fù)”、“僅提醒”相關(guān)異常信息在桌面右下角彈框提醒,并對(duì)“提醒修復(fù)”類型的檢查項(xiàng)開(kāi)放用戶確認(rèn)自助修復(fù),用戶自助修復(fù)的結(jié)果同時(shí)上報(bào)給Server端進(jìn)行數(shù)據(jù)存儲(chǔ);
任務(wù)結(jié)束:數(shù)據(jù)采集完成后Agent退出運(yùn)行,關(guān)閉與服務(wù)端的會(huì)話,釋放系統(tǒng)資源;
2) Server端
下發(fā)采集任務(wù):Server端緩存所有檢查項(xiàng)信息(檢測(cè)項(xiàng)信息中會(huì)包含腳本的MD5值,這在下載流程中會(huì)用到),緩存保存2分鐘,當(dāng)接收到客戶端任務(wù)查詢請(qǐng)求時(shí),優(yōu)先去緩存中查詢,緩存中沒(méi)有則去數(shù)據(jù)庫(kù)查詢并更新緩存,即能保證查詢的速度,同時(shí)減輕數(shù)據(jù)庫(kù)的壓力;
下發(fā)采集腳本:檢測(cè)腳本&修復(fù)腳本均為小文件,以BLOB二進(jìn)制大對(duì)象存數(shù)據(jù)庫(kù),同時(shí)記錄每個(gè)腳本的MD5值,與檢查項(xiàng)一致,腳本信息同時(shí)緩存,客戶端請(qǐng)求下載文件時(shí),根據(jù)請(qǐng)求體中的MD5值匹配腳本;
數(shù)據(jù)校驗(yàn)保存:每個(gè)檢查項(xiàng)均可獨(dú)立配置檢測(cè)結(jié)果的標(biāo)準(zhǔn)值和校驗(yàn)邏輯,系統(tǒng)對(duì)“標(biāo)準(zhǔn)值校驗(yàn)邏輯”列表中的校驗(yàn)項(xiàng)實(shí)現(xiàn)了不同的匹配邏輯,客戶端上報(bào)檢測(cè)結(jié)果時(shí),Server端根據(jù)檢查項(xiàng)配置的校驗(yàn)規(guī)則對(duì)每條檢查數(shù)據(jù)進(jìn)行校驗(yàn),所有采集數(shù)據(jù)計(jì)算出正常/異常后保存數(shù)據(jù)庫(kù),數(shù)據(jù)采用了異步隊(duì)列的方式落庫(kù)存儲(chǔ),提高接口的時(shí)效性,減低客戶端接口響應(yīng)時(shí)長(zhǎng),同時(shí)所有檢測(cè)異常的數(shù)據(jù),Server端將相關(guān)檢查項(xiàng)信息(包括修復(fù)腳本信息、異常處理類型等)返回給客戶端進(jìn)行進(jìn)一步的修復(fù)工作;
保存修復(fù)結(jié)果:Server端接收客戶端上報(bào)給修復(fù)結(jié)果,Server端保存修復(fù)結(jié)果;
3) 運(yùn)維管理
全鏈路最終交付對(duì)象是桌面運(yùn)維團(tuán)隊(duì),運(yùn)維管理模塊必不可少,全鏈路提供的管理頁(yè)面包含了檢查項(xiàng)、腳本、灰度管理、修復(fù)日志、檢測(cè)結(jié)果查詢等模塊。
檢查項(xiàng)管理:工程師可以根據(jù)業(yè)務(wù)情況自定義新增檢查項(xiàng),檢查項(xiàng)關(guān)鍵字段包括CheckKey(檢查項(xiàng)唯一標(biāo)識(shí))、開(kāi)關(guān)(檢測(cè)項(xiàng)是否可用)、提醒類型(直接修復(fù)、提醒修復(fù)、提醒)、實(shí)時(shí)查詢(檢查項(xiàng)是否實(shí)時(shí)查詢,只有非實(shí)時(shí)查詢類的檢查項(xiàng)才會(huì)在客戶端采集數(shù)據(jù))、灰度策略(檢測(cè)項(xiàng)上線或變更時(shí)的灰度功能,保證檢查項(xiàng)的平穩(wěn)上線)、標(biāo)準(zhǔn)值(每個(gè)檢查項(xiàng)的檢測(cè)結(jié)果標(biāo)準(zhǔn)值或標(biāo)準(zhǔn)值集合)、校驗(yàn)邏輯(包括大于、小于、等于、不包含、被包含等,用于校驗(yàn)數(shù)據(jù)結(jié)果);
腳本管理:該模塊統(tǒng)一處理客戶端檢測(cè)、修復(fù)腳本。上傳后的腳本會(huì)關(guān)聯(lián)檢查項(xiàng)CheckKey和腳本類型(檢測(cè)腳本、修復(fù)腳本),以關(guān)聯(lián)檢查腳本、修復(fù)腳本和檢查項(xiàng)的關(guān)聯(lián)關(guān)系。此模塊還關(guān)聯(lián)到具體灰度策略(每個(gè)腳本均有獨(dú)立灰度功能)、操作系統(tǒng)選項(xiàng)(包含Windows、Mac、Linux,目前只用到Windows,其它為未來(lái)擴(kuò)展預(yù)留)、腳本參數(shù)(如hostname、username等,用于客戶端執(zhí)行腳本時(shí)的固定參數(shù))和超時(shí)時(shí)間(限制客戶端腳本的執(zhí)行時(shí)間,保證采集過(guò)程的正常進(jìn)行)。為確保流程完整性和安全性,腳本上傳會(huì)啟動(dòng)審批流程,只有審批通過(guò)的腳本才能投入生產(chǎn);
灰度策略管理:用于支持檢查項(xiàng)和腳本的生產(chǎn)灰度,灰度維度包括:?jiǎn)T工、郵件組、團(tuán)隊(duì)、工種、國(guó)家、員工批次、電腦名,灰度策略包含黑名單和白名單,黑白名單可以多維度單獨(dú)配置,并支持黑白名單同時(shí)生效,可提高灰度場(chǎng)景的靈活性;
員工批次管理:?jiǎn)T工批次是灰度策略中的一種,可以靈活自定義某些沒(méi)有職級(jí)或組織結(jié)構(gòu)關(guān)聯(lián)關(guān)系的員工為一個(gè)批次,該邏輯可以覆蓋補(bǔ)齊所有灰度場(chǎng)景,進(jìn)一步提升灰度策略的靈活性;
數(shù)據(jù)查詢:運(yùn)維管理界面提供數(shù)據(jù)采集結(jié)果的查詢、篩選,每條結(jié)果包機(jī)器名、用戶、檢查項(xiàng)、采集結(jié)果、校驗(yàn)結(jié)果、上報(bào)時(shí)間等;
其他:除以上的主要功能以外,全鏈路運(yùn)維模塊還提供了一些額外的板塊,包含提醒配置(用于記錄客戶端用戶選擇提醒冷卻周期)、權(quán)限管理(用于配置和管理每個(gè)管理板塊的用戶權(quán)限,提高系統(tǒng)的安全性)等;
4) 安全措施
客戶端Agent和Server端之間的數(shù)據(jù)交互采用雙向不對(duì)稱加密方式,客戶端和Server端分別持有一對(duì)公鑰和私鑰(Agent擁有Agent的私鑰+Server端的公鑰,Server端擁有Agent的公鑰+Server端的私鑰)。并增加Server端Token鑒權(quán),實(shí)現(xiàn)會(huì)話機(jī)制,當(dāng)Server端接收到Agent請(qǐng)求時(shí),需要驗(yàn)證Token的有效性及時(shí)效性;
公司辦公環(huán)境復(fù)雜(有內(nèi)網(wǎng)、獨(dú)立組網(wǎng)、零信任網(wǎng)絡(luò)環(huán)境等),員工辦公電腦可能同時(shí)存在于各種網(wǎng)絡(luò)環(huán)境中,為了保證Agent能在各種環(huán)境內(nèi)正常工作,Server端同時(shí)開(kāi)通內(nèi)、外網(wǎng)域名,Agent第一個(gè)請(qǐng)求首先使用內(nèi)網(wǎng)域名,無(wú)法通信則自動(dòng)切換外網(wǎng)域名,本次會(huì)話中的后續(xù)請(qǐng)求均使用確定好的域名。該機(jī)制實(shí)現(xiàn)了Agent在各種網(wǎng)絡(luò)環(huán)境的自動(dòng)適配,保證了系統(tǒng)的可用性;
每次Agent調(diào)度執(zhí)行相關(guān)腳本時(shí),都計(jì)算本地緩存文件和Sever端接口中的MD5,確保本地緩存文件不會(huì)被篡改,避免高權(quán)限執(zhí)行危險(xiǎn)命令和程序;
3.4 全鏈路業(yè)務(wù)流程圖(FLT)
3.5 員工電腦健康度查詢
3.6 困難和挑戰(zhàn)
1) 采集數(shù)據(jù)量激增,數(shù)據(jù)庫(kù)性能挑戰(zhàn)
隨著檢查項(xiàng)和接入PC數(shù)量增加,累計(jì)的數(shù)據(jù)量急劇增加(超過(guò)5000W),數(shù)據(jù)庫(kù)的性能和系統(tǒng)穩(wěn)定受到嚴(yán)峻挑戰(zhàn)。經(jīng)過(guò)仔細(xì)研究后優(yōu)化,采用數(shù)據(jù)增量更新策略,同一PC、用戶、檢測(cè)項(xiàng)的結(jié)果,如果與前一次執(zhí)行結(jié)果一致,則只更新數(shù)據(jù)的采集時(shí)間,只有在數(shù)據(jù)不一致時(shí)才新增數(shù)據(jù)記錄。通過(guò)額外字段標(biāo)識(shí)記錄采集結(jié)果是否為當(dāng)前活躍結(jié)果,并配合每個(gè)客戶端Agent執(zhí)行日志,統(tǒng)計(jì)每次Agent采集明細(xì),此機(jī)制在保證數(shù)據(jù)完整性的同時(shí),大大減緩了數(shù)據(jù)量的增長(zhǎng),據(jù)統(tǒng)計(jì)數(shù)據(jù)量減少超過(guò)70%;
2) 實(shí)時(shí)檢查項(xiàng)查詢邏輯優(yōu)化
實(shí)時(shí)檢查項(xiàng)的數(shù)據(jù)均通過(guò)外部接口調(diào)用獲取,工程師在線查詢各個(gè)檢測(cè)項(xiàng)的執(zhí)行結(jié)果時(shí)后臺(tái)實(shí)時(shí)觸發(fā)接口調(diào)用查詢,對(duì)查詢的時(shí)效性要求較高,隨著實(shí)時(shí)檢查項(xiàng)數(shù)量的增加,查詢速度逐漸難以滿足工程師的要求。采用多個(gè)實(shí)時(shí)檢查項(xiàng)并行查詢機(jī)制,并配合查詢結(jié)果緩存策略,提高了查詢速度。
3) 彈框顯示GUI交互問(wèn)題處理
全鏈路Agent以System權(quán)限調(diào)度運(yùn)行,System權(quán)限啟動(dòng)的應(yīng)用不能直接與當(dāng)前用戶的GUI進(jìn)行交互,導(dǎo)致用戶客戶端右下角的彈框提示也無(wú)法顯示。對(duì)Agent調(diào)度程序進(jìn)行了優(yōu)化改造,拆分為FLT-System.exe和FLT-User.exe,分別以system權(quán)限運(yùn)行和當(dāng)前登錄用戶賬號(hào)運(yùn)行,F(xiàn)LT-System.exe主要負(fù)責(zé)執(zhí)行系統(tǒng)級(jí)別的檢測(cè)修復(fù)腳本(例如:網(wǎng)絡(luò)信息檢測(cè)),F(xiàn)LT-User.exe負(fù)責(zé)執(zhí)行用戶級(jí)別的檢測(cè)修復(fù)腳本,同時(shí)用戶彈框界面通過(guò)FLT-User.exe喚起。
Agent改造邏輯如下:
Agent拆分的具體設(shè)計(jì)圖:
客戶端交互彈窗:
4) 客戶端覆蓋率提升
全鏈路工具FLT-User.exe使用當(dāng)前登錄用戶權(quán)限啟動(dòng),故在注銷狀態(tài)下無(wú)法運(yùn)行,導(dǎo)致注銷狀態(tài)下的客戶端數(shù)據(jù)無(wú)法采集,為了提升客戶端的覆蓋面,再次對(duì)全鏈路Agent調(diào)度邏輯進(jìn)行優(yōu)化。注銷狀態(tài)時(shí)FLT-System.exe和FLT-User.exe均采用System權(quán)限執(zhí)行,同時(shí)限制只運(yùn)行System權(quán)限相關(guān)的腳本(User權(quán)限相關(guān)腳本可能會(huì)執(zhí)行異常,故在此情況下不再調(diào)度),注銷狀態(tài)下無(wú)需彈框提醒,GUI交互無(wú)問(wèn)題;
5) 運(yùn)維故障快速定位和解決
全鏈路工具覆蓋公司所有Windows客戶端,全鏈路運(yùn)維工作很容易造成線上故障,風(fēng)險(xiǎn)較大,例如:工程師無(wú)意修改錯(cuò)檢查項(xiàng)標(biāo)準(zhǔn)值,就會(huì)導(dǎo)致采集的數(shù)據(jù)產(chǎn)生大量的異常值,對(duì)運(yùn)維工作會(huì)造成極大的負(fù)面影響,且排障難度較大。為能快速定位和解決運(yùn)維故障,在運(yùn)維管理系統(tǒng)中增加了運(yùn)維日志模塊(審計(jì)日志),記錄后臺(tái)頁(yè)面操作的所有日志,可以快速查詢所有的配置修改,為系統(tǒng)長(zhǎng)期穩(wěn)定運(yùn)行打好基礎(chǔ)。
審計(jì)日志查詢頁(yè)面如下:
6) 采集鏈路腳本執(zhí)行情況統(tǒng)計(jì)
由于采集數(shù)據(jù)是通過(guò)客戶端單線程隊(duì)列順序執(zhí)行腳本實(shí)現(xiàn),腳本執(zhí)行的耗時(shí)會(huì)直接影響采集的效率,再對(duì)所有采集工作耗時(shí)情況統(tǒng)計(jì)分析,正常情況單次采集工作的總耗時(shí)平均在2min~5min,非正常的采集耗時(shí)有的超過(guò)1小時(shí),這種非正常采集降低了全鏈路的可用性和準(zhǔn)確性。對(duì)FLT-System、FLT-User調(diào)度腳本采集數(shù)據(jù)的邏輯上進(jìn)行優(yōu)化,新增腳本執(zhí)行耗時(shí)統(tǒng)計(jì)、腳本執(zhí)行超時(shí)限制(在腳本管理后臺(tái)可配置),同時(shí)數(shù)據(jù)采集記錄表新增“采集耗時(shí)”字段,記錄檢測(cè)項(xiàng)腳本執(zhí)行的時(shí)間,為后續(xù)各個(gè)檢查、修復(fù)腳本的優(yōu)化提供數(shù)據(jù)支持。同時(shí)對(duì)執(zhí)行超時(shí)的腳本進(jìn)行主動(dòng)中止,避免過(guò)多消耗客戶端資源。優(yōu)化后提升了整個(gè)采集工作的效率,進(jìn)一步完善了全鏈路工具。
通過(guò)全鏈路工具的運(yùn)營(yíng),實(shí)現(xiàn)了電腦故障的自動(dòng)檢測(cè)、提前發(fā)現(xiàn)、自動(dòng)修復(fù),改變了以往用戶報(bào)障后被動(dòng)式排障的運(yùn)營(yíng)管理模式。通過(guò)自動(dòng)化故障檢測(cè)和主動(dòng)修復(fù)機(jī)制,全面提高了電腦的穩(wěn)定性和安全性,整體人工事件量降低明顯,提高了員工滿意度。
全鏈路工具上線后,使得IT運(yùn)維團(tuán)隊(duì)能夠通過(guò)技術(shù)手段,更加有效的管理全公司數(shù)萬(wàn)臺(tái)用途各異、配置不同的辦公電腦,大大提高運(yùn)維團(tuán)隊(duì)的工作效率。并且提供了準(zhǔn)實(shí)時(shí)的電腦運(yùn)行數(shù)據(jù)監(jiān)控,同時(shí)為網(wǎng)絡(luò)質(zhì)量檢測(cè)、辦公電腦數(shù)據(jù)收集等業(yè)務(wù)場(chǎng)景提供了有力的支撐。確保滿足多樣化員工需求和信息安全的前提下,能夠高效、穩(wěn)定的開(kāi)展工作。
系統(tǒng)上線前后,各類PC主要問(wèn)題,周平均故障量下降20%-30%。運(yùn)維團(tuán)隊(duì)人工服務(wù)量下降超過(guò)10%,業(yè)務(wù)效果顯著。
上線前后主要檢查修復(fù)項(xiàng)故障量下降:
全鏈路檢測(cè)項(xiàng)范圍內(nèi)客戶端健康度提升:
五、未來(lái)
全鏈路數(shù)據(jù)采集腳本的執(zhí)行需要依賴于客戶端的環(huán)境,相同的腳本在不同的客戶端執(zhí)行后可能有不同的結(jié)果(成功或者異常),后續(xù)需要具體分析腳本異常問(wèn)題,提升數(shù)據(jù)有效性。在未來(lái)需要持續(xù)不懈地優(yōu)化和完善系統(tǒng),不斷突破性能的極限,賦予全鏈路更加強(qiáng)大的功能,為企業(yè)提供更為卓越的桌面系統(tǒng)運(yùn)營(yíng)解決方案。
本文鏈接:http://www.tebozhan.com/showinfo-26-103572-0.html干貨 | 攜程IT桌面全鏈路工具研發(fā)運(yùn)營(yíng)實(shí)踐
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com