商可易,岳崇毅,徐 航,李明達,丁雪松,梁 靜
(國家電網黑龍江省電力有限公司信息通信公司,哈爾濱 150001)
現階段電力行業網絡與信息系統運維多采取手動模式進行,存在重復工作量大,無法保證規范性及準確性等問題[1-2]。利用腳本將信息運維工作中的常用、重復操作進行打包后自動化執行,可以使運維工作效率、準確率提高,并減輕運維人員批量操作的工作量[3]。電力行業中信息系統的自動化運維可推動信息通信新技術與電力業務融合創新應用、新成果新技術的發展,打造能源互聯新形態,有力支撐公司智慧物聯體系建設。
自動化運維的一個綜合應用是自動化檢修,該應用將傳統手動進行的分設備、分步驟檢修操作優化為預先編排檢修操作并按時自動批量執行,大幅提高檢修操作效率和準確率、降低系統不可用時長[4]。
自動化運維體系建設工作遵循國家電網公司技術支撐體系總體設計、功能規范和接口標準開展;依據“運維自動化三年發展規劃”,部署落實網絡安全與信息支撐系統自動化運維工具建設工作。自動化運維建設是從運維實際需要出發開展的自主研發工作,基于“多場景微工具應用”,運維工作的自動化是以腳本為主要工具,快速、精準解決運維問題。開發團隊、運維團隊全員參與自動化運維各工具的建設,推進建運一體化DevOps融合,提升自主運維水平[5-6]。
自動化運維以統一Agent為基礎,將其部署于各類網絡信息設備,控制底層服務器、數據庫、中間件等各類運維對象,并開展狀態監控、運行數據采集等工作;通過微工具管理模塊實現對微工具的入庫、下發執行、執行結果反饋整理等功能;以統一Agent和微工具為支撐,通過資源配置中心,面向各種運維場景建設自動化部署、磁盤預警分析、自動化巡檢、標準化檢查等一系列微應用[7]。自動化運維體系架構如圖1所示。

圖1 自動化運維體系架構Fig.1 Framework of automated operation and maintenance system
統一Agent是實現自動化運維的基礎組件,統一Agent是基于服務器的代理Agent,主要包括監控指標的采集、命令或腳本工具的執行、周圍環境新設備的發現等功能,是自動化運維工作的最基礎保障;采用無端口設計,避免了服務上的端口沖突問題,并防止通過Agent端口入侵主機;采用“一收多發”機制,對指標的一次采集可向多個系統提供,降低了服務器的壓力和資源的消耗,降低對業務系統的影響;統一Agent對內部開源,保證采集數據的可信可靠。對交換機、防火墻等不能安裝Agent的網絡設備,可通過SSH、SNMP、RS485等通信協議對其進行管理控制,實現了對基礎環境設備的橫向擴展。
統一Agent目前已通過中國電科院全面測試,包括:功能測試、代碼安全測試、性能測試和滲透測試,并在所有生產環境服務器(包括物理服務器和虛擬機)上全面部署運行,實現對主機的狀態采集、操作代理、遠程配置推送、熱升級等功能。
統一Agent的應用,使故障的監控告警時間從原來的5min縮短為1min,在資源足夠的情況下,可縮短到1s,實現實時故障告警。
目前已部署的Agent具備主機基本信息、主機運行狀態、Oracle、Weblogic運行狀態等300余項指標的采集能力,已基本滿足為自動化監控、自動化部署、自動化配置以及自動化資源調控等自動化運維需求。后續指標采集數量可隨工作需要持續增加,逐步實現為各中心對運維對象的數據請求、控制請求提供唯一、合法的代理,使各中心、各工具能夠安全、有序的對運維對象進行管理。
統一Agent目前總共接入設備1283個,執行命令8千余萬次,采集指標400億余次,日消息處理量90萬條,日均工具執行數70次,截至目前運行正常。統一Agent同時進行了功能的橫向擴展,基于不同的采集協議進行Docker封裝,實現針對不能安裝統一Agent的網絡設備進行管理,1個Docker容器負責1個運維對象,獨立工作互不影響。
資源配置中心是對所有自動化運維對象進行配置管理的微應用,其使用數據動態建模技術對包括服務器、交換機、路由器、安全設備、終端設備、操作系統、業務系統、中間件、數據庫、機房、機柜等運維對象類型進行信息與配置的納管、更新,以及運維對象之間的相互關系,運維人員可根據實際的工作情況,隨時可新增運維對象的配置項,通過修改采集腳本工具完成配置項的自我采集與更新,而且資源配置中心能夠發現配置項與實際運行環境中的參數不符的情況,交由運維人員進行確認并更新資源配置中心或者是實際的運維環境。資源配置中心的目的是為自動化運維提供準確的基礎數據,保證自動化運維工具的準確執行。目前已在生產環境上部署,運行穩定無異常。
資源配置中心根據動態建模的方式實現了對運維對象類別、屬性的自定義,滿足對快速發展的軟、硬件資源的及時響應和運維人員對配置屬性的工作需求[8-9]。目前已完成運維對象類型37個,屬性模型315個,屬性值140余萬條,共發現屬性沖突1.6萬條,
微工具應用是基于統一Agent的腳本工具執行微應用,是微工具的集中運行、集中存儲、集中管理平臺,包括工具的注冊、審批、授權、執行、查詢統計等功能,運維人員可上傳、編輯腳本工具,授權通過后可同時批量在多臺服務器上同步執行,解決了手動逐一登錄服務器上執行腳本的重復性工作,極大地提高了日常運維工作的效率。微工具應用會保存所有微工具,實現工具的分享與傳承,而且能夠對所有工具進行統計分析,促使運維人員不斷的優化、完善微工具,逐步提高微工具的準確性和穩定性,為自動化運維工作的落地打下良好基礎。目前已在生產環境上部署,運行穩定無異常。
微工具應用是運維人員開發工具、分享工具、授權工具、執行工具、瀏覽工具的工作控制臺,它完善了人員、腳本、工具三個維度的授權,優化了操作頁面。目前已有腳本工具100余項,執行次數總計1.8萬余次。微工具應用可提高手動運維質量、促進自動化運維落地。該應用各項新功能將持續開發完善。
微工具是以腳本為主,包括插件、微服務等多種形式的運維工具,實現采集、監控、部署、配置管理、診斷分析等各種運維功能[10-11]。
在微工具建設方面,根據國網信通部運維自動化三年推進計劃,開發Linux、Weblogic、Oracle等運維對象的配置采集管理、服務器性能分析、風險分析等11個類別共60余項腳本工具,并隨工作需要持續增加。通過微工具應用,能夠快速實現腳本工具在多個服務器上批量執行,對腳本采集結果進行自動匯總分析,極大提高了運維工作效率,是自動化運維建設的加速器和啟動機。
整合多個微工具的采集、運行數據后,開發人機界面,形成便于運維人員操作的自動化運維微應用,包括:中間件風險分析、Agent管理、虛擬機資源分析、標準化工藝檢查、進程白名單、Ceph監控等自動化運維微應用,這些應用基于統一Agent及資源配置中心,借助自動化測試微應用實現。
2.4.1 自動化測試微應用
自動化測試微應用是將在運系統生產環境中間件、數據庫服務器的配置、服務等自動抽取到測試環境中,或搭建與生產系統環境接近1:1狀態的測試環境,通過“場景+工具”模式實現信息系統自動化測試,為微工具在生產環境安全、穩定運行提供保障;按角色權限分配測試環境,提供各自獨立空間;與生產環境通過IP圍欄進行隔離;保障生產環境;可重復銷毀與恢復,用后釋放資源,實現復用。目前該應用已投入使用,支撐腳本微工具的自動化檢查、調試、跟蹤以及自動化檢修工作。
2.4.2 自動化檢修微應用
自動化檢修微應用是運維人員根據檢修方案編排檢修步驟與腳本,包括文件的上傳、下載、校驗、創建、修改、刪除、備份、解壓等功能,基于自動化測試搭建的測試環境進行測試,驗證無問題后待檢修窗口定時進行預先編排好的自動化檢修過程,并將關鍵節點及檢修結果通過即時通訊及短信及時報送相關人員,幫助運維人員更準確、快速的完成檢修工作,進一步提高業務系統的無故障時長。目前已經完成了開發工作,并于2019年7月9日完成了S6000(網絡與信息安全風險監控預警平臺)系統的自動化檢修工作。
運維人員可于正常工作時段進行自動化檢修的預編排工作:首先將檢修目標信息系統的操作系統、中間件、數據庫等基礎環境以及應用服務及數據的快照鏡像進行自動抽取,或在測試環境云虛擬機中按1∶1比例進行搭建,為各項檢修操作提供與真實情況相同的測試環境;在專用的測試環境中對檢修具體步驟指令進行細致的編排,按步驟填入自動化檢修應用界面;點擊右上角測試執行即在測試環境執行所有檢修步驟,根據反饋運行狀態進行進一步的調試,出現問題可及時回退和恢復測試環境,不會對真實生產環境造成影響。測試通過確認無誤后,運維人員可根據實際情況預設檢修窗口時段在生產系統自動執行檢修操作或手動進行分步操作。自動化檢修應用界面如圖2所示。

圖2 自動化檢修應用交互界面Fig.2 Interactive interface of automated maintenance application
自動化檢修設計流程如下:
首先,將常見檢修操作步驟,包括文件的上傳、下載、校驗、創建、修改、刪除、備份、解壓等功能,利用自動化運維腳本工具打包封裝,供自動化檢修應用編排執行隨時調用;
其次,搭建自動化檢修測試環境,測試環境的建立分為兩種方式:第一種是按照真實生產環境1∶1進行自動抽取,將生產環境主機上的系統或數據庫等文件依靠中間主機復制到實驗環境主機,兩種環境網絡隔離,故可在實驗環境中完全模擬生產環境IP地址而無需修改配置文件,直接執行啟動腳本實現從生產環境到實驗環境的自動抽取工作;第二種是在測試環境中按1∶1比例進行搭建,將云上運行的主機進行快照備份后的鏡像文件導入測試環境云內并啟動運行,或提前配置搭建步驟,上傳搭建所需文件,編排步驟并執行即可自動搭建實驗環境。
再次,通過人機交互界面,根據下發或自主安排的檢修方案,按詳細步驟編排檢修腳本,并在自動化測試環境按步驟執行,進行測試驗證,且可重復回退修改。
最后,按檢修窗口定時在生產環境執行編排好的自動化檢修操作腳本,并實時反饋每步執行結果給相關運維人員,確保檢修過程順利完成。
自動化檢修流程如下圖3所示。

圖3 自動化檢修流程圖Fig.3 Flow chart of automated maintenance
S6000系統的自動化檢修工作,將傳統手段用時約120 min的停運檢修操作縮短為15 min,節省了檢修時間約105 min,檢修時長降低87.5%。S6000系統可用率提高到99.96%。
自動化檢修提高了工作效率,減少了系統停運時長,大幅提高了S6000系統的可用率。如圖4、圖5所示。

圖4 自動化檢修與傳統檢修時長對比圖Fig.4 Comparison of operation time with and without automated maintenance

圖5 采用自動化檢修前后S6000系統可用率對比圖Fig.5 Comparison of S6000 system availability ratio before and after automated maintenance
自動化運維工具建設下一步計劃,繼續加大自動化運維與生產相結合,提高系統自動化運維比率,即進一步加大自動化運維的覆蓋度,加強與實際生產工作,尤其是安全防護工作的結合,從項目建設初期對其運行環境進行管控,保證相應自動化工具齊備;通過建轉運標準化檢查生成指標及檢查報告,解決人為手工檢查的耗時耗力、重復工作量大的問題。在系統運行期間,通過各類工具進行自動化巡檢、監控,自動化檢修、自愈等工作,進一步降低運維人員工作壓力,提高運維操作效率和精度,將自動化運維技術覆蓋到項目全周期生產工作的每一個環節中,保證系統的穩定運行。
資源配置中心模型與數據臺賬梳理工作也將持續推進,按照設備類型逐步完成對設備臺賬及服務配置的梳理工作。微工具應用中的運維腳本將繼續完善,逐步實現日常運維工作的全覆蓋。統一Agent的功能將持續優化,不斷擴展統一Agent管理與控制的覆蓋范圍。