本發(fā)明涉及服務(wù)器監(jiān)控技術(shù),具體的說是一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法。
背景技術(shù):
現(xiàn)在互聯(lián)網(wǎng)技術(shù)已在社會的各個領(lǐng)域起著舉足輕重的地位,社會對互聯(lián)網(wǎng)的應(yīng)用需求推動著信息化建設(shè)的步伐,在信息化建設(shè)中服務(wù)器及相關(guān)平臺硬件是互聯(lián)網(wǎng)穩(wěn)定提供服務(wù)的基礎(chǔ)。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計算技術(shù)成為主流技術(shù),在互聯(lián)網(wǎng)系統(tǒng)中管理員管理的服務(wù)器等設(shè)備節(jié)點越來越多。
在IT運維工作中,需要做到對數(shù)量眾多的服務(wù)器硬件層和應(yīng)用軟件層全方位的監(jiān)控。如果只使用主機狀態(tài)監(jiān)控軟件,可能出現(xiàn)當WEB服務(wù)異常后,不能及時發(fā)現(xiàn)服務(wù)異常并及時處理故障,并使監(jiān)控日志信息收集滯后于操作系統(tǒng)日志。
鑒于現(xiàn)有互聯(lián)網(wǎng)系統(tǒng)中服務(wù)器節(jié)點管理方面所存在的問題,本發(fā)明提出一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法。Zabbix技術(shù)基于WEB界面,提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的開源解決方案;zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運營;并提供靈活的通知機制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器上,也可以實現(xiàn)虛擬化。
技術(shù)實現(xiàn)要素:
本發(fā)明針對目前技術(shù)發(fā)展的需求和不足之處,提供一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法。
本發(fā)明所述一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法,解決上述技術(shù)問題采用的技術(shù)方案如下:所述一種基于Zabbix和Docker的監(jiān)控系統(tǒng),采用基于zabbix、Docker兩種技術(shù)的基礎(chǔ)架構(gòu),主要包括Docker container、Zabbix Host、etcd服務(wù)器、Monitor Admin、Zabbix Server和Monitor Web,其中,所述Docker container對應(yīng)一個Zabbix Host,Zabbix Host為容器虛擬設(shè)備;所述etcd服務(wù)器用于對Docker Container進行分布式狀態(tài)管理,etcd服務(wù)器與Monitor Admin連接通信,將數(shù)據(jù)傳送給Monitor Admin;所述Monitor Admin用于定期檢測分析etcd服務(wù)器上報請求,Monitor Admin與所述Zabbix Server連接通信,將告警記錄上報至Zabbix Server,所述Monitor Web是Zabbix Server前端WEB監(jiān)控管理服務(wù)器,用于將報警信息進行分類,并報告運維管理人員。
所述基于Zabbix和Docker的監(jiān)控方法,主要包括如下步驟:
1)利用虛擬化技術(shù)采用Docker container對應(yīng)一個Zabbix Host,每個Zabbix host對應(yīng)一個Zabbix agent服務(wù)器;
2)Zabbix agent服務(wù)器將Docker container狀態(tài)上報給etcd服務(wù)器,etcd服務(wù)器對Docker Container進行分布式狀態(tài)管理,并動態(tài)自主注冊Zabbix Host,將數(shù)據(jù)傳送至Monitor Admin;
3)Monitor Admin負責定期檢測分析etcd服務(wù)器上報請求,并將數(shù)據(jù)狀態(tài)存放至數(shù)據(jù)庫,將告警記錄上報至Zabbix Server;
4)Zabbix Server通過API接受Monitor Admin上傳的報警信息,并將報警信息上傳給Monitor Web,Monitor Web將報警信息進行分類,并報告運維管理人員。
本發(fā)明所述一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明為服務(wù)器管理提供自動化的監(jiān)控技術(shù),使得管理員能夠自動化監(jiān)控互聯(lián)網(wǎng)系統(tǒng),并提供秒極時間粒度的監(jiān)控服務(wù),克服了現(xiàn)有服務(wù)器監(jiān)控中不能及時發(fā)現(xiàn)服務(wù)異常,不能及時處理故障的缺陷;確保實時監(jiān)控用戶網(wǎng)頁的可用性指標,便于管理員快速反饋。
附圖說明
附圖1為基于Zabbix和Docker的監(jiān)控系統(tǒng)的示意框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,對本發(fā)明所述一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法進一步詳細說明。
本發(fā)明提出一種基于Zabbix和Docker的監(jiān)控系統(tǒng)和方法,利用虛擬化技術(shù)采用Docker container對應(yīng)一個Zabbix Host,Zabbix Host是一個虛擬設(shè)備主機;采用etcd服務(wù)器進行分布式狀態(tài)管理,動態(tài)自動注冊Zabbix Host;Zabbix Host和監(jiān)控項之間的比例可配置,即可配置每個Zabbix Host上最多進行的監(jiān)控數(shù)量;監(jiān)控自動轉(zhuǎn)移,如果一個Zabbix Host出現(xiàn)異常,系統(tǒng)可以將上面的監(jiān)控項遷移至其他健康的Zabbix Host;通過Zabbix Actiont,將異常狀態(tài)的改變實時傳遞給系統(tǒng),而不是由系統(tǒng)進行輪訓。
本發(fā)明使用zabbix技術(shù),基于如下優(yōu)點:架構(gòu)簡單清晰、文檔豐富、代碼注釋詳細、agent/server部署方便,并且具有詳盡的監(jiān)控流程,以及一套易用的HTTP+JSON的接口等。本發(fā)明使用Docker技術(shù),基于考慮監(jiān)控的對象,由于用戶的增長以及用戶的操作,有動態(tài)的變化,因此利用Docker技術(shù),能夠可編程地、動態(tài)地控制zabbix agent的數(shù)量。
實施例1:
本實施例所述基于Zabbix和Docker的監(jiān)控系統(tǒng),采用基于zabbix、Docker兩種技術(shù)的基礎(chǔ)架構(gòu),如附圖1所示,主要包括Docker container、Zabbix Host、etcd服務(wù)器、Monitor Admin、Zabbix Server和Monitor Web,其中,所述Docker container對應(yīng)一個Zabbix Host,Zabbix Host為容器虛擬設(shè)備;所述etcd服務(wù)器用于對Docker Container進行分布式狀態(tài)管理,etcd服務(wù)器與Monitor Admin連接通信,將數(shù)據(jù)傳送給Monitor Admin;所述Monitor Admin用于定期檢測分析etcd服務(wù)器上報請求,Monitor Admin與所述Zabbix Server連接通信,將告警記錄上報至Zabbix Server,所述Monitor Web是Zabbix Server前端WEB監(jiān)控管理服務(wù)器,用于將報警信息進行分類,并報告運維管理人員。
所述Docker container對應(yīng)一個Zabbix Host,每個Zabbix host對應(yīng)一個Zabbix agent服務(wù)器,Zabbix agent服務(wù)器將Docker container狀態(tài)上報給etcd服務(wù)器。
所述etcd服務(wù)器用于對Docker Container進行分布式狀態(tài)管理,并動態(tài)自主注冊Zabbix Host,將數(shù)據(jù)傳送至Monitor Admin。
所述Monitor Admin用于定期檢測分析etcd服務(wù)器上報請求,并將數(shù)據(jù)狀態(tài)存放至數(shù)據(jù)庫,將告警記錄上報至Zabbix Server。
所述Monitor Web是Zabbix Server前端WEB監(jiān)控管理服務(wù)器,Zabbix Server通過API接受Monitor Admin進程上傳的報警信息,Monitor Web將報警信息進行分類,并報告運維管理人員。
所述Zabbix Host和監(jiān)控項之間的比例可配置,即可配置每個Zabbix Host上最多進行的監(jiān)控數(shù)量;如果一個Zabbix Host出現(xiàn)異常,該監(jiān)控系統(tǒng)可以將上面的監(jiān)控項遷移至其他健康的Zabbix Host。
本實施例所述基于Zabbix和Docker的監(jiān)控系統(tǒng),其具體實施過程如下:
1)利用虛擬化技術(shù)采用Docker container對應(yīng)一個Zabbix Host,每個Zabbix host對應(yīng)一個Zabbix agent服務(wù)器;
2)Zabbix agent服務(wù)器將Docker container狀態(tài)上報給etcd服務(wù)器,etcd服務(wù)器對Docker Container進行分布式狀態(tài)管理,并動態(tài)自主注冊Zabbix Host,將數(shù)據(jù)傳送至Monitor Admin;
3)Monitor Admin負責定期檢測分析etcd服務(wù)器上報請求,并將數(shù)據(jù)狀態(tài)存放至數(shù)據(jù)庫,將告警記錄上報至Zabbix Server;
4)Zabbix Server通過API接受Monitor Admin上傳的報警信息,并將報警信息上傳給Monitor Web,Monitor Web將報警信息進行分類,并報告運維管理人員。
當用戶利用本發(fā)明創(chuàng)建持續(xù)監(jiān)測任務(wù)時,針對用戶輸入的URL進行兩種類型的監(jiān)控,包括HTTP返回碼以及PING返回時間;當某類監(jiān)控的采樣數(shù)據(jù)異常時,例如HTTP返回500、PING超時,則在用戶界面上返回告警事件,用以提醒用戶;當監(jiān)控的采用數(shù)據(jù)正常時,再返回告警事件的狀態(tài)。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當變化或替換,皆應(yīng)落入本發(fā)明的專利保護范圍。