互聯網發展到如今,對於一般企業線上線下機器成千上萬數量級已經是司空見慣。對於運維人員來說,手動去管理那一萬臺機器,簡直就是無法完成的任務。隨之而產生的 是運維自動化,幫助運維人員管理監控那一堆跑着各種各樣服務的機器。其實,到了今天這種地步,運維自動化早就是一種家常便飯的事情。開源社區或者是商業軟件有非常多監控、運維管理平臺。但是,就像穿衣服一樣,不是任何一件衣服穿上身都合適。所以,可以根據自己的情況,量身定做合適的自動化管理平臺,應該也是一個慢慢積累過程纔對。
1、需求分析
管理機器:增加刪除管理機器功能。
運營項目:增加刪除管理項目功能。
監控報警:對機器、項目監控報警。
問題跟蹤:機器、項目出現問題時,提供信息協助問題追蹤。
角色管理:對登錄自動化管理平臺用戶角色管理功能。
其他內容:其他一些後續拓展功能。
2、框架設計
2.1對象管理
管理對象分組、對象個體,錄入對象詳細信息。批量發送指令管理對象,獲取對象系統常見配置信息,管理對象系統常見配置。2.2目標管理
管理目標分組、目標個體,錄入目標服務信息。自動化上傳目標依賴文件到對象,自動化部署運行服務。包括:批量上傳、批量部署、發送管理目標服務指令。2.3角色管理
劃分管理員、運維人員、開發人員等用戶角色,管理員負責管理自動化平臺上面用戶權限,包括:添加用戶、刪除用戶、用戶角色劃分等待。運維人員負責對象管理、目標管理、分析問題、運行信息、其他管理等等一系列模塊。開發人員主要負責目標管理與分析問題兩個模塊。
2.4分析問題
支持對象歷史命令顯示,對象網絡自定義資源查詢展示,對象系統日誌自定義展示,目標訪問日誌、報警日誌自定義查詢展示。
2.5運行信息
對目標運行狀態、對象運行狀態信息採集,對對象本身健康狀態相關指數採集。以圖形界面方式直觀展示,配置規則超出正常指標通知運維組用戶。
2.6其他管理
根據後期的需求添加一些插件,或者修改後臺模塊實現程序,如:報警接口、集羣管理工具、驗證管理等等。
3、數據庫設計
3.1對象數據記錄
對象數據表保存對象各項信息,對象組數據表保存對象組各項信息,對象各項健康指標數據表保存各項健康指標週期性實時信息,對象運行狀態數據表保存對象週期性實時運行狀態。
3.2目標數據記錄
目標數據表保存目標各項信息,目標組數據表保存目標組各項信息,目標運行狀態數據表保存目標週期性實時運行狀態,目標與對象關聯數據表保存目標與對象、對象組綁定信息,目標組與對象聯數據表保存目標組與對象、對象組綁定信息。
3.3角色數據記錄
用戶數據表保存各個用戶的基本信息,管理員數據表保存管理員用戶信息,運維數據表保存運維人員信息,開發數據表保存開發人員信息,權限用戶表保存各個角色擁有各項權限信息。
3.4其他數據
一些安全認證、心跳連接等其他方面的數據信息。
4、後臺設計
4.1初始化對象
自動化平臺管理對象確認,後臺同步執行對象初始化。添加配置文件,寫入對象所屬組別。數據庫添加對象信息,添加對象組信息。後臺繼續配置對象的訪問方式,SSH的無密碼登錄或者是帶密碼登錄。這裏推薦使用無密碼方式登錄,採用密鑰方式登錄,可以不再使用口令認證。把口令一直保存在自動化平臺不是一種好的習慣。當然,第一次登陸還是需要口令,無密碼登錄認證成功後就不再需要密碼,這時需要加強角色的權限管理與安全保護。4.2管理對象
初始化對象成功,自動化平臺開始執行對象配置、對象信息獲取、對象與目標綁定、目標服務部署、目標信息獲取等操作。後臺同步平臺操作確認,通過SSH無密碼方法登錄到對象,開始執行自動化平臺下發的操作命令,並且返回操作結果。4.3運行狀態
獲取對象運行狀態、生命健康指標、目標運行狀態,實時反饋給自動化平臺圖形化展示。以上狀態信息超出正常健康範圍,調用報警接口通知運維人員。4.4異常處理
初始化對象、管理對象等一系列操作出現異常情況,截取異常信息上報到自動化平臺,自動化平臺展示提示出現錯誤,展示異常信息。當然,執行指令成功也提示友好確認信息反饋給用戶。