MRTG、Cacti、Rrdtool、Nagios、Zabbix比較
Cacti Nagios Squid的區(qū)別
cacti 是一個用 rrdtool 來畫圖的網(wǎng)絡(luò)監(jiān)控系統(tǒng), 通常一說到網(wǎng)絡(luò)管理, 大家首先想到的經(jīng)常是 mrtg, 但是 mrtg 畫的圖簡單且難看, rrdtool 雖然畫圖本領(lǐng)一流, 畫出來的圖也漂亮, 但是他也就是一個畫圖工具, 不像 mrtg 那樣本身還集成了數(shù)據(jù)收集功能. cacti 則是集成了各種數(shù)據(jù)收集功能,然后用 rrdtool 畫出監(jiān)控圖形. 其本身界面比起同類系統(tǒng)要漂亮不少. 推薦所有有監(jiān)控需求的人都去研究一下.
cacti 和 nagios 是不同功用的系統(tǒng), nagios 適合監(jiān)視大量服務(wù)器上面的大批服務(wù)是否正常, 重點(diǎn)并不在圖形化的監(jiān)控, 其集成的很多功能例如報警,都是 cacti 沒有或者很弱的. cacti 主要用途還是用來收集歷史數(shù)據(jù)和畫圖, 所以界面比 nagios 漂亮很多.
net-snmp 是一套廣泛使用在類 unix 系統(tǒng)上的 snmp 軟件, 包含一套 snmp agent 框架 ,一個 snmpd 和 一堆 snmp 工具 , 其前身為 ucd-snmp. 關(guān)于 snmp 是什么, 以及如何配置的文章,網(wǎng)上搜一下有一堆一堆的. 在這里就不重復(fù)了.
squid 是一個 web 緩存加速程序, 本來跟監(jiān)控沒有太大關(guān)系, 只是因?yàn)樗С?snmp 查詢,而我要用 cacti 監(jiān)控他, 然后遇到了他的缺陷被折騰了一陣子,所以也拉進(jìn)今天的討論.
我跟這三個東西斗爭的過程如下…
首先先把 cacti 架起來, 在架的過程中我沒有遇到問題,但是把 czz 搞了一下, 因?yàn)?cacti 要調(diào)用外部程序, 不能開 safe_mode, 如果開了就會出奇怪問題.
接下來配置 squid 的查詢, squid 的查詢數(shù)據(jù)比較多且復(fù)雜,自己做模版的話很麻煩,于是 google 了一下,找了一個 SquidStats (見附件) 的模版, 按照他的 readme 一步一步來, 就可以正常安裝. 于是我就遇到了第一個坎…
設(shè)置完成以后執(zhí)行 poller 的時候總是無法產(chǎn)生 rrd 數(shù)據(jù), 給 php 里面加 log 也沒有看出來什么, google 換了很多關(guān)鍵詞, 總算發(fā)現(xiàn)了原因: cacti 在進(jìn)行 snmp 查詢之前會先確定對方是否在運(yùn)行, 他用的方法是查詢 .1.3.6.1.2.1.1.3.0 這個 oid, 但是 squid 不支持這個 oid , 于是 cacti 就以為 squid down 了,不去真正查詢. 臨時解決方法是在 cacti 的 settings 里面, poller 頁的 Downed Host Detection 選擇 Ping, 不要選擇帶有 snmp 字樣的.
然后在弄 64 位機(jī)的時候遇到了第二個坎, 發(fā)現(xiàn) 64 位 linux 機(jī)器的流量圖總是不正確. 大部分時候沒有結(jié)果,有時候又特大, 其實(shí)這個應(yīng)該很容易想到是 counter 回繞不正確的問題, 但是我第一次 google 出來的結(jié)果是一個說和 tunnel 設(shè)備有關(guān)的 bug, 這兩臺 x64 機(jī)器上面確實(shí)有 tunnel ,于是我就一直以為是 tunnel 的問題. 折騰了好久. 最后才發(fā)現(xiàn)原來就是簡單的 counter 回繞不正確的問題. 從 Fedora Core 5 的開發(fā)目錄里面下一個 net-snmp 5.3 的 srpm 在 centos 4.2 上 build 一下, 就搞定了. 注意 FC4 里面的 net-snmp 5.2.x 也是有 bug 的,一定要 5.3 的.
最后推薦所有研究 cacti 的人,一定不要放過 cacti 的官方論壇擴(kuò)展腳本版面 . 里面有很多的第三方的模版和腳本, 支持很多的網(wǎng)絡(luò)設(shè)備.