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