RRDTool
和
mrtg
的比较
MRTG
的优点
:
简单、易上手,基本安装完了之后只要更改一下配置文件即可。
缺点
:
1
、使用文本式的数据库,数据不能重复使用;
2
、只能按日、周、月、年来查看数据;
3
、只能画两个
DS
(一条线、一个块);
4
、每取一次数据即需要绘图一次,浪费系统资源;
5
、无管理功能;
rrdtool
的优点:
1
、使用
rrd
存储格式,数据能重复使用,比如我可以将一个
rrd
文件中的数据与另一个
rrd
文件中的数据相加。
2
、可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图。
3
、能画任意个
DS
。
4
、
CDEF
让你能任意摆弄数据。
缺点:
1
、
rrdtool
的作用只是存储数据和画图,它没有
mrtg
中集成的数据采集功能;
2
、在命令行的使用非常复杂,参数极多。
3
、无管理功能。
简单的说,
rrdtool
就是一个强大的绘图的引擎。
----------------------------------------------------------------------------
2004年我剛進某公司工作,當時我使用MRTG建立了一套系統,專門監測我們伺服器和其他網路設備的流量。
後來我想將其他的系統性能比如CPU負載、系統負載,網路連接數等一起監測起來。我在網上查找了很多的資料,也實現了這些功能,但總覺得實現的太費勁,管理起來太麻煩了。比如我有幾百個被監測點,分佈在不同的機房,而且我需要將這些伺服器和網路設備分類,這樣的話我就要將這些被監測點放在不同的mrtg配置檔中,運行多個crontab,而且自己還寫了一些html頁面對其進行管理。
後來有幸看到了一位師兄寫的大作“rrdtool 教學”,裏面列舉了rrdtool的種種優點,於是我下定決心要將MRTG更換為rrdtool。
MRTG的優點:簡單、易上手,基本安裝完了之後只要更改一下配置檔即可。
缺點:1、使用文本式的資料庫,資料不能重複使用;
2、只能按日、周、月、年來查看資料;
3、只能畫兩個DS(一條線、一個塊);
4、無管理功能;
rrdtool的優點:
1、使用rrd存儲格式,資料能重複使用,比如我可以將一個rrd檔中的資料與另一個rrd檔中的資料相加。
2、可以定義任意時間段畫圖,即你可以畫出一張半年以來的資料的圖,也可以畫出一張半小時以來的圖。
3、能畫任意個DS。
4、CDEF讓你能任意擺弄數據。
缺點:
1、rrdtool的作用只是存儲資料和畫圖,它沒有mrtg中集成的資料獲取功能;
2、在命令行的使用非常複雜,參數極多;
3、無管理功能。
簡單的說,rrdtool就是一個強大的繪圖的引擎。
由於其非常複雜的命令,對用戶非常不友好,我一度想自己用php寫一套系統。幸運的是,半年前我找到了cacti(www.cacti.net)。對該工具我只有一個字形容:“great!”。
----------------------------------------------------------------------------
----------------------------------------------------------------------------
cacti+rrdtool
- Comments (0)
- Permalink
- TrackBack URI
一直以来都是使用MRTG,通过监控每个机柜的交换机端口,来监控所有服务器的流量。MRTG的好处就是简单方便,安装后修改一下配置文件就可以直接使用。在服务器量少的时候,还好,一旦服务器数量众多,MRTG就有点力不从心,服务器超过400台以后,MRTG已经无法在10分钟内完成一次数据更新。只能降低数据更新频率,延长时间,同时由于服务器数量过多,MRTG持续占用服务器CPU资源,在服务器数量不断增加的情况下,只能增加监控的服务器。
网上搜索了众多资料,最后选择Cacti+rrdtool。Cacti是一套php程序,它利用snmpget采集设备的SNMP数据,再利用rrdtool进行绘图。用了三天时间,终于把这套东西装了起来。只用了一台服务器,Cacti+rrdtool,代替了MRTG+3台监控服务器。而且管理起来尤其方便,通过Web界面就可以随意添加被监控设备。
Tags: Linux
----------------------------------------------------------------------------
----------------------------------------------------------------------------
3.1
論
mrtg
的優點
個人感覺即是籣單而好用
,
能符合多數人的需求
.
且網路上中文的資料多
.
2.x
版後支援
Logformat
為
RRD
而不為
text logfile,
以方便較短的
interval
及僅做資料收集動作
支援
Threhold Check,
這個一般人都沒有什麼研究
,
但其實是
monitor
中重要的一個
Alert
動作
代码
:
|
#mrtg target
部份
Target[sg-apol-mgcd]:`/root/study/enum.sh softswitch ABC mgcd` MaxBytes1[sg-apol-mgcd]:6000 MaxBytes2[sg-apol-mgcd]: 512000 Title[sg-apol-mgcd]: Class 5 VoIP SoftSwitch status Legend1[sg-apol-mgcd]: CPU
時間
Legend2[sg-apol-mgcd]: MEM
使用
LegendI[sg-apol-mgcd]: CPU
時間
(
秒
) LegendO[sg-apol-mgcd]: MEM
使用
(KB) YLegend[sg-apol-mgcd]: CPU/MEM usage PageTop[sg-apol-mgcd]: <h1>Class 5 Soft Switch @APOL: mgcd daemon(Media GatewayControler )</h1>
# mrtg Threshold Check ,
定義
Alert
所在目錄
,
及
Alert
值
,Alert
程式
ThreshDir: /www/htdocs//mrtg/alert/ #
依我的程式
,
本例為
SoftSwitch CPU
每分鐘佔用超過
10
秒
,
以
MSN
傳送訊息給相關管理者
,
並從
#remote
重開
daemon service ThreshMaxI[sg-apol-mgcd]: 1000 ThreshProgI[sg-apol-mgcd]:/www/htdocs/snmp.enum.org.tw/mrtg/alert/send_MSN.sh
|
3.2 mrtg
的缺點
mrtg
最大的缺點是處理效率問題
主要原因在於
:
1.
偵測時間不能小於
5
分鐘
,
即使你每分鐘跑一次
,
圖上也是畫
5
分鐘的變化
2.
偵測
Target
過多
,
機器會跑不動
,
主因在
2.1 mrtg
每次都會畫圖
(
最多一個
target
會更動到
4
個圖
),
不實際
, Broswer
時才畫才可能偵測上千
上萬個
Target.
2.2
要更新
log file(
絕不是什麼插入一行數據
,
而是
N
筆資料的修改
)
2.3
要更新每個
target
的
html page
3.
不能表現三種以上資料
如果
Scope
小
, mrtg
再上述幾點狀況不會構成問題
,
若
Scpoe
大
,
例如
, 1000+ Target
要做
,
大概
90%
的機
器都跑
不動
(
可以把
mrtg.cfg
複製個
1000
份
,
每份改一個
filename & target name
即可測試
).
即使你用
speedcgi ,
也只是把
1000
變成
2000,
因為根本問題並沒有解決
mrtg
資料儲存的方法固定
如此
log
檔才不會太大
,
畫
d w m y (day,week,month,year)
圖時才會快
,
不過你可以
想像
,
你的每五分鐘資料過了
50
個小時後
(5x603=3015
分鐘
,
約
50
小時
)
就會變成
30
分鐘平均值
....,..
當您需要一個月前每五分鐘值
,
以無法再從
mrtg
中找到
,
因為它會將
6
個
5
分鐘合併計算為一個
30
分鐘
,
且
你無法改變這種現況
.
無法繪出特定時間需求
mrtg
另外的限制是無法產生說我要最近
3
天
,
最後三個月
,
近十年來等資料
,
上個月與本月比較
,
特別標示上班
時間
...
等繪圖
,
資料的運算處理上也較少
,
其僅能產生日週月等較固定的資料
.
數值差異過大問題
如果你有兩個資料
,
一個是
Web
連線數
,
一個是
Web
資料傳輸量
,
此時你要將這兩個值畫在
mrtg
上
,
你會發
現
,
連線數的線圖將小得幾乎看不見
,
因為傳輸量的值太大了
,
以致於不能於圖上充份表現出來
.
除非你的
script
先做了適當的運算
,
如傳輸量以
K
算
,
再輸出
. (
註
:mrtg
雖可讓你用
K
值當
Y
軸
,
但是此時連線數的線值看
起來就和
0
一樣了
),
在
mrtg
要解決此一問題
,
只有事先處理
(
連線數輸入
logfile
時先給他
x1000),
但
rrdtool
是允許你後來再加工運算的
eth0
流量
:
藍線為
tx,
綠線為
tr,
但此時
tr
看起來幾乎感覺不到他的存在
(
不知什麼是
TR/TX
建議您不要看下去了
)
數值再處理的運算式功能
如果您的圖表上突然有一個很大的值
,
此時
,mrtg
的圖檔原資料因
Y
軸的資料都將因此而壓縮
,
使用
rrdtool
可以用
GE (
大於
),LE(
小於
)…
等運算式
,
讓您將這個值改成其他的值
(
有沒有意義需視您自身的需要而定
)
代码
:
|
CDEF:la60u=la60,1000,GT,1000,la60,IF
|
意思是如果
la60(rrdtool
裏的變數
)
大於
1000,
那都算成
1000
來畫圖
,
不然就用
la60
原來的值
(if (la60 < 1000) then la60u=1000 , else la60u=la60)[/i]
CDEF
教學可參考
http://rrdtool.planetmirror.com//tutorial/cdeftutorial.html
MRTG
自有其優缺點
, RRDTOOL
也不見得是最佳解
,
用什麼東西來做你的
Monitor
端看個人的需要而定囉
以下
,
我們就開始來介紹
rrdtool
的一些基本用法
,
至於更深入的東西待您自己去發掘了
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------