系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux使用RRDtool

Linux如何使用RRDtool

時(shí)間:2015-03-05 16:54:08 作者:qipeng 來(lái)源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問(wèn): https://m.xitongzhijia.net/xtjc/20150305/40169.html 手機(jī)查看 評(píng)論

  RRDtool是一種存儲(chǔ)數(shù)據(jù)方式,是一種強(qiáng)大的繪圖引擎,那么在Linux上要如何使用RRDtool呢?下面小編就給大家介紹下Linux使用RRDtool的方法,一起來(lái)學(xué)習(xí)下吧。

  一、簡(jiǎn)介

  RRDtool是指Round Robin Database工具,即環(huán)狀數(shù)據(jù)庫(kù)。從功能上說(shuō),RRDtool可用于數(shù)據(jù)存儲(chǔ)+數(shù)據(jù)展示。著名的網(wǎng)絡(luò)流量繪圖軟件MRTG和集群監(jiān)控系統(tǒng)Ganglia都使用的RRDtool。

  數(shù)據(jù)存儲(chǔ)方面,RRDtool采用“Round Robin”模式存儲(chǔ)數(shù)據(jù)。所謂“Round Robin”是一種存儲(chǔ)數(shù)據(jù)的方式,使用固定大小的空間來(lái)存儲(chǔ)數(shù)據(jù),并有指針指向最新的數(shù)據(jù)的位置。我們可以把用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)空間看成一個(gè)圓,上面有很多刻度,這些刻度所在的位置就代表用于存儲(chǔ)數(shù)據(jù)的地方。所謂指針,可以認(rèn)為是從圓心指向這些刻度的一條線。指針會(huì)隨著數(shù)據(jù)的讀寫自動(dòng)移動(dòng)。要注意的是,這個(gè)圓沒(méi)有起點(diǎn)和終點(diǎn),所以指針可以一直移動(dòng),而不擔(dān)心到達(dá)終點(diǎn)后無(wú)法繼續(xù)寫入的問(wèn)題。在一段時(shí)間后,當(dāng)所有的空間都存滿數(shù)據(jù),就又從頭開始存放。這樣整個(gè)存儲(chǔ)空間的大小就是一個(gè)固定的數(shù)值。RRDtool所使用數(shù)據(jù)庫(kù)文件的后綴名是“.rrd”。

  數(shù)據(jù)展示方面,RRDtool可以看作是一個(gè)強(qiáng)大的繪圖引擎。下圖是其官網(wǎng)上的一張效果圖,我們大致了解RRDtool的繪圖能力。

 Linux如何使用RRDtool

  二、基本語(yǔ)法

  RRDtool的使用分為三個(gè)部分,建庫(kù)、更新數(shù)據(jù)、繪圖(具體使用shell命令)。因此,我們也分上述三個(gè)部分介紹基本語(yǔ)法。

  1、建庫(kù)

  為表述清晰,這里將建庫(kù)命令寫成分段形式,實(shí)際應(yīng)用時(shí)應(yīng)寫成一串。

  rrdtool create cpu.rrd # 數(shù)據(jù)庫(kù)名稱

  --start $(date -d ‘1 days ago’ +%s) # 開始時(shí)間

  --step 15 # 更新數(shù)據(jù)時(shí)間間隔

  DS:cpu_user:GAUGE:120:0:NaN # DS:cpu_user,相當(dāng)于變量名;后面的是DST:GAUGE,相當(dāng)于數(shù)據(jù)類型;后面120是heartbeat,是最大沒(méi)有數(shù)據(jù)的間隔;后面兩個(gè)NaN分別是最小值、最大值限制。

  DS:cpu_system:GAUGE:120:0:NaN

  DS:cpu_wio:GAUGE:120:0:NaN

  DS:cpu_idle:GAUGE:120:0:NaN

  RRA:AVERAGE:0.5:1:244 # RRA是數(shù)據(jù)存儲(chǔ)的形式,數(shù)據(jù)表

  RRA:AVERAGE:0.5:24:244 # CF合并統(tǒng)計(jì) 有average、max、min、last四種

  RRA:AVERAGE:0.5:168:244 # 0.5是xff,表示缺少數(shù)據(jù)量比例大于0.5時(shí),數(shù)據(jù)顯示為空。

  RRA:AVERAGE:0.5:672:244 # PDP,計(jì)算出來(lái)的一個(gè)數(shù)據(jù)點(diǎn),如平均值等

  RRA:AVERAGE:0.5:5760:374 # CDP,使用多個(gè)PDP合并成一個(gè)CDP,CDP是真正存入RRA的值,也是繪圖時(shí)使用的值,1、24、168、672等表示多少個(gè)PDP合并成一個(gè)CDP

  具體參數(shù)意義大家參見注釋,本段代碼的大意是創(chuàng)建一個(gè)rrd數(shù)據(jù)庫(kù)cpu.rrd,保存cpu相關(guān)信息,每15秒更新一次數(shù)據(jù)。

  二、更新

  更新比較簡(jiǎn)單,就是定時(shí)向數(shù)據(jù)庫(kù)(即.rrd文件)中寫入數(shù)據(jù)。每次寫入命令,類似下面指令。

  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 是數(shù)據(jù)庫(kù)文件

  # 1382646278是時(shí)間戳

  # 0.733211:0.433261:1.516414:97.317114是寫入的具體數(shù)值,分別指代cpu_user、cpu_system、cpu_wio、cpu_idle。

  實(shí)際使用時(shí)應(yīng)當(dāng)寫一個(gè)程序定時(shí)獲取cpu利用率,并執(zhí)行上述命令,將數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。

  三、繪圖

  與建庫(kù)時(shí)類似,為表述清晰,這里將繪圖命令寫成分段形式,實(shí)際應(yīng)用時(shí)應(yīng)寫成一串。

  /usr/bin/rrdtool graph /home/xx/cpu.png

  --start ‘-3600’ --end N // 過(guò)去一小時(shí)的時(shí)間

  --width 385 --height 190 // 圖片大小

  --title ‘過(guò)去一小時(shí)CPU使用情況’ --upper-limit 100 --lower-limit 0 // 題目和上下限

  --vertical-label 百分比 --rigid

  DEF:‘cpu_user’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_user’:AVERAGE # 獲得變量cpu_user

  AREA:‘cpu_user’#FF0000:‘用戶’ // 圖形形式,包括AREA、STACK、LINE等

  VDEF:cpu_user_last=cpu_user,LAST // 變量定義,取具體值

  VDEF:cpu_user_avg=cpu_user,AVERAGE

  GPRINT:‘cpu_user_last’:‘ Now\:%5.1lf%s’ // 在圖片中打印數(shù)值

  GPRINT:‘cpu_user_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_system’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_system’:AVERAGE STACK:‘cpu_system’#33cc33:‘系統(tǒng)’ VDEF:cpu_system_last=cpu_system,LAST VDEF:cpu_system_avg=cpu_system,AVERAGE GPRINT:‘cpu_system_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_system_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_wio’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_wio’:AVERAGE STACK:‘cpu_wio’#1C86EE:‘等待’ VDEF:cpu_wio_last=cpu_wio,LAST VDEF:cpu_wio_avg=cpu_wio,AVERAGE GPRINT:‘cpu_wio_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_wio_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_idle’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_idle’:AVERAGE STACK:‘cpu_idle’#e2e2f2:‘空閑’ VDEF:cpu_idle_last=cpu_idle,LAST VDEF:cpu_idle_avg=cpu_idle,AVERAGE GPRINT:‘cpu_idle_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_idle_avg’:‘ Avg\:%5.1lf%s\j’

  得到的圖片如下。我刻意停止更新數(shù)據(jù)一段時(shí)間,繪圖得到的圖片也在相應(yīng)時(shí)間段內(nèi)監(jiān)控顯示沒(méi)有數(shù)據(jù)。

 Linux如何使用RRDtool

  上面就是Linux學(xué)習(xí)RRDtool的方法介紹了,因?yàn)橛泻芏喙ぞ弑热鏜RTG都能夠調(diào)用RRDtool繪圖,所以對(duì)RRDtool的了解還是有一定的必要的。

發(fā)表評(píng)論

0

沒(méi)有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄