Zabbix概述
Zabbix是一個企業級的開源分佈式監控解決方案,由C語言編寫而成的底層架構(server端和agent端),由一個團隊持續維護更新,軟件能夠自由下載使用,運做團隊靠提供收費的技術支持贏利。
Zabbix經過C/S模式採集數據,經過B/S模式在web端展現和配置。
被監控端:主機經過安裝agent方式採集數據,網絡設備經過SNMP方式採集數據
Server端:經過收集SNMP和agent發送的數據,寫入MySQL數據庫,再經過php+apache在web前端展現。
Zabbix運行條件
Zabbix Server需運行在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬件要求低
目前已有的agent基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows等
支持各種常見的網絡設備
Zabbix功能
具有常見的商業監控軟件所具有的功能(主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪製)
支持自動發現網絡設備和服務器,支持分佈式,能集中展現、管理分佈式的監控點,擴展性強,server提供通用接口,能夠本身開發完善各種監控。
Zabbix優劣勢
開源,無軟件成本投入;
Server對設備性能要求低(實際測試環境:虛擬機Redhat EL AS5,2GCPU 1G內存,監控5臺設備,CPU使用率基本保持在10%如下,內存剩餘400M以上);
支持設備多;
支持分佈式集中管理;
開放式接口,擴展性強;
當監控的item比較多服務器隊列比較大時能夠採用被動狀態,被監控客戶端主動從server端去下載須要監控的item而後取數據上傳到server端。這種方式對服務器的負載比較小。
無廠家支持,出現問題解決比較麻煩
需在被監控主機上安裝agent,全部數據都存在數據庫裏,產生的數據據很大,瓶頸主要在數據庫。
Zabbix工做原理
Agentd安裝在被監控的主機上,Agent負責按期收集客戶端本地各項數據,併發送至Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB能夠看到數據在前端展示圖像。當Zabbix監控某個具體的項目,改項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動做,動做包括:發送信息(郵件、微信、短信)、發送命令(SHELL 命令、Reboot、Restart、Install等)。
Zabbix工做模式
主動模式:由agent端主動收集信息發送給server端 工具是zabbix_sender
被動模式:由server端主動拉取信息 工具是zabbix_get
Zabbix角色組件
Zabbix agent:負責部署在被監控主機上,把被監控主機的數據傳送給zabbix server
Zabbix server:負責接收agent發送的信息,組織配置信息,統計配置信息和操做數據等
Zabbix database: 用於存儲zabbix的全部配置信息,監控數據的數據庫
Zabbix web: zabbix的web界面,管理能夠經過zabbix的web界面管理zabbix配置以及查看zabbix的監控信息,能夠獨一部署在一臺服務器上
Zabbix proxy:分佈式環境中使用,zabbix proxy表明server端管理該區域中的信息收集,最終統一發往zabbix server
Zabbix通信方式
agent:經過專用的代理程序進行監控
ssh/Telnet:經過遠程控制協議進行通信
SNMP:經過SNMP協議與被監控對象進行通信,路由器和交換機支持
SNMP,其實也是一種agent
IPMI:經過IPMI接口進行監控,經過IPMI硬件接口監控,電壓,溫度,風扇,和電源狀態
JMX:經過(java management extensions Java管理擴展)監控JVM虛擬機
Zabbix分佈式的監控體系
監控數據被提交給zabbix proxy 再 提交給zabbix server
Zabbix監控架構
在實際監控架構中,zabbix根據網絡環境、監控規模等分了三種架構: server-client 、master-node-client、server-proxy-client三種 。
也是zabbix的最簡單的架構,監控機和被監控機之間不通過任何代理 ,直接由zabbix server和zabbix agentd之間進行數據交互。適用於網絡比較簡單,設備比較少的監控環境 。
其中proxy是server、client之間溝通的一個橋樑,proxy自己沒有前端,並且其自己並不存放數據,只是將agentd發來的數據暫時存放,然後再提交給server 。該架構常常是和master-node-client架構作比較的架構 ,通常適用於跨機房、跨網絡的中型網絡架構的監控。
該架構是zabbix最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境 。每一個node同時也是一個server端,node下面能夠接proxy,也能夠直接接client 。node有自已的配置文件和數據庫,其要作的是將配置信息和監控數據向master同步,master的故障或損壞對node其下架構的完整性。
謝謝閱讀!