大慶油田采油六廠大慶油田設計院
服務器監控技術在油田企業的應用
高云鶴1黃海英21大慶油田采油六廠2大慶油田設計院
隨著油田企業信息化建設的深入,上線運行的應用系統逐年增多,且系統多為網絡版,服務器主機最常用的操作系統包括Linux和W indows的各個版本。使用自主開發的監測插件監測了10臺主機的CPU、內存、磁盤空間使用率、當前進程數、關鍵進程、服務狀態、當前用戶數(會話數)、系統已啟動時間、網卡狀態、TCP/UDP端口狀態等性能指標。經過一個監測周期的統計,得出監測插件的平均內存占用率為42.7MB,平均CPU使用率為0.6%,可見監測插件有良好的性能。
Nagios;服務器監控;監測插件;信息格式;流程
隨著油田企業信息化建設的深入,上線運行的應用系統逐年增多,且系統多為網絡版,所以系統的平穩運行極大程度依賴于服務器的性能。基于運維工作經驗,在開源軟件的基礎上,有針對性地開發了一系列監測插件,實時采集應用服務器運行數據,不但實現了應用系統的數據監控,保證了應用系統的平穩運行,而且實現了資源的科學、合理調度,為企業節約了大量資金。
2.1 監測軟件選擇
現有監測軟件中,由于商業軟件成本高、二次開發難度高、使用復雜等原因,所以開源軟件的使用率更高。開源軟件中,功能全面且最流行的監測軟件有Nagios、Zabbix和Zenoss等,其中Nagios成熟度高,穩定性好,達到了工業級監測的標準,很多開源軟件都有與Nagios兼容的插件接口。但Nagios默認附帶的監測插件功能不多,還需要根據特定被監測資源客戶化開發監測插件。
2.2 系統監測結構
服務器主機最常用的操作系統包括Linux和 Windows的各個版本,需要對其監測的關鍵性能指標包括CPU、內存、磁盤空間使用率,當前進程數,關鍵進程、服務狀態,當前用戶數(會話數),系統已啟動時間,網卡狀態,TCP/UDP端口狀態等。
系統監測方法包括兩種:①代理監測,在被監測機安裝監測代理,監測插件在被監測機上執行;②非代理監測,在監測主機上直接執行監測插件,監測本機或遠程主機。監測結構如圖1所示。

圖1 監測結構
2.3 數據采集設計
監測插件的數據采集方式根據監測對象的不同,分為本機采集和遠程采集兩種。本機采集方式是指監測插件采集到所在主機的數據后,通過監測代理把結果輸出返回給監測引擎。遠程采集方式是指監測插件在監測主機上,可通過某種方式連接遠程被監測機直接采集數據,然后返回給監測引擎。
2.4監測狀態表示
監測狀態是監測插件最重要的結果信息,是告警和自動處理分析判斷的依據,需要用簡練的方式表示狀態,以便于監測引擎據此做出進一步的告警或其他處理操作。
監測狀態有兩種處理分析方式:監測插件處理方式和監控引擎處理方式。兩者相比,監測插件處理方式不需要傳輸全部原始監測數據,可以減小傳輸消耗(包括監測主機內存資源和遠程被監測主機的網絡資源),但需要監測插件所在主機更多的CPU資源,不能保存監測原始數據。實際中有用的監測信息都需要做一定的處理,所以在本文中采用了監測插件處理方式。由于采用監測插件處理方式獲得監測狀態,所以各種狀態需要有規范的表示。為了便于代碼實現,使用宏定義或變量的方式,把狀態表示為狀態名和狀態值,前者便于在代碼中的書寫,后者作為監測插件的返回值。具體如表1所示。

表1 主機/監測項狀態
2.5監測信息格式
狀態值是監測插件的返回值。除此之外,監測插件還需要生成詳細的文字信息,包括狀態信息和性能信息,所以需要使用其他方式傳輸給監測引擎。本文把狀態信息和性能信息設計為輸出到標準輸出接口,監測引擎或監測代理會在接收監測插件狀態返回值的同時,讀取標準輸出獲得這些文字信息。為了區分狀態信息和性能信息,需要規定這些文字信息的格式。格式如下:

狀態信息和性能信息之間用“|”來分隔,方括號里的內容為可選內容,因為不是所有的監測對象都需要性能信息。其中狀態信息用普通語言描述,性能信息用如下格式表示:

用單引號括住指標名,等號后面接指標值。如果有警告閾值和嚴重閾值,則用分號分隔;如果有多個性能指標,則用空格分隔。
2.6監測插件執行流程
上面闡述了監測插件數據采集、狀態表示和信息格式等各個組成部分的設計方法,各組成部分運行流程如圖2所示。

圖2 監測插件執行流程
(1)監測引擎(或監測代理)發出輪詢監測命令后,監測插件開始執行。
(2)處理輸入的監測命令,得到需要的參數值。
(3)獲取原始監測數據,包括在插件內部直接讀取本機性能參數指標文件,以及在插件外部執行本機系統命令或調用其他程序。
(4)處理原始監測數據,對原始監測數據進行字符串過濾、數學運算等處理。
(5)根據設置的閾值得出告警狀態。
(6)根據告警狀態,生成對應的狀態、性能信息,輸出到標準輸出接口。
(7)返回狀態值,以告警狀態作為返回值。
(8)監測引擎(或監測代理)收集監測插件的返回值和狀態、性能信息。
使用自主開發的監測插件監測了10臺主機的CPU、內存、磁盤空間使用率、當前進程數、關鍵進程、服務狀態、當前用戶數(會話數)、系統已啟動時間、網卡狀態、TCP/UDP端口狀態等性能指標。經過一個監測周期的統計,得出監測插件的平均內存占用率為42.7 MB,平均CPU使用率為0.6%,可見監測插件有良好的性能。
(欄目主持 楊軍)
10.3969/j.issn.1006-6896.2014.7.014