MRTG、Cacti、Rrdtool、Nagios、Zabbix大比拼
MRTG、Cacti、Rrdtool、Nagios、Zabbix比較
Cacti Nagios Squid的區別
cacti 是一個用 rrdtool 來畫圖的網絡監控系統, 通常一說到網絡管理, 大家首先想到的經常是 mrtg, 但是 mrtg 畫的圖簡單且難看, rrdtool 雖然畫圖本領一流, 畫出來的圖也漂亮, 但是他也就是一個畫圖工具, 不像 mrtg 那樣本身還集成了數據收集功能. cacti 則是集成了各種數據收集功能,然后用 rrdtool 畫出監控圖形. 其本身界面比起同類系統要漂亮不少. 推薦所有有監控需求的人都去研究一下.
cacti 和 nagios 是不同功用的系統, nagios 適合監視大量服務器上面的大批服務是否正常, 重點并不在圖形化的監控, 其集成的很多功能例如報警,都是 cacti 沒有或者很弱的. cacti 主要用途還是用來收集歷史數據和畫圖, 所以界面比 nagios 漂亮很多.
net-snmp 是一套廣泛使用在類 unix 系統上的 snmp 軟件, 包含一套 snmp agent 框架 ,一個 snmpd 和 一堆 snmp 工具 , 其前身為 ucd-snmp. 關于 snmp 是什么, 以及如何配置的文章,網上搜一下有一堆一堆的. 在這里就不重復了.
squid 是一個 web 緩存加速程序, 本來跟監控沒有太大關系, 只是因為他支持 snmp 查詢,而我要用 cacti 監控他, 然后遇到了他的缺陷被折騰了一陣子,所以也拉進今天的討論.
我跟這三個東西斗爭的過程如下…
首先先把 cacti 架起來, 在架的過程中我沒有遇到問題,但是把 czz 搞了一下, 因為 cacti 要調用外部程序, 不能開 safe_mode, 如果開了就會出奇怪問題.
接下來配置 squid 的查詢, squid 的查詢數據比較多且復雜,自己做模版的話很麻煩,于是 google 了一下,找了一個 SquidStats (見附件) 的模版, 按照他的 readme 一步一步來, 就可以正常安裝. 于是我就遇到了第一個坎…
設置完成以后執行 poller 的時候總是無法產生 rrd 數據, 給 php 里面加 log 也沒有看出來什么, google 換了很多關鍵詞, 總算發現了原因: cacti 在進行 snmp 查詢之前會先確定對方是否在運行, 他用的方法是查詢 .1.3.6.1.2.1.1.3.0 這個 oid, 但是 squid 不支持這個 oid , 于是 cacti 就以為 squid down 了,不去真正查詢. 臨時解決方法是在 cacti 的 settings 里面, poller 頁的 Downed Host Detection 選擇 Ping, 不要選擇帶有 snmp 字樣的.
然后在弄 64 位機的時候遇到了第二個坎, 發現 64 位 linux 機器的流量圖總是不正確. 大部分時候沒有結果,有時候又特大, 其實這個應該很容易想到是 counter 回繞不正確的問題, 但是我第一次 google 出來的結果是一個說和 tunnel 設備有關的 bug, 這兩臺 x64 機器上面確實有 tunnel ,于是我就一直以為是 tunnel 的問題. 折騰了好久. 最后才發現原來就是簡單的 counter 回繞不正確的問題. 從 Fedora Core 5 的開發目錄里面下一個 net-snmp 5.3 的 srpm 在 centos 4.2 上 build 一下, 就搞定了. 注意 FC4 里面的 net-snmp 5.2.x 也是有 bug 的,一定要 5.3 的.
最后推薦所有研究 cacti 的人,一定不要放過 cacti 的官方論壇擴展腳本版面 . 里面有很多的第三方的模版和腳本, 支持很多的網絡設備.
#p#
Cacti Nagios比較
cacti 和 nagios 是不同功用的系統, nagios 適合監視大量服務器上面的大批服務是否正常, 重點并不在圖形化的監控, 其集成的很多功能例如報警,都是 cacti 沒有或者很弱的. cacti 主要用途還是用來收集歷史數據和畫圖, 所以界面比 nagios 漂亮很多
1. 主要對流量及主機在線狀態監控軟件,如最初的MRTG,PRGT,CACTI,Hobbit,
2. 能對服務器的關鍵服務及進程進行監控的軟件,如Big Brother,Nagios,
zabbix
zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供柔軟的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平臺之上。
zabbix agent需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。zabbix agent可以運行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系統之上。
zabbix server可以單獨監視遠程服務器的服務狀態;同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監視數據(trapping方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),可以與SNMP軟件(例如:net-snmp)等配合使用。
zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現服務器與網絡設備
- 分布式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
- email等通知功能
等等
Zabbix主要功能:
- CPU負荷
- 內存使用
- 磁盤使用
- 網絡狀況
- 端口監視
- 日志監視
【編輯推薦】