楊志國 程玉紅
摘要:本文針對服務器、網絡設備、數(shù)據(jù)庫、磁盤陣列需要手動執(zhí)行命令巡檢的現(xiàn)狀,通過使用RPA技術、爬蟲技術、megacli等第三方工具獲取各模塊數(shù)據(jù)并存儲,實現(xiàn)了數(shù)據(jù)庫監(jiān)控自動化和硬件設備狀態(tài)的實時監(jiān)控。
關鍵詞:RPA技術 網絡巡檢 實時監(jiān)控
一、背景
隨著企業(yè)信息化建設的不斷發(fā)展,開灤集團公司已建成擁有幾百臺服務器設備和網絡設備的IT基礎設施,支撐著覆蓋全礦區(qū)的網絡及財務、物資等應用系統(tǒng)的正常運行。僅集團公司核心機房就有近300多臺服務器、交換機和存儲設備,這些設備的巡檢和維護已成為技術人員一項繁重的工作任務。目前設備的巡檢需要運維人員每天手工遠程去逐臺檢查設備的硬件狀態(tài)和運行狀態(tài),通過人工的方式去檢查的工作量較大、屬于重復性勞動,卻占用了運維人員的大量工作時間,仍然存在著不能及時發(fā)現(xiàn)設備問題的現(xiàn)象。數(shù)據(jù)庫備份服務器每天產生200多個備份文件和60多個工作日志,需要每天人工去查看數(shù)據(jù)庫備份文件是否成功備份以及日志是否成功導出,有沒有異常情況等,也會占用運維人員大量時間。
軟件巡檢機器人可以自動巡檢服務器設備、網絡設備以及數(shù)據(jù)庫備份狀態(tài),對設備工作狀態(tài)進行實時監(jiān)測,并可以實時查看設備的運行狀況,使維護人員能及時了解設備的運行狀態(tài),及時對故障進行處理,可以大幅節(jié)省運維人員重復勞動的工作時間,從而使運維人員能夠有時間去完成更有價值、創(chuàng)造性的工作。
二、意義
通過使用python腳本與rpa軟件機器人來獲取服務器、交換機、數(shù)據(jù)庫、磁盤陣列等巡檢信息,實現(xiàn)了設備的自動巡檢;通過數(shù)據(jù)展示服務,提供了對各模塊巡檢數(shù)據(jù)展示、閾值設置、問題告警等功能,可查看巡檢設備狀態(tài),各模塊歷史數(shù)據(jù);出現(xiàn)問題時及時發(fā)送告警郵件和語音提醒,使運維人員及時發(fā)現(xiàn)問題和解決問題。
三、系統(tǒng)設計
1、系統(tǒng)總體思路
系統(tǒng)設計分為數(shù)據(jù)獲取與數(shù)據(jù)展示兩部分,數(shù)據(jù)獲取服務通過部署腳本與工具的形式,通過定時任務方式每日啟動腳本獲取數(shù)據(jù)并存入數(shù)據(jù)庫。數(shù)據(jù)展示部分為實時讀取數(shù)據(jù)庫相應信息,通過Django的MTV框架渲染到界面進行展示,首頁自動刷新顯示異常設備信息。
2、系統(tǒng)構成
系統(tǒng)主要分為數(shù)據(jù)獲取服務與數(shù)據(jù)展示系統(tǒng),兩者獨立部署與運行。
數(shù)據(jù)獲取服務分為服務器、網絡設備、磁盤陣列、數(shù)據(jù)庫四個模塊。服務器模塊獲取其硬件配置與資源占用率、陣列卡狀態(tài)等數(shù)據(jù),網絡設備模塊獲取其硬件配置、在線狀態(tài)、端口狀態(tài)與流量。數(shù)據(jù)展示系統(tǒng)提供數(shù)據(jù)展示、頁面告警提醒、郵件告警等服務。
四、技術方案
1、系統(tǒng)總體設計
(1)數(shù)據(jù)獲取服務系統(tǒng)結構
數(shù)據(jù)獲取服務系統(tǒng)結構分為服務器、網絡設備、磁盤陣列、數(shù)據(jù)庫四部分。
一是服務器模塊。物理服務器陣列卡數(shù)據(jù)監(jiān)控,在windows與Linux系統(tǒng)中使用megacli工具,獲取陣列卡的參數(shù)判定陣列卡磁盤狀態(tài),獲取bbu電池的溫度參數(shù)獲取電池溫度;通過python第三方庫psutil庫,獲取cpu、內存、磁盤的利用率與內存、磁盤的已利用大小;通過windows中wmic與 linux中dmidecode工具,獲取cpu、主板的生產商等硬件配置信息;通過windows中wmic工具與linux中ifconfig和lspci工具,獲取網卡mac地址、廠商與網絡連接狀態(tài)數(shù)據(jù);通過python第三方庫os庫獲取服務器操作系統(tǒng)版本、運行時間、當前進程數(shù)據(jù)。
二是網絡設備模塊。通過telnet工具連接交換機并執(zhí)行交換機命令獲取數(shù)據(jù)。獲取設備硬件信息,主要包括硬件CPU、內存、電源、風扇、模塊、板卡;獲取設備在線狀態(tài)、端口Up/Down/errdisable/disable狀態(tài)、端口流量等信息。
三是獲取支持瀏覽器的磁盤陣列軟件管理系統(tǒng)的網頁數(shù)據(jù)。通過selenium工具登錄管理系統(tǒng)獲取cookie,使用爬蟲技術獲取磁盤陣列狀態(tài)與事件的網頁數(shù)據(jù)。
四是數(shù)據(jù)庫模塊。通過tnsping命令獲取oracle數(shù)據(jù)庫的監(jiān)聽狀態(tài);通過數(shù)據(jù)庫oracle命令獲取數(shù)據(jù)庫、連接實例狀態(tài)、歸檔模式、表空間信息、會話數(shù)、命中率等數(shù)據(jù);通過數(shù)據(jù)庫的備份文件與日志獲取數(shù)據(jù)庫備份狀態(tài)。
2、數(shù)據(jù)展示系統(tǒng)結構
數(shù)據(jù)展示采用B/S架構,通過網頁直觀展示信息,數(shù)據(jù)展示服務系統(tǒng)結構整體分為服務器、網絡設備、磁盤陣列、數(shù)據(jù)庫四部分。首頁實時展示報錯設備的詳細異常信息,點擊后跳轉到指定設備的多條詳細數(shù)據(jù)展示界面,錯誤信息會標紅展示。
一是服務器模塊詳情頁展示包含服務器服務器連接狀態(tài)、服務器運行系統(tǒng)、raid卡狀態(tài)、cpu狀態(tài)、memory內存狀態(tài)、硬盤的使用狀態(tài)(C、D、E、F等)、網卡信息、服務器進程等,其中服務器進程支持指定進程搜索,用的是模糊查詢進程,輸入關鍵字即可匹配出來相關展示進程。
二是網絡設備模塊詳情頁的展示包含網絡連接狀態(tài)、電源狀態(tài)、板卡狀態(tài)、風扇狀態(tài)、cpu狀態(tài)、模塊狀態(tài)、溫度狀態(tài)、環(huán)境狀態(tài)、其他命令入口(show_cdp_neighbors、show_clock、show_version等共10條命令,進入可查看最新數(shù)據(jù)和歷史數(shù)據(jù)。
三是磁盤陣列詳情頁展示包括事件(錯誤代碼、最后一個時間戳記、狀態(tài)、描述、對象類型、對象標識、對象名)和內部存儲器(驅動器、容量、使用、狀態(tài)、MDisK、機柜標識、插槽)兩部分的數(shù)據(jù)表格展示。
四是數(shù)據(jù)庫詳情頁展示部分,包括數(shù)據(jù)庫監(jiān)聽和數(shù)據(jù)庫運行部分:監(jiān)聽狀態(tài)、歸檔狀態(tài)、運行狀態(tài)、會話數(shù)數(shù)目、數(shù)據(jù)庫實例狀態(tài)、數(shù)據(jù)庫空間信息表、庫緩存命中率、共享SQL和PL/SQL的固定對象命中率、數(shù)據(jù)字典緩存命中率、數(shù)據(jù)緩存命中率、Latch Hit內部結構維護鎖命中率、日志緩沖區(qū)命中率、共享池等;數(shù)據(jù)庫備份部分:錯誤數(shù)據(jù)備份表、全部備份數(shù)據(jù)文件搜索入口等。
五是基線閾值及巡檢頻率管理界面,用戶可根據(jù)需要對不同設備的參數(shù)進行閾值設置,也可設置整體系統(tǒng)的巡檢頻率,提高整體系統(tǒng)的靈活性。
五、結論
本系統(tǒng)將RPA軟件機器人技術與數(shù)據(jù)庫巡檢需求相結合,改變以往數(shù)據(jù)庫依賴手工巡檢方式,實現(xiàn)了數(shù)據(jù)庫監(jiān)控自動化,大大提高了工作效率;在網絡巡檢系統(tǒng)中將網絡設備硬件參數(shù)納入到網絡巡檢系統(tǒng)當中,通過引入網絡爬蟲技術實現(xiàn)硬件設備集中監(jiān)控和管理,自動提取設備信息和告警日志,實現(xiàn)了硬件設備狀態(tài)實時監(jiān)控;本系統(tǒng)通過固定腳本實時巡檢服務器、網絡設備、數(shù)據(jù)庫、磁盤陣列等,相較于以往的手動輸入命令查看更加便捷,結果展示也變得更加清晰,實時跟進設備信息,避免設備異常不能及時發(fā)現(xiàn)造成的相應連鎖錯誤,在服務器與網絡設備運維等方面能夠大大節(jié)省人力成本,提高了工作效率。
作者簡介:楊志國(1978年7月)男,籍貫:河北省辛集市人,漢族,現(xiàn)職稱:高級工程師,學歷:本科,研究方向:計算機網絡,從事計算機專業(yè)工作。