zabbix的通訊方式及作用
agent:
通過專用的代理程序進行監(jiān)控,與常見的master/agent模型類似
ssh/telnet:
通過遠程控制協(xié)議進行通訊,比如ssh或者telnet。
SNMP:
SNMP協(xié)議的全稱為Simple Network Management Protocol;,被譯為簡單網(wǎng)絡(luò)管理協(xié)議,路由器、交換機這種硬件上不支持agent,但是這些硬件往往都支持SNMP協(xié)議,SNMP是一種比較久遠的、通行的協(xié)議,大部分網(wǎng)絡(luò)設(shè)備都支持這種協(xié)議,其實SNMP協(xié)議的工作方式也可以理解為master/agent的工作方式,只不過是在這些設(shè)備中內(nèi)置了SNMP的agent而已,所以,大部分網(wǎng)絡(luò)設(shè)備都支持這種協(xié)議。
IPMI:
通過標(biāo)準(zhǔn)的IPMI硬件接口,監(jiān)控被監(jiān)控對象的物理特征,比如電壓,溫度,風(fēng)扇狀態(tài),電源狀態(tài)等。
JMX:
通過JMX進行監(jiān)控,JMX(Java Management Extensions,即Java管理擴展),監(jiān)控JVM虛擬機,使用這種方法也是非常不錯的選擇。
zabbix結(jié)構(gòu)
基礎(chǔ)架構(gòu)
一般情況下,我們將zabbix agent部署到被監(jiān)控主機上,由agent采集數(shù)據(jù),報告給負責(zé)監(jiān)控的中心主機master,負責(zé)監(jiān)控的中心主機被稱為zabbix server,zabbix server將從agent端接收到的信息存儲于zabbix的數(shù)據(jù)庫中,我們把zabbix的數(shù)據(jù)庫端稱為zabbix database, 如果管理員需要查看各種監(jiān)控信息,則需要zabbix的GUI,zabbix的GUI是一種Web GUI,我們稱之為zabbix web,zabbix web是使用php編寫的。以下是基礎(chǔ)架構(gòu):

分布式架構(gòu)
當(dāng)監(jiān)控規(guī)模變得龐大時,我們可能有成千上萬臺設(shè)備需要監(jiān)控,這時我們是否需要部署多套zabbix系統(tǒng)進行監(jiān)控呢?如果部署多套zabbix監(jiān)控系統(tǒng),那么監(jiān)控壓力將會被分攤,但是,這些監(jiān)控的對象將會被盡量平均的分配到不同的監(jiān)控系統(tǒng)中,這個時候,我們就無法通過統(tǒng)一的監(jiān)控入口,去監(jiān)控這些對象了,雖然分攤了監(jiān)控壓力,但是也增加了監(jiān)控工作的復(fù)雜度,那么,我們到底該不該建立多套zabbix監(jiān)控系統(tǒng)從而分攤巨大的監(jiān)控壓力呢?
zabbix天生就有處理這種問題的能力,因為zabbix支持分布式監(jiān)控,我們可以把成千上萬臺的被監(jiān)控對象分成不同的區(qū)域,每個區(qū)域中設(shè)置一臺代理主機,區(qū)域內(nèi)的每個被監(jiān)控對象的信息被agent采集,提交給代理主機,在這個區(qū)域內(nèi),代理主機的作用就好比zabbix server,我們稱這些代理主機為zabbix proxy,zabbix proxy再將收集到的信息統(tǒng)一提交給真正的zabbix server處理,這樣,zabbix proxy分攤了zabbix server的壓力,同時,我們還能夠通過統(tǒng)一的監(jiān)控入口,監(jiān)控所有的對象,當(dāng)監(jiān)控規(guī)模龐大到需要使用zabbix proxy時,zabbix的架構(gòu)如下圖:

zibbix web界面結(jié)構(gòu)及功能
管理: 菜單中,一般用于管理zabbix自身及zabbix相關(guān)設(shè)置。

配置: 菜單中,一般用于配置監(jiān)控相關(guān)設(shè)置。

監(jiān)測: 菜單中,一般用于查看被監(jiān)控的相關(guān)數(shù)據(jù)

報表: 菜單中,可以為管理員生成一段時間內(nèi)的監(jiān)控統(tǒng)計信息。

資產(chǎn)記錄: 菜單中,管理員可以查看被管控的主機有哪些,以及相關(guān)的資產(chǎn)信息。
