Zabbix 能監控各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位、解決存在的各類問題。是一個基於 Web 界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。前端
主要有如下幾個功能組件組成:java
參考官檔:https://www.zabbix.com/documentation/4.0/zh/manual/introduction/overviewnode
Serverweb
Zabbix server 是 Zabbix軟件的核心組件,agent 向其報告可用性、系統完整性信息和統計信息。server也是存儲全部配置信息、統計信息和操做信息的核心存儲庫。數據庫
數據庫安全
全部配置信息以及 Zabbix 採集到的數據都被存儲在數據庫中。服務器
Web 界面網絡
該界面是 Zabbix server 的一部分,一般(但不必定)和 Zabbix server 運行在同一臺物理機器上。架構
Proxy併發
Zabbix proxy 能夠代替 Zabbix server採集性能和可用性數據。Zabbix proxy在Zabbix的部署是可選部分;可是proxy的部署能夠很好的分擔單個Zabbix server的負載。
Agent
Zabbix agents 部署在被監控目標上,用於主動監控本地資源和應用程序,並將收集的數據發送給 Zabbix server。
主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細的報表圖表繪製;
監控主機 zabbix 有專用的 agent,能夠監控Linux、Windows、FreeBSD等。
監控網絡設備 zabbix 經過SNMP,SSH等
可監控對象:
一個監控系統運行的大概流程是這樣的:
zabbix agent 須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到 zabbix server 端,zabbix server 將數據存儲到數據庫中,zabbix web 根據數據在前端進行展現和繪圖。這裏 agent 收集數據分爲主動和被動兩種模式:
主動:agent 請求server 獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server / proxy
被動:server 向 agent 請求獲取監控項的數據,agent 返回數據。
參考官檔:https://www.zabbix.com/documentation/4.0/zh/manual/concepts
默認狀況下 zabbix 包含6個進程:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另一個zabbix_java_gateway是可選的,這個須要單獨安裝。
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_gateway的數據最終都是提交到server(說明:固然不是數據都是主動提交給zabbix_server,也有的是 server 主動去取數據)
zabbix_proxy
zabbix 代理守護進程。功能相似server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到 server 裏。
zabbix_java_gateway
zabbix2.0以後引入的一個功能。顧名思義:Java網絡,相似agentd,可是隻用於 Java 方面。須要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到 server 或者proxy。
參考官檔:https://www.zabbix.com/documentation/4.0/zh/manual/definitions
1)主機(host):要監控的網絡設備,可由IP或DNS名稱指定;
2)主機組(host group):主機的邏輯容器,能夠包含主機和模板,但同一個組織內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用;
3)監控項(item):一個特定監控指標的相關的數據;這些數據來自於被監控對象;item是zabbix進行數據收集的核心,相對某個監控對象,每一個item都由"key"標識;
4)觸發器(trigger):一個表達式,用於評估某監控對象的特定item內接收到的數據是否在合理範圍內,也就是閾值;接收的數據量大於閾值時,觸發器狀態將從"OK"轉變爲"Problem",當數據再次恢復到合理範圍,又轉變爲"OK";
5)事件(event):觸發一個值得關注的事情,好比觸發器狀態轉變,新的agent或從新上線的agent的自動註冊等;
6)動做(action):指對於特定事件事先定義的處理方法,如發送通知,什麼時候執行操做;
7)報警升級(escalation):發送警報或者執行遠程命令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等;
8)媒介(media):發送通知的手段或者通道,如Email、Jabber或者SMS等;
9)通知(notification):經過選定的媒介向用戶發送的有關某事件的信息;
10)遠程命令(remote command):預約義的命令,可在被監控主機處於某特定條件下時自動執行;
11)模板(template):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;模板能夠直接連接至某個主機;
12)應用(application):一組item的集合;
13)web場景(web scennario):用於檢測web站點可用性的一個活多個HTTP請求;
14)前端(frontend):Zabbix的web接口;
在實際監控架構中,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-client 架構
該架構是 zabbix 最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大環境。每一個node 同時也是一個 server 端,node下面能夠接 proxy,也能夠直接接client。node有本身的配置文件和數據庫,其要作的是將配置信息和監控數據向 master 同步,master 的故障或損壞不影響 node 其下的架構的完整性。