陳穎 王浩然



摘要:隨著空管數據中心信息化的不斷深入,面臨著各種數量眾多的服務器和網絡設備的運維監控問題。結合數據中心面臨的現狀,本文提供了一種基于Zabbix的數據中心運維監控平臺,解決了監控各種不同種類設備和應用服務的問題,并利用開源可視化組件Grafana對接Zabbix的API接口數據源,建立了監控平臺美觀易用的可視化面板,解決了Zabbix監控數據前端展示問題。實踐證明該運維監控平臺可視化程度高,運維效率高,極大提高了空管數據中心的運維水平。
關鍵詞:數據中心;運維監控;數據源
一、背景
隨著信息化的不斷深入,空管數據中心的各種服務器和網絡設備數量越來越多,各種異構的信息系統也是層出不窮,數據中心面臨著各種設備的運維監控問題。但目前數據中心的監控方式存在諸多問題: 首先,各種設備的監控方式不同,需使用各自的專用軟件才能監控,無法在統一的平臺上實現監控;再者,數據中心各種信息系統架構不一致,監控接口不同,不能在統一的平臺上監控各個信息系統的運行狀態; 最后,數據中心收集的各種監控數據無法在統一的平臺上實現可視化分析和展示。
本文基于以上空管數據中心監控平臺面臨的問題,首先利用開源數據中心監控平臺 Zabbix 實現對各種異構設備和信息系統的統一監控,然后結合開源可視化組件 Grafana 實現對 Zabbix 收集的各種監控數據的可視化展示和分析。
二、Zabbix開源運維監控平臺介紹
Zabbix是一款由開源社區維護的數據中心設備,也是監控各種信息系統的開源監控平臺。Zabbix主要由Zabbix Server、Zabbix Agent、Zabbix Web等組件組成。
Zabbix Server為服務端,利用C語言編寫,主要功能是在服務器上開啟多個信息采集進程,接收Agent發送的各種數據中心設備的監控報告信息,組織所有配置、數據和操作并存儲在Zabbix的數據庫中。Zabbix Server支持各種主流數據庫存儲收集的數據,如MySQl、PostgreSQL、Oracle或IBM DB2等。
Zabbix Agent 是收集監控數據的客戶端,它可以安裝在 Windows、Liunx 等各種操作系統上來收集主機的 CPU 負載、內存、磁盤 IO、網絡流量等各種監控數據,在無法安裝 Zabbix Agent 的網絡設備上可以開啟 SNMP 來對網絡設備進行狀態監控。
Zabbix Web 是 Zabbix 的前端管理界面,基于高效的 PHP 網頁語言編寫,其主要功能是可以對監控平臺的數據進行展示,并可以對監控的各種參數和模板進行配置。
Zabbix Proxy 是代理 Zabbix Server 收集監控數據的中間組件,當 Zabbix 監控的設備和服務數量過多時可以采用分布式部署的方式,這時可以利用多個 Zabbix-Proxy收集監控數據后,定期發送到 Zabbix Server 來減輕 Zabbix Server 服務器的負載壓力。
Zabbix Java Gateway 是一個充當監控 Java 運行性能的網關,可以用來監控基于 Java 開發的信息系統的運行性能,將收集的 Java 監控數據定期發送到 Zabbix Server。Zabbix 還可以自定義監控項,結合 Zabbix Agent UserParameter 的設置,可以實現對常用應用服務如 Apache、Nginx、Mysql 等應用服務的監控。Zabbix 還包括完善的報警機制,可以與第三方平臺報警平臺對接,如可以接入微信公眾號、短信等各種信息推送平臺。Zabbix 的體系結構如圖 1所示。
三、 Grafana 開源數據可視化工具簡介
Grafana 是利用 JavaScript 開發的強大的監控數據可視化工具,可以對接各種數據源,如 InfluxDB、OpenTSDB、Prometheus、Zabbix、Elasticsearch 等; 同時也支持各種美觀易用的圖表展現形式,如折線圖、散點圖、餅圖、表格等,圖表支持多 Y 軸、閾值告警對接郵箱、對數刻度等多種功能。當 Grafana 所提供的圖表不滿足要求時,還可以自定義模板來開發符合要求的數據展示圖表。Grafana 可以針對監控主題使用Dashboard 對某一個主題的圖表進行集中展示,在 Dashboard 里可以輕松拖拽改變圖表的位置和布局,并可以通過圖表的 tag 快速對圖表進行定位和編輯。Grafana 的 Dashboard 可以通過導出為 Json 文檔,快速保存、復制,并可以通過 Dashboard 的在線模板庫選取符合要求的 Dashboard 模板。
四、數據中心監控對象介紹
空管數據中心需要監控的對象可以分為以下幾類:
1、網絡設備的監控 可以采用開啟網絡設備的 SNMP 功能,同時配置 Zabbix 的 SNMP 監控項來采集網絡設備的監控數據;
2、服務器硬件的監控 可以開啟服務器主板的 IPMI 功能,并配置 Zabbix IPMI 監控接口來收集硬件的各項數據如溫度、硬盤故障情況等;
3、實體服務器的監控 這些服務器可以通過安裝 Zabbix Agent 并配合 Zabbix 內置的 Linux與 Windows 的監控模板的配置,來收集主機的 CPU 負載、內存、磁盤 IO、網絡流量,運行進程數等各種數據;
4、虛擬機的監控 Zabbix 內置了 VMware 的虛擬機監控模板,可以結合該模板通過VCenter 遠程 SDK 來直接采集 Vmware 虛擬機的 CPU 負載、內存、磁盤使用情況等各種運行信息;
5、Web 服務的監控 數據中心常用的 Web 服務有 Apache、Nginx 等,監控此類 Web 服務可以編寫客戶端執行的采集 shell 腳本,并配合 Zabbix 配置自定義 Web 監控項來采集 Web 應用的各項性能數據;
6、數據庫的監控 數據中心一般常見的數據庫有 mysql、oracle 等,這些數據庫可以直接在 Zabbix配置相應的內置監控項,并通過 Zabbix 的監控接口來實現對數據庫運行狀態、運行性能等數據的采集;
7、對基于 Java 的應用服務的監控 數據中心常見的 Java 應用一般以 Tomcat 為主,要收集此類監控數據需要安裝 Zabbix Java Gateway,并開啟監控端的 JMX 協議,最后在 Zabbix Server 上配置 JMX 監控模板就可以實現 Java 應用程序的監控。
五、數據中心監控系統實施研究
依據上述 Zabbix 對數據中心各種監控對象的監控方法,基本可以對數據中心絕大多數需要監控的對象實現統一監控。Zabbix 雖然提供了各種圖形可視化功能,但是圖表的種類比較少,不能滿足空管分局數據中心監控平臺的可視化要求。Grafana 是利用 JavaScript 開發的強大的監控數據可視化工具,可以利用 Grafana 來對接 Zabbix 的監控數據源,對 Zabbix 采集的各種數據進行展示和分析。通過安裝 Grafana 對接的 Zabbix 中的 plugins,可以直接對接 Zabbix 的數據源,然后通過自定義數據中心的每一種監控對象的 Dashboard 模板,來實現對數據中心每一類對象監控數據的可視化展示。
以數據中心虛擬機的監控模板 Dashboard 的創建為例,先基于數據源的各種監控變量,如 CPU 使用量、內存占用量、網絡 IO 流量、磁盤讀寫情況來設置各種Dashboard 相應的 Panel,如 CPU 使用情況圖、內存占用率圖、網絡 IO 圖等。再將設置好的 panel 布局組合成數據中心虛擬機監控的 Dashboard,在此 Dashboard 中可以對數據中心的各項關鍵指標進行監控。其他數據中心監控對象的 Dashboard 都可以按照這個流程來進行創建。數據中心服務器監控Dashboard 的效果如圖 2所示。
六、數據中心監控平臺建設
由于空管數據中心設備和各種應用服務眾多,該數據中心運維監控平臺采用分布式的部署方式,具體部署方法如下: Zabbix Server 是采集監控數據的核心組件,為保障其可靠性,采用 2 臺服務器作為 Zabbix Server HA 集群來收集各中監控端發來的數據。第一臺服務器作為 Zabbix Web 前端來對 zabbix 進行配置和管理。為防止單點故障和保障數據可靠性,在第二臺服務器中安裝 mysql 負載均衡集群,作為 zabbix Server存儲監控數據的后端數據庫。第二臺服務器作為 Zabbix Proxy 用來中轉 Zabbix Agent 發送的數據。一臺部署在主機房,一臺部署在分區機房,分別收集各個區域的監控對象的數據,減輕 Zabbix Server 直接搜集監控數據的壓力。Grafana 采用一臺服務器進行安裝,作為數據中心監控平臺的前端可視化服務。數據中心的各個監控對象,可以按照之前所定義的分類分別進行相應的配置,來收集各種對象的監控數據。空管數據中心運維監控平臺架構如圖 3 所示。
綜上所述,通過上述架構建立的監控平臺基本可以實現對空管數據中心各種監控對象的狀態數據收集和可視化展示,解決空管數據中心設備和信息系統監控所面臨的難題,提高空管數據中心的運維效率。
七、結束語
Zabbix 是一種可以對數據中心各類監控對象進行狀態數據收集的監控平臺,除了具有多種常見數據中心監控對象的監控能力,還可以自定義監控腳本和監控項,對監控對象的類型進行擴展,擁有 Grafana 強大的可視化功能。該平臺適用于空管數據中心的各種監控場景,為其提供高效、高可視化、低成本的數據中心運維監控平臺。可有效解決空管數據中心運維監控效率低下、監控對象類型少、監控數據可視化程度低等問題,實現空管設備集成化監控。
參考文獻
[1]劉遠超,李樹彬.基于Zabbix和微信企業號實現網絡監控的研究[J],山東科學,2017(04)
[2]吳兆松.Zabbix企業級分布式監控系統[M].電子工業出版社,2014
[3]劉思堯.基于Zabbix的自動化巡檢系統的研究與實現[J].電力信息與通信技術,2014(12)
[4]楊厚云.Centos下Zabbix的配置與使用[J].北京信息科技大學學報,2015(01)
[5]王宗敏,基于Zabbix的分布式服務器監控應用研究[J].通信學報,2013(S2)
[6]王曉鋒.劉淵.基于云平臺的網絡安全試驗管理系統[J]. 現代計算機 ,2020(01)