zabbix監控的基礎概念、工做原理及架構(一)

zabbix監控的基礎概念、工做原理及架構php

轉載於網絡前端

1、什麼是zabbix及優缺點java

Zabbix能監視各類網絡參數,保證服務器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。是一個基於WEB界面的提供企業級的開源分佈式系統監視以及網絡監視功能的企業級的開源解決方案。node

 

Agent端:主機經過安裝agent方式採集數據ios

Server端:經過收集agent發送的數據,寫入數據庫(MySQL,ORACLE),在經過php+apache/nginx在web前端展現nginx

Zabbix=cacti+Nagiosweb

 

優勢:基於兩款工具(cacti+Nagios)優勢於一身並更強大,實現企業級分佈式監控數據庫

缺點:需在被監控主機上安裝agent,全部數據都存在數據庫裏,產生的數據量很大,瓶頸主要在數據庫apache

 

2、監控功能安全

主機的性能監控、網絡設備性能監控、數據庫性能監控、多種警告方式、詳細的報表圖表繪製

監控主機zabbix有專用的agent,能夠監控Linux、Windows、FreeBSD等

監控網絡設備zabbix經過SNMP、ssh

可監控對象:

       設備:服務器、路由器、交換機

       軟件:OS、網絡、應用程序

       主機性能指標監控

       故障監控:down機、服務不可達、主機不可達

 

3、工做原理

一個監控系統運行的大概流程是這樣的:

Zabbix agent須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展示和繪圖。

 

這裏agent收集數據分爲主動和被動兩種模式:

主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy

被動:server向agent請求獲取監控項的數據,agent返回數據

 

4、zabbix的組件及進程

重要組件:

  • Zabbix由如下幾個組件部分構成:

  • zabbix server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行

  • database storage:專用於存儲全部配置信息,以及由zabbix收集的數據

  • web interface:zabbix的GUI接口,一般與server運行在同一臺主機上

  • proxy:可選組件,經常使用於分佈式監控環境中,代理server收集部分被監控端的監控數據並贊成發往server端

  • agent:部署在被監控主機上,負責收集本地數據併發往server端或proxy端

 

常見進程

  • 默認狀況下zabbix包含5個進程:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另一個zabbix_java_gataway是可選的,這個須要另外安裝。

  • Zabbix_agentd:客戶端守護進程,此進程收集客戶端數據,例如cpu負載、內存、磁盤使用狀況等。

  • Zabbix_get:zabbix工具,單獨使用的命令,一般在server或者proxy端執行獲取遠程客戶端信息的命令。一般用來排錯。例如在server端獲取不到客戶端的內存數據,可使用zabbix_get獲取客戶端內存的方式來作故障排查。

  • Zabbix_sender:zabbix工具,用於發送數據給server或者proxy,一般用於耗時比較長的檢查。不少檢查很是耗時,致使zabbix超時。因而咱們在腳本執行完畢以後,使用sender主動提交數據。

  • Zabbix_server:zabbix服務端守護進程。Zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gataway的數據最終都是提交到server,並非數據都是主動提交給zabbix_server,也有的是sever主動去取數據

  • Zabbix_proxy:zabbix代理守護進程,功能相似server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到sever

  • Zabbix_java_gataway:zabbix2.0以後引入的一個功能,顧名思義:java網關,相似agentd,可是隻用於java方面。須要特別注意的是,它只能主動取獲取數據,而不能被動獲取數據。它的數據最終會給到server或者proxy

 

5、zabbix監控環境中基本概念

  • 主機(host):主要監控的網絡設備,可由IP或DNS名稱指定;

  • 主機組(host group):主機的邏輯容器,能夠包含主機和模板,但同一個組織內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用

  • 監控項(item):一個特定監控指標的相關的數據;這些數據來自於被監控對象;item是zabbix進程數據收集的核心,相對某個監控對象,每一個item都由「key」標識

  • 觸發器(trigger):一個表達式,用於評估某監控對象的特定item內接收的數據是否在合理範圍內,也就是閾值;接收的數據量大於閾值時,觸發器狀態將從「OK」轉變爲「Problem」,當數據再次恢復到合理範圍,又轉變爲「OK」

  • 事件(event):觸發一個值得關注的事情,好比觸發器狀態轉變,新的agent或從新上線的agent的自動註冊等

  • 動做(action):指對於特定事件事先定義的處理方法,如發送通知,什麼時候執行操做

  • 報警升級(escalation):發送報警或者執行遠程命令的自定義方案,如每隔5分鐘發送一次報警,共發送5次等。

  • 媒介(media):發送通知的手段或者通道,如Email,Jabber或者SMS等

  • 通知(notification):經過選定的媒介向用戶發送有關某事件的信息

  • 遠程命令(remote command):預約義的命令,可在被監控主機處於某特定條件下時自動執行

  • 模板(template):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;模板能夠直接連接到某個主機

  • 應用(application):一組item的集合

  • Web場景(web scennario):用於檢測web站點可用性的一個或多個HTTP請求

  • 前端(frontend):zabbix的web接口

 

6、zabbix的監控架構

在實際監控架構中,zabbix根據網絡環境、監控規模等分了三種架構:server-client、master-node-client、server-proxy-client三種。

  • server-client架構

也是zabbix最簡單的架構,監控機和被監控機直接不通過任何代理,直接由zabbix server和zabbix agentd之間進行數據交互。適用於網絡比較簡單,設備比較少的監控環境。

  • server-proxy-client架構

其中proxy是server、client之間溝通的一個橋樑,proxy自己沒有前端,並且其自己並不存放數據,只是將agentd發來的數據暫時存放,然後再提交給server。該架構常常是和master-node-client架構作比較的架構,通常適用於跨機房、跨網絡的中型網絡架構的監控

  • master-node-clinet架構

該架構是zabbix最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境。每一個node同時也是一個server端,node下面能夠接proxy,也能夠直接接client。Node有本身的配置文件和數據庫,其要作的是將配置信息和監控數據向master同步

 

7、zabbix監控範疇

硬件監控:Zabbix IPMI Interface

系統監控:Zabbix Agent Interface

java監控:ZabbixJMXInterface

網絡設備監控:Zabbix SNMP Interface

應用服務監控:Zabbix Agent UserParameter

MySQL數據庫監控:percona-monitoring-pldlgins

URL監控:Zabbix Web監控

相關文章
相關標籤/搜索