張苗苗
摘 要 監(jiān)控系統對于整個服務器集群、各種網絡設備硬件設備都有重要作用。本文通過研究開源監(jiān)控zabbix系統,搭建出一套自己的分布式監(jiān)控系統,并解決分析中心處理服務器的單點故障問題。對zabbix做二次開發(fā),添加特定監(jiān)控項等功能。實現一套分布式、高可用、高可靠的監(jiān)控系統。對于服務器等各種監(jiān)控對象實現從發(fā)現到故障定義報警的自動化,提高監(jiān)控運維工作自動化水平。
關鍵詞 zabbix 高可用 自動化 監(jiān)控系統
中圖分類號:TP393 文獻標識碼:A
0 前言
在一個IT環(huán)境中,會存在各種各樣的設備,包括軟件設備與硬件設備,其組成也是非常復雜的。保證這些資源的正常運行,需要IT人員進行設計、架構、維護和調優(yōu)。而掌握基礎環(huán)境和業(yè)務應用系統的可用性,需要獲取各個組件的運行狀態(tài),例如CPU的利用率、系統的負載、服務的運行、端口的連通、帶寬流量、網站狀態(tài)訪問碼信息。這些都離不開監(jiān)控系統。
1 zabbix系統簡介
Zabbix是一個基于WEB界面的分布式開源企業(yè)級自動化運維解決方案,能夠監(jiān)控各種網絡設備、存儲以及服務器系統應用的運行參數,可以提供靈活的報警機制使系統管理員快速定位到故障設備。其具有主動式監(jiān)控、支持微信、電話、郵件等多維化報警功能、支持多種系統的異構平臺、支持IP協議的設備均可監(jiān)控、開源軟件支持按需定向開發(fā)、支持腳本運行可實現自動化運維等特點。
一個監(jiān)控系統的組成大致可以分為兩部分:客戶端的數據采集和服務端的數據存儲分析和告警展示。Zabbix可以實現的功能有:數據收集,數據存儲,報警功能,可視化界面等。
2采用的研究方法與技術路線
通過開源工具搭建分布式集群監(jiān)控系統平臺,其中包含監(jiān)控中心處理節(jié)點以及其HA備份節(jié)點、數據存儲節(jié)點、數據檢測對象節(jié)點,實現數據的采集控制自動化處理。對故障類型以影響集群中節(jié)點的可用性的嚴重程度來進行分層劃分。相對應得故障檢測腳本、故障自動恢復腳本、故障日志記錄、故障報警等都會根據故障類型的劃分來做研究。
主要使用zabbix監(jiān)控系統作為整個監(jiān)控系統開發(fā)的平臺,選用python語言作為二次開發(fā)的語言。在自動化配置方面,結合puppet自動化運維工具技術,實現部分功能的自動化配置。在高可用方面,采用pacemaker+corosync的技術解決容易出現的單節(jié)點故障問題。對于數據庫mysql方面,對一些瓶頸做處理,優(yōu)化數據庫的性能。
3總體實施方案架構
本次方案使用開源監(jiān)控系統Zabbix進行部署,監(jiān)控對像主要劃分為個人PC、應用服務等,應用服務器中主要分為數據庫、瀏覽器、文件存儲服務器。將Zabbix-server存儲數據的數據庫單獨分離出來,避免數據庫存儲那里成為整個監(jiān)控系統的瓶頸。對于監(jiān)控中心處理服務器,也就是Zabbix-server,整個監(jiān)控系統數據處理的核心添加高可用,解決單點故障問題。
PC端說明:PC端主要代表個人PC,例如windows、mac系統等,采集的監(jiān)控項主要是主機的監(jiān)控,例如CPU、內存、磁盤、網卡等。采用Zabbix-agent模式來采集數據。
應用服務器說明:應用服務器端主要是采集服務器相關的數據信息,包括基礎服務器硬件性能的監(jiān)控,還有其上運行的應用程序的監(jiān)控,例如服務狀態(tài)、請求數,并發(fā)連接數。數據庫的事務數,死鎖數等。還有其上的日志監(jiān)控。同樣也是采用Zabbix-agent模式來采集數據。
監(jiān)控處理中心服務器說明:監(jiān)控處理中心服務器作為整個監(jiān)控系統的核心,負責接受agent發(fā)送的監(jiān)控信息,設置監(jiān)控項,監(jiān)控告警定義,監(jiān)控結構可視化的展示都在這個中心處理服務器上。因此如果其出現宕機,沒有備用的資源時,會導致整個監(jiān)控系統陷入癱瘓狀態(tài)。因此在此處添加了高可用配置項,提高整個監(jiān)控系統的高可用性。
存儲服務器:由于Zabbix-server的處理數據都會放在同一個數據庫中,包括得到的各種監(jiān)控信息等,這會使數據庫成為影響整個監(jiān)控系統性能的一個瓶頸,因此將其單獨分開存儲,提高整個監(jiān)控系統的處理效率。
4結語
本文所做的工作,主要是搭建一套高可用、高可靠、高效率的監(jiān)控。通過采用開源工具Zabbix,結合其他工具實現對其二次開發(fā)。設計出了一套能夠自動發(fā)現監(jiān)控主機對象、自動添加監(jiān)控項模板、自動采集監(jiān)控信息,并能在達到閾值時自動進行報警的監(jiān)控系統。并利用HA技術實現監(jiān)控系統的高可用性。
參考文獻
[1] 鄭紅強,王春露,王海峰,張?zhí)鞓?基于 B/S 架構的智能交通信息系統監(jiān)控平臺的設計[J]. 電子設計工程, 2010(04): 44-47.
[2] 楊豪,呂海明.Zabbix 系統在聯網視頻監(jiān)控平臺中的應用[J]. 信息通信, 2014(10): 86-87.
[3] 李頌華,張大紅.應用 ZABBIX 構建高校網絡服務器監(jiān)控系統[C]. 中國計算機用戶協會網絡應用分會 2008 年網絡新技術與應用研討會, 2008.
[4] J.O.Kephart and D.M.Chess,The Vision of Autonomic Computing,IEEE Computer,Vol.36,No.1,pp.41-50,Jan 2003.endprint