您好,登錄后才能下訂單哦!
1、Zabbix的功能概述
1.1 zabbix是什么
Alexei Vladishev創(chuàng)建了Zabbix項(xiàng)目,當(dāng)前處于活躍的開發(fā)狀態(tài),Zabbix SIA提供支持。
Zabbix是一個(gè)企業(yè)級(jí)的、開源的、分布式的監(jiān)控套件。
Zabbix可以對(duì)網(wǎng)絡(luò)和服務(wù)進(jìn)行監(jiān)控。 Zabbix利用靈活的告警機(jī)制,可實(shí)現(xiàn)微信、短信和郵件的自動(dòng)報(bào)警。Zabbix利用存儲(chǔ)的監(jiān)控?cái)?shù)據(jù)提供監(jiān)控報(bào)告及實(shí)現(xiàn)圖形化顯示。
Zabbix支持polling和trapping兩種方式。所有的Zabbix報(bào)告都可以通過配置參數(shù)在WEB界面進(jìn)行訪問。你可以通過Web界面實(shí)時(shí)查看網(wǎng)絡(luò)和服務(wù)的監(jiān)控狀況。 不管你是小型組織還是大規(guī)模的公司,Zabbix都可以通過不通的配置來扮演監(jiān)控你的IT基礎(chǔ)框架的角色。
Zabbix是零成本的,因?yàn)閆abbix編寫和發(fā)布基于GPL V2協(xié)議. 意味著源代碼是免費(fèi)發(fā)布的。
同時(shí),Zabbix公司也提供商業(yè)化的技術(shù)支持。
1.2 zabbix特性
Zabbix是一個(gè)高度集成的網(wǎng)絡(luò)監(jiān)控套件,通過一個(gè)軟件包即可提供如下特性
可用性及性能檢測(cè)
支持SNMP(trapping及polling)、IPMI、JMX監(jiān)控
自定義檢測(cè)
自定義間隔收集收據(jù)
server/proxy/agents實(shí)現(xiàn)分布監(jiān)控環(huán)境
允許靈活地自定義故障閥值,Zabbix中稱為觸發(fā)器(trigger), 存儲(chǔ)在后端數(shù)據(jù)庫(kù)中
可以自定義告警升級(jí)(escalation)、接收者及告警方式
告警信息可以配置并允許使用宏(macro)變量
通過遠(yuǎn)程命令實(shí)行自動(dòng)化動(dòng)作(action)
通過內(nèi)置的繪圖引擎實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)實(shí)時(shí)繪圖
允許自定義創(chuàng)建多監(jiān)控項(xiàng)視圖
網(wǎng)絡(luò)拓?fù)?network maps)
自定義的面板(screen)和slide shows,并允許在dashboard頁(yè)面顯示
報(bào)告
高等級(jí)(商業(yè))監(jiān)控資源
數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中
歷史數(shù)據(jù)可配置
內(nèi)置數(shù)據(jù)清理機(jī)制
主機(jī)通過添加監(jiān)控設(shè)備方式添加
一次配置,終生監(jiān)控(除非調(diào)整或刪除)
監(jiān)控設(shè)備允許使用模板
模板中可以添加組監(jiān)控
模板允許繼承
自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備
agent自動(dòng)注冊(cè)
自動(dòng)發(fā)現(xiàn)文件系統(tǒng)、網(wǎng)卡設(shè)備、SNMP OID等
web前端采用php編寫
訪問無障礙
你想怎么做就能做么做
審計(jì)日志
Zabbix API提供程序級(jí)別的訪問接口,第三方程序可以很快接入
安全的權(quán)限認(rèn)證
用戶可以限制允許維護(hù)的列表
在監(jiān)控目標(biāo)上部署
支持Linux及Windows
C開發(fā),高性能,低內(nèi)存消耗
易移植
通過Zabbix proxy可以非常容易的創(chuàng)建遠(yuǎn)程監(jiān)控
1.3 Zabbix功能
監(jiān)控拓?fù)鋱D說明:
(1)可以通過微信、短信、郵件實(shí)現(xiàn)自動(dòng)報(bào)警機(jī)制
(2)可以通過Web頁(yè)面進(jìn)行配置,監(jiān)控狀態(tài)查看
(3)可以通過SNMP協(xié)議實(shí)現(xiàn)對(duì)打印機(jī)、路由器、交換機(jī)的設(shè)備的監(jiān)控
通過在植入agent的方式對(duì)服務(wù)器主機(jī)進(jìn)行監(jiān)控
通過ping或者是port檢查的方式實(shí)現(xiàn)IP和PORT的監(jiān)控
可實(shí)現(xiàn)大多數(shù)系統(tǒng)的監(jiān)控,包括windows、Linux、unix、Solaris、Mac等等,如圖:
對(duì)主機(jī)可監(jiān)控項(xiàng)包括:
CPU:CPU負(fù)載,CPU使用率
Memory:內(nèi)存使用率,可交換內(nèi)存/虛擬內(nèi)存使用率
Network:網(wǎng)絡(luò)傳輸、網(wǎng)絡(luò)故障、丟包
Disk:磁盤使用率,磁盤I/O
Service:進(jìn)程監(jiān)控、界面服務(wù)、TCP端口連接,響應(yīng)時(shí)間、DNS監(jiān)控、NTP監(jiān)控
Log:日志監(jiān)控,文本日志,事件日志
File:文件監(jiān)控
Other:性能計(jì)數(shù)器(僅限于Windows系統(tǒng))
自定義報(bào)警機(jī)制:
如圖所示,
如果故障在10分鐘沒有被解決,可以短信或郵件通知系統(tǒng)管理員
如果故障在15分鐘沒有被解決,可以短信或郵件通知運(yùn)維人員
如果故障在30分鐘沒有被解決,可以短信或郵件通知經(jīng)理
可以通過proxy代理服務(wù)器,代理Zabbix server搜集被監(jiān)控的監(jiān)控?cái)?shù)據(jù),并統(tǒng)一發(fā)送到Server端
2、zabbix程序架構(gòu)
架構(gòu)圖如下:
Zabbix各組件的說明:
Zabbix Server為核心組件,用來獲取agent存活狀況及監(jiān)控?cái)?shù)據(jù)。所有的配置、統(tǒng)計(jì)、操作數(shù)據(jù)均通過Server進(jìn)行存取到database
所有的Zabbix數(shù)據(jù)均存儲(chǔ)在數(shù)據(jù)庫(kù)中
為了更簡(jiǎn)單的無障礙的訪問Zabbix, 所以提供了web接口。該接口作為Zabbix Server的一部分,通常和server運(yùn)行在同一臺(tái)主機(jī)上
注意:如果采用SQLite作為數(shù)據(jù)庫(kù),web接口和Zabbix Server必須運(yùn)行在同一臺(tái)主機(jī)上
Zabbix Proxy能夠代替Zabbix Server進(jìn)行性能及可用性數(shù)據(jù)采集。Proxy是Zabbix部署的可選組件。 如果想分擔(dān)單一Zabbix Server負(fù)載,推薦使用proxy。
Zabbix agents 部署在目標(biāo)監(jiān)控機(jī)上并監(jiān)控本地資源和應(yīng)用,將收集數(shù)據(jù)匯報(bào)給Zabbix Server
通過zabbix監(jiān)控?cái)?shù)據(jù)流,并采取相應(yīng)的措施。
首先要?jiǎng)?chuàng)建一個(gè)host,再創(chuàng)建一個(gè)item來搜集數(shù)據(jù)
通過item來創(chuàng)建觸發(fā)器(trigger)
通過觸發(fā)器(trigger)來創(chuàng)建一個(gè)動(dòng)作(action)
例如:如果你想監(jiān)控一個(gè)服務(wù)器的CPU負(fù)載狀況,你首先為該服務(wù)器創(chuàng)建一個(gè)主機(jī)條目,其次是創(chuàng)建一個(gè)item來監(jiān)控服務(wù)器的CPU狀況,并創(chuàng)建相應(yīng)的觸發(fā)機(jī)制,當(dāng)cpu負(fù)載達(dá)到某個(gè)閥值,觸發(fā)操作,該操作包括執(zhí)行設(shè)定的動(dòng)作和發(fā)送郵件報(bào)警。
可以將這些操作設(shè)置成一個(gè)模板,要監(jiān)控某臺(tái)主機(jī)的時(shí)候,直接套用模板即可。
Zabbix各組件結(jié)構(gòu)圖:
Zabbix相關(guān)術(shù)語(yǔ):
相關(guān)名詞解釋:
主機(jī)(host)
一個(gè)你想監(jiān)控的網(wǎng)絡(luò)設(shè)備(需要知道IP/DNS)
主機(jī)組(host group)
一個(gè)邏輯的主機(jī)組,它包含主機(jī)和模板。主機(jī)和模板在同一個(gè)主機(jī)內(nèi)的話模板不能被link到其他上。主機(jī)組通常用于給不同的用戶組創(chuàng)建訪問權(quán)限
監(jiān)控項(xiàng)(item)
你想從主機(jī)中收集到的數(shù)據(jù)
觸發(fā)器(trigger)
一個(gè)邏輯表達(dá)式,用來表達(dá)從監(jiān)控項(xiàng)獲取的數(shù)據(jù)達(dá)到了預(yù)設(shè)的故障閥值
當(dāng)接收到的監(jiān)控值達(dá)到了預(yù)設(shè)的閥值,則觸發(fā)器狀態(tài)由’OK’變更為’Problem’,當(dāng)收到的監(jiān)控值低于閥值,則狀態(tài)保持/變更為’OK’
事件(event)
一個(gè)事情發(fā)生如觸發(fā)器狀態(tài)變更或一個(gè)自動(dòng)發(fā)現(xiàn)(discovery)/agent自動(dòng)注冊(cè)等
動(dòng)作(action)
當(dāng)一個(gè)事件發(fā)生時(shí)預(yù)設(shè)的處理過程
一個(gè)動(dòng)作(action)包括操作(operations,如發(fā)送告警)和條件(當(dāng)指定的操作完成)
告警升級(jí)(escalation)
在動(dòng)作中一個(gè)自定的操作執(zhí)行過程,一個(gè)發(fā)送告警/執(zhí)行遠(yuǎn)程命令的隊(duì)列
媒介(media)
發(fā)送告警的渠道
告警(notification)
通過媒介(media)渠道發(fā)送事件的消息
遠(yuǎn)程命令(remote command)
當(dāng)監(jiān)控主機(jī)達(dá)到某些條件(condition)后預(yù)設(shè)的自動(dòng)執(zhí)行的命令
模板(template)
一組包含監(jiān)控項(xiàng)、觸發(fā)器、繪圖、面板(screen)、應(yīng)用、低級(jí)別自動(dòng)發(fā)現(xiàn)規(guī)則等并且能被其他主機(jī)應(yīng)用的實(shí)體
模板能夠提升主機(jī)部署監(jiān)控任務(wù)的速度,同時(shí)也非常容易對(duì)監(jiān)控任務(wù)做批量(mass)更新。模板被主機(jī)鏈接(link).
應(yīng)用(application)
監(jiān)控項(xiàng)邏輯組
web方案(scenario)
對(duì)一個(gè)web站點(diǎn)可用性進(jìn)行檢查的一個(gè)或多個(gè)http請(qǐng)求
前端(frontend)
Zabbix提供的web接口
Zabbix API
Zabbix API允許通過JSON RPC協(xié)議去創(chuàng)建、更新、獲得Zabbix對(duì)象(如主機(jī)、監(jiān)控項(xiàng)、繪圖等等)以及完成自定義任務(wù)
Zabbix server
Zabbix軟件中心進(jìn)程,用于連通Zabbix proxy及agent完成監(jiān)控、評(píng)估觸發(fā)器、發(fā)送告警以及中心數(shù)據(jù)存儲(chǔ)
Zabbix agent
部署在監(jiān)控主機(jī)上的進(jìn)程,用于監(jiān)控本地資源和應(yīng)用
Zabbix proxy
替代Zabbix server完成數(shù)據(jù)收集的進(jìn)程,通常用于降低中心Zabbix Server的負(fù)載
節(jié)點(diǎn)(node)
一套完整的Zabbix server配置,通常位于分布式系統(tǒng)中,用于負(fù)責(zé)本區(qū)域的監(jiān)控
Zabbix工作流程圖:
Server
Zabbix server是Zabbix軟件的核心進(jìn)程。
Server通過polling和trapping采集數(shù)據(jù)來判斷是否達(dá)到閥值,從而使用觸發(fā)器發(fā)送報(bào)警給用戶。Server也可以通過簡(jiǎn)單服務(wù)檢查(simple service check)來完成遠(yuǎn)程網(wǎng)絡(luò)服務(wù)檢測(cè)。
Server既是保存所有配置、統(tǒng)計(jì)和操作數(shù)據(jù)的數(shù)據(jù)庫(kù),也是故障報(bào)警服務(wù)。
Zabbix server根據(jù)不同功能可劃分為三個(gè)部分:Zabbix server、Web GUI及Database。
由于Zabbix的所有的配置信息保存在數(shù)據(jù)庫(kù)中,server和web GUI可以直接進(jìn)行操作。比如,通過Web界面(或者API)創(chuàng)建一個(gè)新的監(jiān)控項(xiàng)時(shí),它將創(chuàng)建的數(shù)據(jù)插入數(shù)據(jù)庫(kù)。一分鐘左右Zabbix server會(huì)查詢監(jiān)控項(xiàng)數(shù)據(jù)表,并將查詢的監(jiān)控項(xiàng)列表保存在自己的緩存(cache)中。這也是為什么通過Zabbix前端進(jìn)行的變更將在兩分鐘左右生效的原因。
Zabbix server以守護(hù)(daemon)進(jìn)程方式運(yùn)行。
Zabbix server默認(rèn)要求運(yùn)行在非root賬戶下。
如果Zabbix server和agent運(yùn)行在同一臺(tái)主機(jī)上,建議分別運(yùn)行在不同的用戶下,因?yàn)橐坏┻\(yùn)行的同一個(gè)用戶下,agent將可以訪問server的配置文件,并且能夠輕松取得Zabbix Admin級(jí)別用戶,例如,數(shù)據(jù)庫(kù)密碼。
Zabbix server在以下平臺(tái)進(jìn)行過測(cè)試:
Linux
Solaris
AIX
HP-UX
Mac OS X
FreeBSD
OpenBSD
NetBSD
SCO Open Server
Tru64/OSF1
Agent:
Zabbix agent部署在被監(jiān)控主機(jī)上用來監(jiān)控本地資源和應(yīng)用(如硬盤、內(nèi)存、處理器等)。
Zabbix agent收集本地主機(jī)運(yùn)行信息并將數(shù)據(jù)發(fā)送給Zabbix server進(jìn)行處理. 一旦出現(xiàn)異常(如硬盤滿或服務(wù)進(jìn)程中斷), Zabbix server會(huì)自動(dòng)響應(yīng)并進(jìn)行報(bào)警操作。
Zabbix agent利用本地系統(tǒng)調(diào)用完成統(tǒng)計(jì)信息收集,因此它非常的高效。
被動(dòng)(passive)和主動(dòng)(active)檢查
Zabbix agent提供被動(dòng)和主動(dòng)檢查方式。
在 被動(dòng)檢查 模式中agent應(yīng)答數(shù)據(jù)請(qǐng)求,Zabbix server或者proxy詢問agent數(shù)據(jù),如CPU load,然后Zabbix agent回送結(jié)果給server.
主動(dòng)檢查 處理過程將相對(duì)復(fù)雜,agent必須先進(jìn)行一次請(qǐng)求Zabbix server索取監(jiān)控項(xiàng)列表,然后發(fā)送對(duì)應(yīng)的值給server.
選擇是被動(dòng)還是主動(dòng)檢查,需要在 監(jiān)控項(xiàng)類型 中選擇’Zabbix agent’或者’Zabbix agent (active)’。
Zabbix agent運(yùn)行在被監(jiān)控主機(jī)上,可以通過守護(hù)進(jìn)行的方式運(yùn)行。
Zabbix agent一般要求運(yùn)行在非root賬戶下。
如果你在’root’賬戶下啟動(dòng)Zabbix agent,它將自動(dòng)選擇在操作系統(tǒng)中建立的’zabbix’用戶,除非你修改agent配置文件中’AllowRoot’參數(shù)。
Zabbix agent支持以下平臺(tái):
Linux
IBM AIX
FreeBSD
NetBSD
OpenBSD
HP-UX
Mac OS X
Solaris
Windows: 2000, Server 2003, XP, Vista, Server 2008, 7
代理proxy
Zabbix代理(proxy)通常用于替代server收集監(jiān)控信息并將數(shù)據(jù)發(fā)送給Zabbix server。所收集數(shù)據(jù)會(huì)先存儲(chǔ)在代理主機(jī)的緩存中然后傳送給Zabbix server。
代理是可選的,不過使用它可以有效的降低分布式環(huán)境中單一的Zabbix server負(fù)載。通過代理去收集監(jiān)控?cái)?shù)據(jù),server可以有效降低CPU和磁盤I/O消耗。
Zabbix代理可以出色的完成遠(yuǎn)程區(qū)域、分支機(jī)構(gòu)、無本地管理員的網(wǎng)絡(luò)的集中監(jiān)控。
Zabbix代理使用獨(dú)立的數(shù)據(jù)庫(kù)。
注意:Zabbix proxy數(shù)據(jù)庫(kù)可以使用SQLite, MySQL, PostgreSQL. 如果Oracle或IBM DB2在低等級(jí)自動(dòng)發(fā)現(xiàn)規(guī)則時(shí)存在限制和風(fēng)險(xiǎn)。
Zabbix proxy作為守護(hù)進(jìn)程運(yùn)行。
Zabbix proxy一般要求運(yùn)行在非root賬戶下。
如果在’root’賬戶運(yùn)行,它將自動(dòng)選擇之前已經(jīng)在操作系統(tǒng)建立的’zabbix’用戶,但是無法在編譯時(shí)或在配置文件中進(jìn)行配置。
Java gateway
zabbix2.0之后引入的一個(gè)功能。Java網(wǎng)關(guān),類似agentd,但是只用于監(jiān)控運(yùn)行在Java虛擬機(jī)上的Java應(yīng)用。它只能主動(dòng)去獲取數(shù)據(jù),而不能被動(dòng)獲取數(shù)據(jù)。它的數(shù)據(jù)最終會(huì)給到server或者proxy。
Zabbix 2.0通過Zabbix Java gateway的守護(hù)進(jìn)程對(duì)JMX應(yīng)用進(jìn)行監(jiān)控。Zabbix Java gateway是采用Java編寫的一個(gè)守護(hù)進(jìn)程,Zabbix Java gateway利用 JMX API 去請(qǐng)求遠(yuǎn)程的有關(guān)應(yīng)用。
Java gateway接受來自Zabbix server或者proxy的連接。在Zabbix server或proxy的配置文件中指定JAVA gateway的IP和端口,因此在每一個(gè)Zabbix server或proxy中只能配置一個(gè)Java gateway。
當(dāng)在Java gateway上的一個(gè)監(jiān)控項(xiàng)值更新了,Zabbix server或代理將連接Java gateway請(qǐng)求該值。同樣的,Java gateway不會(huì)緩存任何值。
Zabbix server或代理可以通過 StartJavaPollers 控制連接Java gateway的進(jìn)程。Java gateway在內(nèi)部通過 START_POLLERS 控制選項(xiàng)使用多線程啟動(dòng)。 在Zabbix Server端,如果一個(gè)連接請(qǐng)求超過了 Timeout 設(shè)定的秒數(shù),連接將會(huì)終止,但Java gateway也許此時(shí)依然忙于從JMX計(jì)數(shù)器中檢索該值。
建議 StartJavaPollers 小于或等于 START_POLLERS ,否則可能導(dǎo)致當(dāng)連接Java gateway時(shí)而Java gateway沒有多余的線程進(jìn)行處理。
當(dāng)Java gateway已經(jīng)運(yùn)行,需要在 server配置文件 中指定JavaGateway的IP和端口,如果JMX應(yīng)用采用Zabbix代理進(jìn)行監(jiān)控的話,你需要在 代理配置文件 中指定對(duì)應(yīng)的連接參數(shù)。
Sender
Zabbix sender命令行工具常用于發(fā)送性能數(shù)據(jù)給Zabbix server。
該工具常用于在長(zhǎng)時(shí)間運(yùn)行的用戶自定義腳本中以便不斷發(fā)送可用性及性能數(shù)據(jù)。
Get
Zabbix get用于連接Zabbix agent并從agent上檢索需要的信息。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。