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