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