Zabbix采集數據方式
1. zabbix采集數據方式:
- 基於專用agent 被監控的設備上面安裝agent軟件,這個agent必須在設備上面有采集數據的權限
- 基於SNMP, net-snmp (nms/agent架構) 三個版本SNMPV1 V2c V3(V1 V2安全性較差,V3可加密認證)
- 基於腳本(ssh)
NMS可隨時采集被監控設備的數據,簡單命令 snmp get 、snmp get-next、snmp get-bulk
但問題? 獲取的數據如何保存,保存在何處? 故SNMP只提供功能,不關心數據處理!
2. 開源監控軟件Cacti
- 采集數據 (例如對網絡流量采集) 配合基於SNMP、基於腳本
- 保存數據
- 數據展示
- 數據分析及報警(超過閥值) cacti報警功能相對一般
Cacti是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool復雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。界面友好。軟件 Cacti 的發展是基於讓 RRDTool 使用者更方便使用該軟件,除了基本的 Snmp 流量跟系統資訊監控外,Cacti 也可外掛 Scripts 及加上 Templates 來作出各式各樣的監控圖。
cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然后用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,
snmp和rrdtool是cacti的關鍵。Snmp關系着數據的收集,rrdtool關系着數據存儲和圖表的生成。
Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。
snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(Round Robin Archive),它能夠存儲的數據筆數在創建時就已經定義。
rrdtool:
所謂的“Round Robin” 其實是一種存儲數據的方式,使用固定大小的空間來存儲數據,並有一個指針指向最新的數據的位置。
rrdtool輪狀數據庫,時間序列數據,從創建的開始就固定其大小。
rrdtool不是cacti獨有,而是一種開源工具,功能很強大,只是用小部分功能配合cacti完成數據的保存和繪圖。
一般定義兩個閾值
- 警告閾值
- 緊急閾值
3. 開源監控軟件nagios(強大的告警工具、有獨立插件)
- 依賴關系(自動分析相關設備告警情況)
- 采集數據特殊:狀態轉換報警工具,只關心正常與否的狀態(閥值,狀態轉換時報警)
- 支持主動模式監控
cacti、nagios不適合大規模的環境中,很難實現在分布式環境中對大量節點同時監控,一般超過200個節點就出現延遲。
zabbix 是以上兩種開源軟件的集合,實現分布式監控。