黃浩
(四川中電啟明星信息技術有限公司 四川成都 610225)
近年來,企業在虛擬化云計算產品上實際應用逐漸增多,并且同時也存在物理服務器資源和容器資源,這也就造成了資源的混合模式。從企業戰略發展看,為了解決資源在混合模式下的管理、監控告警、端不統一的問題,勢必建立一個完善的統一端的運維系統。并且,在未來企業為了適應在互聯網應用的高效運維與運營,此系統還需要提供足夠的自動化運維場景,以實現一個完備的自動化多端運維系統[1-2]。
企業隨著業務及云應用的不斷發展,傳統Linux單機操作系統上的運維操作如果直接移植到集群與云環境上,則會導致不限于以下列出的諸多問題:(1)大量周期性的運維操作需要在大量節點操作系統上重復性地執行;(2)混合模式下還有網絡等細節問題需要格外注意,稍有不慎就可能造成服務宕機。
從公司戰略發展看,為適應公司未來在面向互聯網應用方面的快速部署與升級、高效運維與運營,勢必建立一個統一的自動化運維平臺,對公司絕大多數資源進行統籌管理,不僅能夠進行周期性、重復性的運維操作,還能進行自動化的運維,從而最大限度地提高運維效率。
(1)直接效益:公司未來每年的互聯網業務運營運維成本將減少。(2)間接效益:自動化運維系統的構建將大大提升公司的運維管理效率,同時能夠助力公司企業品牌的提升與影響。
平臺主要分為多個功能中心。即資源配置中心、資源納管中心、監控告警中心、作業中心、場景中心、安全中心。
資源配置中心用于構建各類資源的基礎模型,為納管等功能提供了高度靈活的基礎信息。資源配置中心包括模型管理、資源管理等功能模塊。
2.1.1 模型管理
模型管理作為整個運維系統中的地基,用于創建不同類型資源的基礎模型,模型包含諸多可自定義的屬性值,可自行增添新的屬性或移除不再使用的屬性,每個屬性也諸多業務信息,包含但不限于屬性名稱、屬性編號(屬性唯一性的標識)、屬性類型(如字符串、整型、布爾等)、關聯模型、是否可編輯、是否自動采集。
模型管理還提供了分組功能,以數據結構樹的形式展示,用于建立多個模型之間的關聯關系。多個模型可以同屬于一個模型分組,它們可能包含一些共同的屬性,該場景下可以將這些屬性配置在分組模型中,這樣該分組下的所有模型都可以繼承這些屬性,就像Java編程語言中的類的繼承一樣[3]。
模型管理提供了創建分組、創建模型、創建屬性、屬性關聯模型等功能。登錄自動化運維平臺,再啟動頁中選擇資源配置中心,再在菜單中選擇“模型→模型管理”,進入模型管理界面,具體如圖1所示。
圖1 模型管理界面
(1)創建分組。點擊“新建分組”按鈕進入創建界面。填寫分組名稱與描述,即可完成模型分組的創建。
(2)創建模型。點擊“新建模型”按鈕進入創建界面。根據界面選擇該模型的所屬分組,并填入模型名稱及其類型,完成模型的創建。
(3)創建屬性。點擊“新建屬性”按鈕進入創建界面。根據界面選擇該屬性的所屬模型,并填入屬性名稱、屬性編碼、屬性類型等,完成屬性的創建。
(4)模型編輯。在“操作”欄中可以對指定屬性進行編輯操作。根據界面,直接對想要修改的自動進行編輯后,保存即可。
(5)屬性關聯。在對應的屬性上點擊“關聯模型”按鈕,進入關聯界面。根據界面選擇該屬性要關聯的模型,完成屬性關聯模型操作。
完成關聯操作后,回到模型管理界面,可以看到該屬性的管理模型字段變成了剛剛選擇的模型,點擊模型名稱,可以看到該關聯模型下的所有屬性。
2.1.2 資源管理
資源是模型的實例化對象。資源之于模型,就像Java編程語言中對象之于類。資源對應著具體的實體或虛擬設備,例如物理機A與虛擬機B都是一個資源,它們同屬于主機模型。
資源管理提供了創建資源、導入資源等核心功能。點擊“資源→資源管理”,進入資源管理界面,具體如圖2所示。
圖2 資源管理界面
(1)創建資源。在資源管理界面左側的模型樹中,選中模型,再點擊“新建資源”按鈕進入創建界面。在創建界面中顯示的輸入選項是由選擇的模型決定的,即不同模型的創建資源界面所需要填入的信息是不同的。在填入所需信息后,點擊創建,即可完成資源的創建。
(2)導入資源。在資源管理界面左側的模型樹中,選中模型,再點擊“導入資源”按鈕進入導入界面。在導入界面中,可以下載Excel 文件模板。在導入界面中,選擇要上傳的Excel文件,即可完成資源的導入。
(3)查看詳情。在資源管理界面表格中,點擊第一列的“>”符號,該資源的詳細信息將展示在該行數據之下,可達到快速查看資源詳情的目的。
在資源配置中心中添加的資源,還僅僅是一座信息孤島,無法通過運維平臺管理并運維這些資源,例如監控資源指標、自動化巡檢等。在資源納管中心中,對資源配置中心中的資源安裝Agent 代理軟件,通過Agent軟件對資源進行管理。平臺會自維護Agent軟件并配置Agent軟件的下載地址,在對資源進行安裝操作中,會在該資源操作系統中下載并安裝指定版本的Agent軟件。資源納管中心包括Agent狀態查詢、Agent安裝、歷史查詢等功能模塊。
2.2.1 Agent管理
提供Agent狀態查看、Agent安裝等核心功能。
(1)Agent狀態。點擊Agent管理→Agent狀態進入查看界面。界面中展示了資源設備中的Agent狀態,包括:在線、失聯、未安裝等。
(2)Agent安裝。點擊Agent管理→Agent安裝進入Agent 安裝管理界面,其提供了創建、安裝、卸載等功能。
①創建。點擊“新增”按鈕,進入創建界面。該功能用于維護資源的遠程連接信息,其中遠程連接信息用于安裝Agent軟件。②安裝。點擊“安裝”按鈕,等待系統提示安裝成功即可,此時界面上該資源狀態變更為已安裝。③卸載。點擊“卸載”按鈕,等待系統提示卸載成功即可,此時界面上該資源狀態變更為未安裝[4-5]。
2.2.2 執行歷史
點擊執行歷史→歷史查詢進入Agent 執行歷史查詢界面,該界面展示了各個資源設備的執行記錄及結果狀態。
監控告警中心用于對已納管且已注冊到監控告警中心的資源進行指標定制監控,并提供基于自定義告警規則進行告警通知的功能。監控告警中心包括監控中心等功能模塊。
監控中心主要提供監控注冊與監控指標查詢功能,其中指標查詢又細分為多個組件,包括但不限于主機、MySQL、Redis、RabbitMQ組件。
監控中心依賴于Prometheus、Consul 等開源組件,以實現指標采集及監控目標的自動發現功能。監控中心提供監控注冊功能,用于將資源納入監控中心實現細節上,平臺將該資源注冊到Consul中,同時提供對應exporter 的自動化安裝。通過Prometheus 集成Consul的服務自動發現后,Prometheus 能自動監聽到Consul中新增的服務,并自動從其中抓取對應的指標信息。平臺還提供了監控指標查詢功能,在Prometheus 抓取到指標信息后,可通過該功能查詢資源的各項監控指標數據。Prometheus監控組件架構圖如圖3所示。
圖3 Prometheus技術架構圖
(1)監控注冊。點擊監控中心→監控注冊進入注冊管理界面,再點擊“新建”按鈕,進入注冊界面。在監控注冊界面中,填入IP地址、指標類型等必要字段后,點擊保存即可完成資源監控的注冊。
(2)監控指標查詢。點擊監控中心→主機監控或組件監控,進入查詢界面,其中主機監控也查看物理機及虛擬機的監控指標,組件監控可查看MySQL、Redis、RabbitMQ等中間件組件的監控指標,如圖4所示。
圖4 監控指標查詢界面
作業中心主要是用于執行自定義的腳本,以完成特定場景下的功能,其工作原理是:以Agent 軟件為基礎,通過接收運維平臺為其下發的可信任腳本,接收后執行該腳本。
作業中心包括快速執行、業務管理、平臺管理等功能模塊。
2.4.1 快速執行
提供腳本執行、文件分發等核心功能。
(1)腳本執行。點擊快速執行→腳本執行進入腳本執行界面。根據界面填入腳本名稱、內容、參數、目標服務器后,點擊執行即可在目標服務器上執行該腳本內容。
(2)文件分發。點擊快速執行→文件分發進入分發文件執行界面。該功能與腳本執行功能類似,只不過腳本執行里填入的是腳本的內容,而此處是上傳的腳本文件。在填入必要內容后,點擊執行即可在目標服務器上執行該腳本內容。
2.4.2 業務管理
業務管理包括作業、腳本、定時任務、執行歷史等功能。(1)作業。(2)腳本。該模塊主要是用于維護常用的固定的腳本,便于其他功能引用這些腳本。該模塊包含創建、上線等功能。①創建:點擊“新增”按鈕,并填入相應的腳本內容后保存即可。②上線:在腳本界面,點擊對應的腳本名稱即可進入腳本詳情界面,該界面展示了該腳本的多個版本及其上線狀態。在指定版本行的操作欄中點擊上線即可將指定版本的腳本內容上線,上線后引用處就能使用最新的腳本內容。(3)定時任務。該模塊提供周期性定時執行特定腳本的功能。創建:點擊“新增”按鈕,進入定時任務創建界面。填入執行策略與作業模板后保存即可。(4)執行歷史。執行歷史界面能查看所有腳本、作業、定時任務的執行過程與結果。點擊指定的任務名稱,即可進入任務詳情界面,在此界面中可以查看該任務下所有腳本步驟的執行過程[6]。
2.4.3 平臺管理
平臺管理主要用于提供平臺級功能,如腳本倉庫。腳本倉庫即公共腳本的存放位置,供其他地方引用,如腳本執行與定時任務可以引用腳本倉庫中的腳本。
場景中心基于特定的應用場景,制訂成熟的完善的解決方案,并實現一鍵式的操作方式,極大地方便了運維人員,降低了人工運維工作量。場景中心包括自動化巡檢功能。
自動化巡檢主要包括WebLogic 集群的部署與巡檢任務的執行兩個模塊。
(1)集群部署。集群部署主要包括創建集群與部署集群兩個模塊。①創建集群:即創建一個集群定義,以便后續對其實例化部署。在集群部署界面點擊“新增”按鈕,填入對應的信息后即可完成集群定義的創建。②部署集群:在指定的業務的操作列中點擊“部署”按鈕,進入部署界面。在部署界面中,應首先進行環境檢查,待環境檢查通過后,再點擊“開始部署”按鈕執行集群部署即可[7]。
(2)巡檢。巡檢即是對已有的軟硬件服務進行自動化自定義內容檢測,例如:對WebLogic 服務進行部署環境、服務狀態等指標進行檢查。
巡檢功能基于Agent 軟件,以及定制化的采集腳本實現。在巡檢操作前需要維護巡檢目標服務及其采集腳本。采集腳本通過Agent軟件下發到目標設備上,由Agent軟件執行采集腳本后并且將結果返回給平臺,平臺即獲取到檢查結果。巡檢只需要將上述操作進行定時調度到多個設備上即可[8]。
在巡檢管理界面上,點擊對應的業務名稱進入風險分析查看界面,具體如圖5 所示。在風險分析查看界面中能查看該業務下的設備的風險項,也可以點擊對應的設備查看具體的指標值,具體如圖6所示。
圖5 風險分析查看界面
圖6 設備風險詳情界面
安全中心提供對資源的安全性檢查功能,例如服務器的高風險端口檢查。安全中心包括專項檢查、平臺管理等功能模塊。
2.6.1 專項檢查
專項檢查用于特定場景下的安全性檢查。專項檢查包括端口檢查等功能。端口檢查包括創建、執行檢查等功能。
(1)創建:點擊“新增”按鈕,填入目標服務器及其他必要信息后,點擊保存即可。
(2)執行檢查:在指定行的操作列中點擊“執行檢查”按鈕,進入執行界面點擊執行后,等待執行完成即可。
2.6.2 平臺管理
平臺管理主要提供平臺級業務功能,包括端口規范等功能。端口規范是在端口規范界面中,展示了平臺級端口規范信息,包括禁用端口、風險端口等。端口規范模塊提供了創建等功能。