文/劉璐豪 趙靜 嚴俊斌 梁兆楷
伴隨工業生產信息化的不斷深入,各行各業在日常生產運作中的各種信息系統的使用越來越多,如何做好這些信息系統的日常維護十分重要,特別是一些對實時性要求比較高的特殊行業,比如電力行業、通信行業等。廣州供電局作為南方電網的重要組成部分,一直在追求自身全面發展與提升,力求在企業信息化過程中不斷突破自我。目前廣州供電局使用了大量的實時信息監測系統,其中基于Weblogic集群的信息系統能夠很好的直觀顯示整個網絡中服務器以及各個節點的運行情況,為網絡維護、系統維護提供了非常重要的參考,這使得增強系統整體穩定性變得可以操控。
Weblogic是一個基于JAVAEE架構的中間件,是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器,它實現了將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中,目前使用較多的版本是2012年發布的WebLogic Server 12c(12.1.1)。Weblogic可以在使用IP地址的一臺計算機,或在使用集群捆綁在一起的多臺計算機上,或在通過代理服務器管理的多臺計算機上建立擁有相同域名的不同站點,使得企業可以使用同一的網絡入口實現多項信息管理的融合。Weblogic是基于Java的,其編寫 可 以 使 用servlet,JSP,JavaBean和EJB等,在部署時比較簡單流程化,另外安全套接層(SSL)的使用以及Weblogic的內在支持為用戶驗證和授權,實現強大的安全性,確保了信息的安全與系統的魯棒性。
對于一個企業所使用的信息系統以及監控系統來講,由于網絡組成復雜,設備數量眾多,附加上各個系統運行過程中由于各類數據冗余、常見硬件故障燈,經常會出現系統崩潰的現象,然而經過大量的實際情況統計與分析,很多時候整個系統的崩潰是由于某一個組成節點的宕機造成的,如果能夠及時發現該節點的位置與宕機原因以進行相應的處理,就可以實現節點的自動恢復,避免由于單個節點的小故障導致問題的蔓延進而產生大面積的系統問題、網絡問題。
在Weblogic集群中,必須要保證系統的高可用性,也就是說不論出現什么樣的軟件和硬件的故障情況下仍然能夠提供服務,不得出現全面崩潰的現象。正常來講Weblogic中的每一個節點互相之間都會進行數據交互以及監控,出現故障的時候,各個節點都可以進行一定的協調任務。另外也可以增加一個協調組件來對集群進行實時監控以及故障處理,通過降低模塊之間的耦合度來實現系統的高可用性,通過主動地節點監控,及時的收集各個中間件節點的信息,當發現故障問題時實現服務轉移,及時進行宕機節點的恢復以及后續業務的調整,保證系統穩健的運行。
根據實踐總結,在進行中間件節點宕機自動恢復時,一般情況下會循環的從kafka隊列中獲取警告信息,對報警內容進行分析后,可以自動的確認是否是Weblogic節點宕機,當然在一些特定時期需要一定的人為干預。在確認了是某個節點宕機之后,先判斷該節點的IP地址等重要信息,然后查看該節點是否安裝了Agent代理,如果是那么就快速的對接短信平臺并發送短信給相關直接負責人員及部門,然后在進境下一步操作。當然如果經過分析發現當前警告與宕機無關,那么僅僅需要對接短信平臺推送一條警告信息就結束了。系統在確認了節點宕機之后,首先需要對目標服務器進行線程快照操作,一方面是一種工作日志的需要,另外這也是問題處理的實證與恢復參考,這一個過程需要在15分鐘內完成,如果在這個時間內無法完成快照操作則跳過。除了對服務器進行快照之外,同時還要對目標服務器的內存進行快照操作,因為通常內存中的信息是導致宕機的重要原因,這個操作需要在30分鐘內完成,超過時間限制也要跳過。在進行兩個快照操作后,不論執行進度如何都要對目標節點發出執行停止命令。
當節點停止命令執行之后,要對節點所有的進程進行檢測,查看節點的進程的運行情況以作后續分析總結之用,但這主要是為了確保節點所有進程停止運行以便進行重啟操作,如果在5分鐘之內節點進程沒有退出,那么將需要通過PID進行強制關閉,然后對目標節點發出啟動指令,然后循環的對節點進行檢測,查看其是否完成了重新啟動操作,一般來講,如果在30分鐘內節點依舊未能重新啟動,那么就需要人工現場進行干預操作了。因此如果節點自動啟動恢復了,那么要給相關人員與部門發送一條短信通知,告知問題自動解決節點故障自愈,如果30分鐘后啟動失敗,更要發送短信給直接關系人快速到現場處理問題,避免故障繼續蔓延。根據實際情況而言,由于電力行業是一個十分敏感的行業,一般出現問題時,不管系統是否會自動恢復,相關技術人員都會盡快到達現場,避免故障影響的擴大化。
對與企業來講,特別是對實時性要求比較高的供電行業,當系統內發生節點報警時,應當具備快速現場記錄與應急恢復的能力,目前主流的系統集群框架都可以支持節點信息的實時查詢與快速報警,如何快速準確的確認節點是否宕機,并實現有效重啟恢復業務一直備受關注,具體的實現技術與過程值得不斷的探討與加強,這也是體現一個企業信息化處理能力的重要所在。