溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Zabbix功能概述及架構(gòu)介紹(理論篇)

發(fā)布時(shí)間:2020-07-22 16:54:52 來源:網(wǎng)絡(luò) 閱讀:50381 作者:黎晨 欄目:建站服務(wù)器

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è)軟件包即可提供如下特性

數(shù)據(jù)收集

  • 可用性及性能檢測(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í)告警配置

  • 可以自定義告警升級(jí)(escalation)、接收者及告警方式

  • 告警信息可以配置并允許使用宏(macro)變量

  • 通過遠(yuǎn)程命令實(shí)行自動(dòng)化動(dòng)作(action)

實(shí)時(shí)繪圖

  • 通過內(nèi)置的繪圖引擎實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)實(shí)時(shí)繪圖

擴(kuò)展的圖形化顯示

  • 允許自定義創(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ù)存儲(chǔ)在數(shù)據(jù)庫(kù)中

  • 歷史數(shù)據(jù)可配置

  • 內(nèi)置數(shù)據(jù)清理機(jī)制

配置簡(jiǎn)單

  • 主機(jī)通過添加監(jiān)控設(shè)備方式添加

  • 一次配置,終生監(jiān)控(除非調(diào)整或刪除)

  • 監(jiān)控設(shè)備允許使用模板

模板使用

  • 模板中可以添加組監(jiān)控

  • 模板允許繼承

網(wǎng)絡(luò)自動(dòng)發(fā)現(xià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接口

  • web前端采用php編寫

  • 訪問無障礙

  • 你想怎么做就能做么做

  • 審計(jì)日志

Zabbix API

  • Zabbix API提供程序級(jí)別的訪問接口,第三方程序可以很快接入

權(quán)限系統(tǒng)

  • 安全的權(quán)限認(rèn)證

  • 用戶可以限制允許維護(hù)的列表

全特性、agent易擴(kuò)展

  • 在監(jiān)控目標(biāo)上部署

  • 支持Linux及Windows

二進(jìn)制守護(hù)進(jìn)程

  • C開發(fā),高性能,低內(nèi)存消耗

  • 易移植

具備應(yīng)對(duì)復(fù)雜環(huán)境情況

  • 通過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)控

Zabbix功能概述及架構(gòu)介紹(理論篇)

可實(shí)現(xiàn)大多數(shù)系統(tǒng)的監(jiān)控,包括windows、Linux、unix、Solaris、Mac等等,如圖:

Zabbix功能概述及架構(gòu)介紹(理論篇)

對(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))


Zabbix功能概述及架構(gòu)介紹(理論篇)

自定義報(bào)警機(jī)制:

如圖所示,

如果故障在10分鐘沒有被解決,可以短信或郵件通知系統(tǒng)管理員

如果故障在15分鐘沒有被解決,可以短信或郵件通知運(yùn)維人員

如果故障在30分鐘沒有被解決,可以短信或郵件通知經(jīng)理

Zabbix功能概述及架構(gòu)介紹(理論篇)

可以通過proxy代理服務(wù)器,代理Zabbix server搜集被監(jiān)控的監(jiān)控?cái)?shù)據(jù),并統(tǒng)一發(fā)送到Server端

Zabbix功能概述及架構(gòu)介紹(理論篇)



2、zabbix程序架構(gòu)

架構(gòu)圖如下:

Zabbix功能概述及架構(gòu)介紹(理論篇)

Zabbix各組件的說明:

Zabbix Server

Zabbix Server為核心組件,用來獲取agent存活狀況及監(jiān)控?cái)?shù)據(jù)。所有的配置、統(tǒng)計(jì)、操作數(shù)據(jù)均通過Server進(jìn)行存取到database

Zabbix database

所有的Zabbix數(shù)據(jù)均存儲(chǔ)在數(shù)據(jù)庫(kù)中

Web GUI

為了更簡(jiǎn)單的無障礙的訪問Zabbix, 所以提供了web接口。該接口作為Zabbix Server的一部分,通常和server運(yùn)行在同一臺(tái)主機(jī)上

注意:如果采用SQLite作為數(shù)據(jù)庫(kù),web接口和Zabbix Server必須運(yùn)行在同一臺(tái)主機(jī)上

Proxy

Zabbix Proxy能夠代替Zabbix Server進(jìn)行性能及可用性數(shù)據(jù)采集。Proxy是Zabbix部署的可選組件。 如果想分擔(dān)單一Zabbix Server負(fù)載,推薦使用proxy。

Agent

Zabbix agents 部署在目標(biāo)監(jiān)控機(jī)上并監(jiān)控本地資源和應(yīng)用,將收集數(shù)據(jù)匯報(bào)給Zabbix Server

監(jiān)控流程:

通過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功能概述及架構(gòu)介紹(理論篇)

Zabbix功能概述及架構(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工作流程圖:

Zabbix功能概述及架構(gòu)介紹(理論篇)

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上檢索需要的信息。












向AI問一下細(xì)節(jié)

免責(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)容。

AI