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


一、什么是zabbix及優缺點(對比cacti和nagios)
Zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
agent端:主機通過安裝agent方式采集數據。
server端:通過收集agent發送的數據,寫入數據庫(MySQL,ORACLE等),再通過php+apache在web前端展示.
zabbix = cacti + nagios
  • 優點:基於兩款工具優點於一身並更強大,實現企業級分布式監控。
  • 缺點:2.2版本帶寬占用大但是升級到2.4版本后更節省了帶寬資源,其它再無發現。
二、監控功能
主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細的報表圖表繪制
監控主機zabbix有專用的agent,可以監控Linux,Windows,FreeBSD等 。
監控網絡設備zabbix通過SNMP,ssh(不多用)
可監控對象
  • 設備:服務器,路由器,交換機
  • 軟件:OS,網絡,應用程序
  • 主機性能指標監控
  • 故障監控: down機,服務不可用,主機不可達
二、工作原理
一個監控系統運行的大概的流程是這樣的:
zabbix agent需要安裝到被監控的主機上,它負責定期收集各項數據,並發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖。這里agent收集數據分為主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
 
三、zabbix的組件及進程
 
重要組件
zabbix由以下幾個組件部分構成:
1、Zabbix Server:負責接收agent發送的報告信息的核心組件,所有配置,統計數據及操作數據均由其組織進行;
2、Database Storage:專用於存儲所有配置信息,以及由zabbix收集的數據;
3、Web interface:zabbix的GUI接口,通常與Server運行在同一台主機上;
4、Proxy:可選組件,常用於分布監控環境中,代理Server收集部分被監控端的監控數據並統一發往Server端;
5、Agent:部署在被監控主機上,負責收集本地數據並發往Server端或Proxy端;
注:zabbix node也是 zabbix server的一種 。
常見進程
默認情況下zabbix包含5個程序: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教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一個功能。顧名思義:Java網關,類似agentd,但是只用於Java方面。需要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到server或者proxy。
 
四、zabbix監控環境中基本概念
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的監控架構
在實際監控架構中,zabbix根據網絡環境、監控規模等 分了三種架構: server-client 、master-node-client、server-proxy-client三種 。
1、server-client架構
也是zabbix的最簡單的架構,監控機和被監控機之間不經過任何代理 ,直接由zabbix server和zabbix agentd之間進行數據交互。適用於網絡比較簡單,設備比較少的監控環境 。
2、server-proxy-client架構
其中proxy是server、client之間溝通的一個橋梁,proxy本身沒有前端,而且其本身並不存放數據,只是將agentd發來的數據暫時存放,而后再提交給server 。該架構經常是和master-node-client架構做比較的架構 ,一般適用於跨機房、跨網絡的中型網絡架構的監控。
3、master-node-client架構
該架構是zabbix最復雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境 。每個node同時也是一個server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和數據庫,其要做的是將配置信息和監控數據向master同步,master的故障或損壞對node其下架構的完整性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM