RRDtool的用法(結合例項)?

Tags: 資料, 例項, 用法,

一、簡介RRDtool是指Round Robin Database工具,即環狀資料庫。從功能上說,RRDtool可用於資料儲存+資料展示。著名的網路流量繪圖軟體MRTG和叢集監控系統Ganglia都使用的RRDtool。

資料儲存方面,RRDtool採用“Round Robin”模式儲存資料。所謂“Round Robin”是一種儲存資料的方式,使用固定大小的空間來儲存資料,並有指標指向最新的資料的位置。我們可以把用於儲存資料的資料庫空間看成一個圓,上面有很多刻度,這些刻度所在的位置就代表用於儲存資料的地方。所謂指標,可以認為是從圓心指向這些刻度的一條線。指標會隨著資料的讀寫自動移動。要注意的是,這個圓沒有起點和終點,所以指標可以一直移動,而不擔心到達終點後無法繼續寫入的問題。在一段時間後,當所有的空間都存滿資料,就又從頭開始存放。這樣整個儲存空間的大小就是一個固定的數值。RRDtool所使用資料庫檔案的字尾名是“.rrd”。資料展示方面,RRDtool可以看作是一個強大的繪圖引擎。下圖是其官網上的一張效果圖,我們大致瞭解RRDtool的繪圖能力。

二、基本語法RRDtool的使用分為三個部分,建庫、更新資料、繪圖(具體使用shell命令)。因此,我們也分上述三個部分介紹基本語法。1、建庫為表述清晰,這裡將建庫命令寫成分段形式,實際應用時應寫成一串。rrdtool create cpu.rrd # 資料庫名稱--start $(date -d '1 days ago' +%s) # 開始時間--step 15 # 更新資料時間間隔DS:cpu_user:GAUGE:120:0:NaN # DS:cpu_user,相當於變數名;後面的是DST:GAUGE,相當於資料型別;後面120是heartbeat,是最大沒有資料的間隔;後面兩個NaN分別是最小值、最大值限制。DS:cpu_system:GAUGE:120:0:NaNDS:cpu_wio:GAUGE:120:0:NaNDS:cpu_idle:GAUGE:120:0:NaNRRA:AVERAGE:0.5:1:244 # RRA是資料儲存的形式,資料表 RRA:AVERAGE:0.5:24:244 # CF合併統計 有average、max、min、last四種RRA:AVERAGE:0.5:168:244 # 0.5是xff,表示缺少資料量比例大於0.5時,資料顯示為空。RRA:AVERAGE:0.5:672:244 # PDP,計算出來的一個數據點,如平均值等RRA:AVERAGE:0.5:5760:374 # CDP,使用多個PDP合併成一個CDP,CDP是真正存入RRA的值,也是繪圖時使用的值,1、24、168、672等表示多少個PDP合併成一個CDP

具體引數意義大家參見注釋,本段程式碼的大意是建立一個rrd資料庫cpu.rrd,儲存cpu相關資訊,每15秒更新一次資料。

二、更新

更新比較簡單,就是定時向資料庫(即.rrd檔案)中寫入資料。每次寫入命令,類似下面指令。

rrdtool updatev /var/lib/monitor/rrds/server/cpu.rrd 1382646278:0.733211:0.433261:1.516414:97.317114# /var/lib/monitor/rrds/server/cpu.rrd 是資料庫檔案# 1382646278是時間戳# 0.733211:0.433261:1.516414:97.317114是寫入的具體數值,分別指代cpu_user、cpu_system、cpu_wio、cpu_idle。

實際使用時應當寫一個程式定時獲取cpu利用率,並執行上述命令,將資料寫入資料庫。

三、繪圖與建庫時類似,為表述清晰,這裡將繪圖命令寫成分段形式,實際應用時應寫成一串。/usr/bin/rrdtool graph /home/xx/cpu.png--start '-3600' --end N // 過去一小時的時間--width 385 --height 190 // 圖片大小--title '過去一小時CPU使用情況' --upper-limit 100 --lower-limit 0 // 題目和上下限--vertical-label 百分比

相關問題答案