1.Zabbix簡介
Zabbix 是一個企業級的分布式開源監控方案。
2.zabbix安裝
zabbix重要的不是部署,而是學會操作使用,所以推薦大家進行一鍵部署。
手動部署可參考官方文檔:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages
一鍵部署可參考:https://github.com/BillWang139967/zabbix_manager
docker上一鍵部署:https://github.com/BillWang139967/zabbix_install/wiki/server_docker
3.工作原理
一個監控系統運行的大概的流程是這樣的:
zabbix agent需要安裝到被監控的主機上,它負責定期收集各項數據,並發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖。這里agent收集數據分為主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
4.監控功能
主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細的報表圖表繪制
監控主機zabbix有專用的agent,可以監控Linux,Windows,FreeBSD等 。
監控網絡設備zabbix通過SNMP,ssh(不多用)
可監控對象
- 設備:服務器,路由器,交換機
- 軟件:OS,網絡,應用程序
- 主機性能指標監控
- 故障監控: down機,服務不可用,主機不可達
5.監控系統架構
C/P/S
客戶端/代理端/服務器端/,這種適用於大規模系統
6.Zabbix系統架構
7.Zabbix組件構成
Server
Zabbix server 是監控代理程序報告系統可用性、系統完成整性和統計信息的核心組件。Zabbix Server是所有配置信息、統計信息和操作數據的核心存儲器。
數據庫存儲
所有配置信息和Zabbix收集到的數據都被存儲在數據庫中。
Web界面
為了從任何地方和任何平台都輕松的訪問Zabbix,Zabbix提供了基於Web的界面。該界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server運行在同一台物理機器上。
Proxy代理服務器
Zabbix proxy 可以替Zabbix Server收集性能和可用性數據。Proxy代理服務器是Zabbix軟件可選擇部署的一部分;當然,Proxy代理服務器可以幫助單台Zabbix Server分擔負載壓力。
Agent監控代理
Zabbix agents監控代理 部署在監控目標上,能夠主動監控本地資源和應用程序,並將收集到的數據報告給Zabbix Server。
數據流
此外,了解Zabbix內部的數據流同樣很重要。為了創建一個監控項用於采集數據,必須先創建一個主機。轉換到Zabbix功能的其他部分,你必須先有一個監控項來創建觸發器,你必須有一個觸發器來創建動作。 因此,如果你想收到X服務器CPU負載過高的告警,你必須先為X服務器創建一個主機實體並關聯一個用於對CPU進行監控的監控項,然后如果CPU負載太高便會激活觸發器,接着會執行一個動作,給你發送告警郵件。雖然看起來有很多步驟,但是使用模板的話可以會很簡單。同時,這個設計可以創建一個非常靈活的配置。
8.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接口;