目錄html
一、RRDTool簡介mysql
二、所需瞭解的術語sql
三、RRDTool工具繪圖流程shell
四、軟件安裝數據庫
五、RRDTool繪圖工做流程express
六、實戰案例vim
七、總結bash
說明:博文中涉及的圖片可能不是博主繪製。服務器
一、RRDTool簡介
ide
RRDTool是一個強大的繪圖引擎,它能把以時間序列的數據用圖表的的方式直觀的表現出來,是由Tobias Oetiker編寫的工具,而且是一款開源、自由的軟件,早期的MRTG也是由Tobias Oetiker主導編寫,由於MRTG有衆多的不足,因此後來做者開發了RRDTool工具。
RRD是Round Robin Database的縮寫,中文名爲輪轉數據庫,數據庫以rrd結尾。這種數據庫由一個固定大小的數據文件來存放數據,此數據庫不會像傳統數據庫同樣爲隨着數據的增多而文件的大小也在增長,RRD在建立好後其文件大小就固定,能夠把它想像成一個圓,圓的衆多直徑把圓劃分紅一個個扇形,每一個扇形就是能夠存數據的槽位,每一個槽位上被打上了一個時間戳,在圓心上有一個指針,隨着時間的流逝,取回數據後,指針會負責把數據填充在相應的槽位上,當指針轉了360度後,最開始的數據就會被覆蓋,就這樣RRD循環填充着數據,其工做方式以下圖所示:
二、所需瞭解的術語
這個數據庫裏存儲的數據未必是咱們直接獲取到的源數據,採用一些數據蒐集工具,如腳本、shell命令、SNMP等工具在必定時間間隔裏把數據蒐集填充到rrd數據庫中,這些須要數據蒐集的對象叫DS,一個DS裏在一個時間裏能夠蒐集的數據能夠有多個,好比一個時間點上對網卡來講有進來的流量,也有流出的流量,因此這是2個數據成爲一組數據。源數據獲取到後是存放在一個數據庫的一個臨時區域,這些源數據叫作PDP,RRDTool把這些PDP數據做爲數據源經過分組、再利用聚合函數計算後把計算後的結果放在RRD數據庫的時間槽(time slot)上,這些數據叫作CDP,CDP纔是RRDTool繪圖時真正打交道的數據,源數據只是數據蒐集工具蒐集交到RRDTool的源數據,這些數據須要再次整理成CDP後RRDTool才能調用。在從源數據中取數據作聚合計算時會有一個挑選數據的基準,也就是說是以幾個源數據爲一組作聚合,根據現實需求的不一樣,對源數據能夠很靈活的選擇不一樣的時間段提取源數據,再聚合提取不一樣的聚合值,這樣就產生不一樣組別的CDP數據,這些有以相同時間段挑選源數據及相同聚合函數計算的結果組成的數據就叫RRA,因此根據挑選源數據的標準及採用的聚合函數的不一樣,RRA能夠有多組。
整理一下涉及到的術語:
DS:Data Source 數據源,用於定義蒐集數據的工具所蒐集數據的一些特性
Time Solt:時間槽,用於存放經過聚合後的數據區域
PDP:Primary Data Point 主數據節點,每一個時間點產生的數據,便是蒐集的源數據,沒有作聚合的數據
CDP(Consolidation Data Point 聚合數據節點):經過對獲取的源數據分組、聚合計算後獲得的數據叫CDP,
RRA(Round Robin Archive 輪轉歸檔):以相同的分組、聚合函數計算後的CDP數據組就組成了RRA
Resolution(解析度):這是一個時間跨度,表示在作聚合計算時是以幾個連續的time slot裏的數據作聚合,在默認時rrd是以300秒的間隔產生一個time slot。
CF:Consolidation Function,合併函數或聚合函數,以RRDTool中有AVERAGE、MAX、MIN、LAST4種
以一個圖來講明PDP、CDP、RRA之間的關係:
PDP是以規定的時間間隔(默認爲300秒)蒐集的源數據,第一個RRA以4個PDP(即4*300秒)爲一組作CF後組成的數據,第二個RRA則是以10個PDP爲一組作CF後組成的數據。
三、RRDTool工具繪圖流程
先是利用搜集工具蒐集源數據,再把這些數據以必定時間間隔填充到rrd數據庫,再從源數據中以定義的時間間隔爲組經過CF計算後生成RRA數據,再由RRDTool抽取出RRA數據繪製成圖表。發一個圖來講明:
第一步:建立一個數據庫,用於存放數據,也是繪圖時的數據來源;
第二步:數據採集,RRDTool沒有自帶數據採集功能,須要本身用腳本、命令、SNMP等方式採用所要繪圖的數據;
第三步:數據採集後,經過分組,CF後把數據更新到數據庫中;
第四步:由於RRDTool繪製的是以時間序列的走勢圖,因此第二到第四步是循環進行的。
四、軟件安裝
RRDTool工具在衆多平臺均可以運行,我這裏以CentOS(CentOS 6.4_x86_64)平臺爲例,在這裏下載所需包http://packages.express.org/rrdtool/
[root@nod0 rrdtools]# pwd /root/software/rrdtools [root@nod0 rrdtools]# ls rrdtool-1.4.7-1.el6.wrl.x86_64.rpm rrdtool-perl-1.4.7-1.el6.wrl.x86_64.rpm [root@nod0 rrdtools]# yum -y install *.rpm [root@nod0 rrdtools]# rrdtool -v RRDtool 1.4.7 Copyright 1997-2012 by Tobias Oetiker <tobi@oetiker.ch> Compiled Mar 10 2013 23:57:47 Usage: rrdtool [options] command command_options Valid commands: create, update, updatev, graph, graphv, dump, restore, last, lastupdate, first, info, fetch, tune, resize, xport, flushcached RRDtool is distributed under the Terms of the GNU General Public License Version 2. (www.gnu.org/copyleft/gpl.html) For more information read the RRD manpages
rrdtool安裝好後不須要額外的什麼配置,由於它的工做不依賴配置文件,下邊將介紹一些學用的指令。
五、RRDTool經常使用指令
回想一下第3節中的RRDTool的繪圖流程圖,第一步建立rrd數據庫,RRDTool提供了create來建立這個數據;第二步的數據蒐集工做RRDTool沒法完成,也就沒有相關指令作這部分工做;第三步的數據更新工做有update命令;第四步繪圖有graph命令,下邊就一一介紹這三個子命令的使用方法。
5.一、數據庫建立命令
語法: rrdtool create filename [--start|-b start time] [--step|-s step] [--no-overwrite] [DS:ds-name:DST:dst arguments] [RRA:CF:cf arguments]
命令分解:
create:表示建立數據庫
filename:表示數據庫名稱,以rrd結尾
--start|-b start time:表示數據庫的time slot的起點是哪一個時間戳(1970年1月1日0點0分0秒到目前的秒數),默認是(now-10s)
-step|-s step:定義rrd接收數據的時間間隔,這個時間間隔接收到的數據叫作PDP,默認是300秒的時間間隔
DS:ds-name:DST:dst arguments:這是定義RRDTool接受什麼數據源的數據更新,能夠定義多個數據源
DS:Date Source,定義表示開始定義一個數據源
ds-name:這個數據源的名稱,由最多19個包括[a-zA-Z0-9_]的字符組成
DST:Define Source Type,表示數據源的類型,數據類型有5個值(GAUGE,COUNTER,DERIVE,ABSOLUTE,COMPUTE),最後跟上數據類型的參數
RRA:CF:cf arguments:定義一組RRA
RRA:Round Robin Archive,表示開始定義一個輪轉歸檔信息
CF:定義一個聚合函數
數據源DS的格式爲詳解:
DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max
GAUGE:表示rrd接收到什麼值數據庫中就保存什麼值,不做任何修改;
COUNTER:保存的是相對值,好比網卡已接收數據包的數量,這個數量會依次增長,而記錄時是這樣記錄的,假如第一次記錄爲100,在到達第二次記錄時間時網卡又接收了150個包,那在第二個時間點網卡已接收的數據包爲250個,但COUNTER這種類型就記錄相對於前一次數據包的改變量,即150個,依次類推,第三次記錄相對前一次數據包的改變量。COUNTER這種這種類型須要記錄的數據在後一個數據會大於等於前一個數據的特性,即有遞增的特性。
DERIVE:也是記錄的相對值,但沒有數據遞增的要求,像記錄溫度的變化就可用此類型。
ABSOLUTE這個數據類型記錄的數據是起初是有一個數據做爲參考,而後用接收到數據與初始數據計算後獲得的數據。
heartbeat:min:max這三個參數的含義:
heartbeat :表示心跳數,它的意義是rrdtool若是在設定心跳的時間內沒有收到數據,那就把這個從數據定爲「UNKNOWN」
min:max表示rrdtool所能存儲數據的最小值與最大值,不做限制就U代替
COMPUTE有本身的格式,這個數據類型不太懂,就不作介紹,格式以下:
DS:ds-name:COMPUTE:rpn-expression
輪轉歸檔數據的定義格式詳解:
RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows
xff:表示一個比例值,即在聚合計算中挑選出的PDP那一組數據中有多大比例的數據爲UNKNOWN,若是這個UNKNOWN狀態所佔比例值小於咱們定義的值,那就認爲數據是可用的,不然此數據爲不可用,通常設置爲「0.5」
steps:定義此聚合計算是對幾個連續的PDP進行聚合計算的
rows:定義保存以steps定義的值作聚合後,須要保存這樣的數據的個數
此命令詳細的說明可參考這裏的篇譯文http://blog.sina.com.cn/s/blog_4e424e2101000b5s.html,http://blog.csdn.net/ysuncn/article/details/1723672
5.二、數據更新命令
語法:
rrdtool {update | updatev} filename [--template|-t ds-name[:ds-name]...]
[--daemon address] [--] N|timestamp:value[:value...] at-timestamp@value[:value...]
[timestamp:value[:value...] ...]
filename:表示用create命令建立的rrd數據庫文件;
--template|-t ds-name[:ds-name]...:這裏表示插入rrd數據庫文件時DS的順序,由於在rrd的一個time slot上能夠存放多個數據,向裏插入數據時要按照create數據庫時的定義ds的順序插入,否則就要定義此選項來指定一個新的ds順序;
N|timestamp:value[:value...]:這裏定義向rrd數據庫插入的數據,格式爲「時間:具體數據」,N表示當前時間,timestamp表示一個時間戳,後邊接的值能夠有多個,當create數據庫時定義了多個ds時值就會有多個,這裏value的順序要和create數據庫時定義的ds的順序相同或是與"--template|-t ds-name[:ds-name]..."從新定義的順序相同
5.三、查看數據庫的數據
語法:
rrdtool fetch filename CF [--resolution|-r resolution] [--start|-s start]
[--end|-e end] [--daemon address]
filename:表示以rrd結尾的那個數據庫文件;
CF:表示那4個聚合函數中的一個,具體就是在create數據庫時定義的RRA中的聚合函數
--resolution|-r resolution:這是表示解析度,具體就是在create數據庫時的定義接收數據的時間間隔的數量與在定義RRA「RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows」中steps的乘積;
5.四、繪圖命令
命令中有許多選項在實際工做中能夠不指定,但須要了解。
語法:
rrdtool graph|graphv filename [option ...] [data definition ...] [data calculation ...] [variable definition ...] [graph element ...] [print element ...]
OPTIONS
Time range
[-s|--start time] 指定所繪製圖的開始時間,橫座標的起點時間
[-e|--end time] 指定所繪製圖的結束時間,橫座標的結束時間
[-S|--step seconds] 表示對應的解析度
Labels
[-t|--title string] 指定圖片的標題信息
[-v|--vertical-label string] y軸的標籤說明
Size
[-w|--width pixels] 指定圖像的寬度,單位爲像素
[-h|--height pixels] 指定圖像的高度
[-j|--only-graph] 繪製成預覽圖
[-D|--full-size-mode] 圖片能自動縮放
Limits
[-u|--upper-limit value] 指定y軸顯示數值最大數
[-l|--lower-limit value] 指定y軸顯示數值最小數
[-r|--rigid] 指定好y軸的上下限值後就再也不自動縮放
[-A|--alt-autoscale] 即便指定好y軸的上下限後依然可縮放,但不能超過上下限值。
[-J|--alt-autoscale-min] 表示只自動縮放最小值
[-M|--alt-autoscale-max] 表示只自動縮放最大值
[-N|--no-gridfit] 不顯示網格線
X-Axis
[-x|--x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM] 指定橫座標的一系列格式
[-x|--x-grid none]
舉例:
--x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X,這裏表示每10分鐘間隔顯示一個基準網格線,以每小時間隔顯示一個主網格線,每4個小時間隔顯示一個x軸上的標籤,「0:%X」表示顯示標籤的格式
Y-Axis
[-y|--y-grid grid step:label factor] 指定y座標的格式
[- y|--y-grid none]
從數據庫獲取數據的的數據定義格式:
DEF:vname=rrdfile:ds-name:CF[:step=step][:start=time][:end=time] 數據源的指定格式
DEF:這是關鍵字
vname:自定義一個變量名
rrdfile:指定rrd數據庫文件的路徑
ds-name:指定想獲取數據源中的在create中定義的DS名稱
CF:定義以哪一種聚合函數取出數據
選擇畫線條圖的格式:
LINE[width]:value[#color][:[legend][:STACK][:skipscale][:dashes[=on_s[,off_s[,on_s,off_s]...]][:dash-offset=offset]]]
LINE[width]:表示選擇線條類型繪圖width表示線條的粗細,通常有1,2,3三個值
value:表示在DEF中定義的vname
#color:表示以哪一種顏色來繪製線形圖,不定義顏色時線條不可見
legend:表示顯示繪製線條的圖例信息
六、實戰案例
案例1:每5秒生成一個隨機數存放到rrd數據庫,咱們要進行繪圖的值是每5秒的平均值,每50秒的平均值,每500秒的平均值。且要能繪製24小時內的每5秒的平均值的圖,要能繪製兩天內的每50秒平均值的圖,要能繪製1個星期的每500秒的平均值的圖。
[root@nod0 ~]# rrdtool create test.rrd --step 5 DS:testds:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:AVERAGE:0.5:10:3456 RRA:AVERAGE:0.5:100:1210 #17280是假設數據保存24小時計算得來的,86400/(5*1)=17280;(86400*2)/(5*10)=3456;(86400*7)/(5*100)=1209.6
[root@nod0 ~]# rrdtool info test.rrd #查看數據庫的信息 filename = "test.rrd" rrd_version = "0003" step = 5 last_update = 1433000058 header_size = 1000 ds[testds].index = 0 ds[testds].type = "GAUGE" ds[testds].minimal_heartbeat = 8 ds[testds].min = 0.0000000000e+00 ds[testds].max = NaN ds[testds].last_ds = "U" ds[testds].value = 0.0000000000e+00 ds[testds].unknown_sec = 3 rra[0].cf = "AVERAGE" rra[0].rows = 17280 rra[0].cur_row = 11684 rra[0].pdp_per_row = 1 rra[0].xff = 5.0000000000e-01 rra[0].cdp_prep[0].value = NaN rra[0].cdp_prep[0].unknown_datapoints = 0 rra[1].cf = "AVERAGE" rra[1].rows = 3456 rra[1].cur_row = 1801 rra[1].pdp_per_row = 10 rra[1].xff = 5.0000000000e-01 rra[1].cdp_prep[0].value = NaN rra[1].cdp_prep[0].unknown_datapoints = 1 rra[2].cf = "AVERAGE" rra[2].rows = 1210 rra[2].cur_row = 934 rra[2].pdp_per_row = 100 rra[2].xff = 5.0000000000e-01 rra[2].cdp_prep[0].value = NaN rra[2].cdp_prep[0].unknown_datapoints = 11
以腳本的方式把rrdtool update命令封裝起來把隨機產生的數據寫入到rrd數據庫中:
[root@nod0 ~]# vim genval.sh #!/bib/bash # while true;do rrdtool update /root/test.rrd N:$RANDOM sleep 5 done [root@nod0 ~]# chmod +x genval.sh [root@nod0 ~]# bash -x genval.sh #讓腳本運行一段時間
[root@nod0 ~]# rrdtool fetch -r 5 /root/test.rrd AVERAGE #當腳本運行一段時間後,查看數據庫中的數據,「-r 5」表示獲取數據的解析度,即表示以每5秒的時間取得的數據聚合後取AVERAGE的值。在咱們create數據庫時原本就是規定每5秒獲取一個數據,因此這裏就是在time slot上的這一個值本身給本身作平均計算,其實平均後就是自己。在此案例中咱們要能查看每5秒,每50秒,第500秒的平均值,因此這裏的"-r"也可指定50,500來查看相應的數據,若是指定一個解析度是咱們沒有事先規劃好的,那rrd會智能選擇一個臨近你指定的解析度來獲取數據,好比指定了"-r 300",那rrd會在"50"和「500」這兩個解析度間權衡,最終會以「-r 500」來列出數據,這個能夠驗證的。 ...... 1433046645: 1.0455325451e+04 1433046650: 1.4075998904e+04 1433046655: 6.5947377492e+03 1433046660: 8.0364061710e+03 1433046665: 3.1844697036e+04 1433046670: 3.2457433752e+04 1433046675: 1.5680352955e+04 1433046680: 2.8218131930e+04 1433046685: 8.4819832280e+02 1433046690: 1.4497840578e+04 1433046695: 1.4497840578e+04 1433046700: 7.7085841264e+03 1433046705: 2.9758471149e+04 1433046710: 1.0487534120e+04 1433046715: 2.9641303155e+04 1433046720: 2.6827516985e+04 1433046725: 1.9122574796e+04 1433046730: 2.6697401840e+04 1433046735: 1.2234064520e+03 1433046740: 1.5563750052e+04 1433046745: 2.5905735010e+04 ......
rrd中有數據了,那如今建立一個圖形試試:
[root@nod0 ~]# rrdtool graph a.png --step 5 -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE LINE1:vtest#FF0000:testline #有警告信息 (process:3366): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common' (process:3366): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin' 521x173
把圖片導出後打開是這樣的
看上去字體的問題,把字體庫安裝好後再嘗試:
[root@nod0 ~]# yum -y install xorg-x11-font*
再次嘗試後獲得每5秒得到隨機數平均值的趨勢圖以下:
[root@nod0 ~]# rrdtool graph d.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=5 LINE1:vtest#FF0000:testline
注:這命令與上邊的命令功能同樣只是把解析度這個參數寫在DEF的定義裏了
把set=5更換成set=50就獲得了每50秒得到隨機數的平均值的趨勢圖,以下
[root@nod0 ~]# rrdtool graph e.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtest#FF0000:testline
試想一下能不能把每5秒得到的平均數的走勢與每50秒的平均值的趨勢圖用兩條線條繪製在一個圖形中呢,這是能夠的:
[root@nod0 ~]# rrdtool graph f.png -s 1433042265 -t Test -v Title DEF:vtest1=/root/test.rrd:testds:AVERAGE:step=5 DEF:vtest2=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtest1#FF0000:line1 LINE1:vtest2#00FF00:line2
案例2:
案例2:繪製mysql服務器中每3秒,每30秒中發生查詢的平圴值的走勢圖,且每3秒中平均值的走勢圖能保存24小時內的數據,每30秒平均值的走勢圖能保存24小時內的數據。且圖例中還要顯示出最後30秒的取值中值的最大值和最後那一個可用值。
[root@nod0 ~]# rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880 注:這裏的2880是這樣計算出來的,24*60*60/(3*10)=2880
接下來想辦法爲這個數據庫文件中填充數據,以獲取mysql數據庫執行查詢操做的計數爲數據來填充rrd數據庫,在mysql數據庫中,在mysql終端執行「show global status like 'com_select'」就能查詢mysql被查詢的次數,以下:
MariaDB [(none)]> show global status like 'com_select'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | Com_select | 237823 | +---------------+--------+
在shell下獲取此值以下操做:
[root@nod0 ~]# mysql -uroot -p111111 -e "show global status like 'com_select'" +---------------+--------+ | Variable_name | Value | +---------------+--------+ | Com_select | 237824 | +---------------+--------+
去掉表格的外框加上參數batch便可:
[root@nod0 ~]# mysql -uroot -p111111 --batch -e "show global status like 'com_select'" Variable_nameValue Com_select237825
最後想要獲得那個查詢的值加上過慮條件便可:
[root@nod0 ~]# mysql -uroot -p111111 --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}' 237828
而後寫成一個腳本自動每隔3秒就把獲取到的mysql查詢的值寫進rrd數據庫中,腳本以下:
[root@nod0 ~]# vim getselect.sh #!/bin/bash # while true;do SELECT=`mysql -uroot -p111111 --batch -e "SHOW GLOBAL STATUS LIKE 'com_select'" | awk '/Com_select/{print $2}'` rrdtool update /root/mysql.rrd N:$SELECT sleep 3 done [root@nod0 ~]# chmod +x getselect.sh [root@nod0 ~]# bash -x getselect.sh #把腳本執行着
爲了更快的讓Com_select的數值增長,如今須要向mysql數據庫發起查詢請求,讓查詢的數值增長,依然用腳原本完成,以下:
[root@nod0 ~]# vim insert.sh #!/bin/bash # for I in {1..200000};do mysql -uroot -p111111 -e "INSERT INTO testdb.tb1(NAME) VALUES ('stu$I')" mysql -uroot -p111111 -e "SELECT * FROM testdb.tb1" &> /dev/null done [root@nod0 ~]# chmod +x insert.sh [root@nod0 ~]# bash -x insert.sh #執行腳本
如今mysql中的Com_select的值會快速增加,一會就能夠用rrdtool工具繪製圖形了。
[root@nod0 ~]# rrdtool fetch /root/mysql.rrd -r 30 AVERAGE #經過此命令查找一個繪圖起點的時間戳 ...... 1433062920: -nan 1433062923: -nan 1433062926: -nan 1433062929: -nan 1433062932: -nan 1433062935: -nan 1433062938: -nan 1433062941: -nan 1433062944: -nan 1433062947: -nan 1433062950: -nan 1433062953: -nan 1433062956: 2.6646155669e-01 1433062959: 3.2913903433e-01 1433062962: 3.3101155484e-01 1433062965: 3.3063372547e-01 1433062968: 3.3057613269e-01 ........
[root@nod0 ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/3" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=3 LINE1:select3#FF0000:"SELECT"
繪製的圖以下所示:
再把每30秒取得的平均查詢數量也繪製出圖形:
[root@nod0 ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 LINE1:select3#FF0000:"SELECT"
在定義rrd數據庫是咱們定義了RRA是有最大值和當前值的,在圖片中能夠把最後30秒中的最大值和最後30秒中的最後那一個可用數值也顯示出來,這須要一個指令來完成,以下:
GPRINT:vname:CF:format
GPRINT:關鍵字
vname:表示在定義DEF時定義的變量值
CF:定義咱們在create數據庫時定義的聚合函數
format:顯示圖例的格式,這裏有關於格式的詳細說明http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html#___top,通常經常使用「%#.#lf」(lf是字母LF的小寫),第一個#表示打印出的數字中小數點前有幾位,第二個「#」表示保留幾個小數位,如:12345.6789 的格式爲(%5.4lf)
[root@nod0 ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=/root/mysql.rrd:myselect:MAX:step=30 LINE1:select3#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUN_PER_30s\: %6.2lf"
[root@nod0 ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=/root/mysql.rrd:myselect:MAX:step=30 DEF:last30=/root/mysql.rrd:myselect:LAST:step=30 LINE1:select3#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUN_PER_30s\: %6.2lf" GPRINT:last30:LAST:"CURRENT\: %4.2lf"
七、總結
經過對RRDTool這一工具學習與總結,咱們瞭解到它是一個強大的繪圖工具,且有一個獨特的數據庫叫輪轉數據庫,這個數據庫一旦建立那文件的大小的肯定,所能繪圖的時間範圍也就肯定了,但在繪圖時所使用的命令複雜,不容易掌握。