# 一、Zabbix簡介
Zabbix是基于Web界面的分布式系統監控的企業級開源軟件。可以監控各種系統與設備,網絡參數,保證服務器設備安全運營;提供靈活的通知機制。
## (1)Zabbix功能
CPU負荷、內存使用、磁盤使用、網絡狀況、端口監視、日志監控。
Zabbix邏輯圖:

## (2)Zabbix server
1、Zabbix server是整個Zabbix軟件的核心程序。
2、Server通過輪詢和捕獲數據,計算是否滿足觸發器條件,向用戶發送通知。它是Zabbix監控代理和Proxy代理報告系統可用性和完整性數據的核心組件。Server自身可以通過簡單服務遠程檢查網絡服務(如Web服務器和郵件服務)。
3、Sever是一個包含了被存儲了所有配置,統計方面的和可操作數據的中央倉庫,它是監控系統問題升級以至于激活警告管理器的Zabbix中的實體。
4、基本的Zabbix服務器起作用分三個不同的組件;他們是:Zabbix服務器,Web前端和數據庫存儲。
5、Zabbix的所有配置信息都存儲在服務器和Web前端進行交互的數據庫中。Zabbix的所有配置信息都存儲在服務器和Web前端進行交互的數據庫中。例如,當你通過Web前端(或者API)新增一個條目時,它會被添加到數據庫的item表里。然后,Zabbix服務器以每分鐘一次的頻率查詢item表中的活動列表,接著將它存儲在Zabbix服務器中的緩存里。這就是為什么Zabbix前端所做的任何更改最多需要花費兩分鐘才能顯示在最新的數據段的原因。
## (3)Zabbix agent
Zabbix agents可以執行被動(passive)和主動(active)兩種檢查方式。
1、在passive check 模式中agent應答數據請求,Zabbix server(或者proxy)詢問agent數據,如CPU 的負載情況,然后Zabbix agent回送結果。
2、Active checks 處理過程將相對復雜。 Agent必須首先從Zabbix sever索取監控項列表以進行獨立處理,然后周期性地發送新的值給server。
3、執行被動或主動檢查是通過選擇相應的監測項目類型來配置的。item type. Zabbix agent處理監控項類型有’Zabbix agent’和’Zabbix agent (active)’。
## (4)Zabbix支持的平臺
由于安全要求和服務器關鍵任務的操作, UNIX系統是唯一能夠提供必要性能,容錯和恢復能力的操作系統. Zabbix運轉也是市場領先版本.
Zabbix server支持以下平臺:
Linux
Solaris
AIX
HP-UX
Mac OS X
FreeBSD
OpenBSD
NetBSD
SCO Open Server
Tru64/OSF1
Zabbix agent支持以下平臺:
Linux
IBM AIX
FreeBSD
NetBSD
OpenBSD
HP-UX
Mac OS X
Solaris: 9, 10, 11
Windows: 支持2000后所有桌面和服務器版。
# 二、Zabbix 概述
## (1)組件概述
- Zabbix Server:負責接收agent發送的報告信息的核心組件,所有配置、統計數據及操作數據均由其組織進行。
- Database Storage:專用于存儲所有配置信息,以及由Zabbix收集的數據。
- Web interface:Zabbix的GUI接口,通常與Server運行在同一臺主機上。
- Proxy:可選組件,常用于分布式監控環境中,代理Server收集部分被監控端的監控數據并統一發往server端。
- Agent:部署在被監控主機上,負責收集本地數據并發往Server端或Proxy端。
## (2)Zabbix web接口概覽
- Monitoring:與“監控”功能相關的頁面大多都在此處,如graphs、triggers、screens及maps等。
- Inventory:主機資產清單。
- Reports:提供強大且直觀報告功能。
- Configuration:監控系統的所有配置功能均位于此處,例如定義主機組、模板、主機等。
- Administration:與Zabbix自身相關功能,如認證方法、用戶、權限、腳本、媒介類型(media type)、審計、通知及全局配置等。
## (3)Zabbix常用術語
- 主機(host):要監控的網絡設備,可由IP或DNS名稱指定;
- 主機組(host group):主機的邏輯容器,可以包含主機和模板,但同一個組內的主機和模板不能互相鏈接;主機組通常在給用戶或用戶組指派監控權限時使用。
- 監控項(item):一個特定監控指標的相關的數據,這寫些數據來自于被監控對象;item是zabbix進行數據收集的核心,沒有item,將沒有數據;相對某監控對象來說,每個item都由“key”進行標示。
- 觸發器(trigger):一個表達式,用于評估某監控對象的某特定item內所接收到的數據是否在合理范圍內,即閥值;接收到的數據量大于閥值時,觸發器狀態將從“ok”轉變為“problem”,當數據量再次回歸到合理范圍時,其狀態將從“problem”轉換回“ok”。
- 事件(event):即發生的一個值得關注的事情,例如觸發器的狀態轉變,新的agent或重新上線的agent的自動注冊等。
- 動作(action):指定與特定事件事先定義的處理方法,通過包含操作(如發送通知)和條件(何時執行操作)。
- 報警升級(escalation):發送報警或執行遠程命令的自定義方案,如每隔5分鐘發送一次報,共發送5次等
- 媒介(media):發送通知的手段或通道,如email,jabber或sms等。
- 通知(notification):通過選定的媒介向用戶發送的有關某事件的信息。
- 遠程命令(remote command):預定義的命令,可在被監控主機處于某特定條件下時自動執行。
- 模板(template):用于快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、srceen、application以及low-level discovery rule;模板可以直接鏈接至單個主機。
- 應用(application):一組item的集合
- web場景(web scennario):用于檢測web站點可用性的一個或多個http請求。
- 前端(frontend):Zabbix的web接口。
## (4)Zabbix的邏輯架構

- 獻給我的朋友們
- 一、個人對學習的看法
- 二、運維技能圖譜
- 三、運維常用技能
- 3.1 Vim(最好用的編輯器)
- 3.2 Nginx & Tengine(Web服務)
- 1. Nginx介紹和部署
- 2. Nginx配置解析
- 3. Nginx常用模塊
- 4. Nginx 的session 一致性問題
- 3.3 Tomcat(Web中間件)
- 3.4 Keepalived(負載均衡高可用)
- 3.5 Memcache(分布式緩存)
- 3.6 Zookeeper(分布式協調系統)
- 3.7 KVM(開源虛擬化)
- 1. 虛擬化介紹
- 2. KVM基礎
- 3. 設置VNC和時間同步
- 4. kvm虛擬機快照備份
- 5. kvm虛擬機在線擴展磁盤
- 6. kvm虛擬機靜態遷移
- 7. kvm虛擬機動態遷移
- 8. kvm虛擬機存儲池配置
- 9. cpu添加虛擬化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安裝與漢化
- 3.9 Jenkins(運維自動化)
- 3.10 WAF(Web防火墻)
- 3.10.1初探WAF
- 四、常用數據庫
- 4.1 MySQL(關系型數據庫)
- 1. MySQL源碼安裝
- 4.2 Mongodb(適用與大數據分析的數據庫)
- 4.3 Redis(非關系數據庫)
- 五、自動化運維工具
- 5.1 Cobbler(系統自動化部署)
- 5.2 Ansible(自動化部署)
- 5.3 Puppet(自動化部署)
- 5.4 SaltStack(自動化運維)
- 六、存儲
- 6.1 GFS(文件型存儲)
- 6.2 Ceph(后端存儲)
- 七、運維監控工具
- 7.1 對監控的理解
- 7.2 Zabbix(運維監控)
- 7.2.1 Zabbix簡介
- 7.2.2 Zabbix服務部署
- 1. Zabbix服務端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix監控服務
- 1. 監控網絡設備
- 2. 自定義Nginx監控
- 7.3 云鏡(安全監控)
- 7.4 ELK(日志收集展示)
- 八、運維云平臺
- 8.1 OpenStack(開源云操作系統)
- 8.1.1 OpenStack簡介
- 8.1.2 實驗架構設計
- 8.1.3 集群環境準備
- 8.1.4 controller節點部署
- 1. 安裝Mariadb Galera Cluster集群
- 2. 安裝RabbitMQ Cluster集群
- 3. 安裝Pacemaker
- 4. 安裝HAProxy
- 5. 安裝配置Keystone
- 6. 安裝配置glance
- 1. 制作鏡像模板
- 7. 安裝配置nova
- 8. 安裝配置neutron
- 1. 配置虛擬機網絡
- 9. 安裝Dashboard
- 10. 安裝配置cinder
- 8.1.5 compute節點部署
- 1. 安裝相關軟件包
- 2. 安裝Neutron
- 3. 配置cinder
- 4. 創建第一個虛擬機
- 8.1.6 OpenStack報錯處理
- 1. cinder僵尸卷刪除
- 8.1.7 快速孵化虛擬機方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 單點部署
- 2. 多節點部署
- 8.2 Tstack(騰訊云平臺)
- 8.3 K8s(微服務容器化)
- 九、運維編程技能
- 9.1 Shell(運維必會語言)
- 9.2 Python(萬能的膠水語言)
- 十、Devops運維
- 10.1 理念
- 10.2 Devops實戰