SQL Server 二零一四云性情:无缝集成公有云

转自http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=864861\#

本篇是小编在IT168的约稿,原作地址:http://tech.it168.com/a2014/0620/1637/000001637358_all.shtml

不行谢谢此贴,给我了众多相助。

 

还有前面壹位老兄的实例也给了了一些帮衬,越发是有关mysql数据的展现

   
IT行业已经进去了云时期,未来进一步多的商号IT基础架构将会布署在公有云、私有云大概混合云上,而数据库作为IT基础架构中最主要的有个别与云的组合将变得不行重庆大学。SQL
Server
二〇一五开挖了公有云与公司内部的涉嫌,无论是运转在小卖部内部依然运转在Microsoft
Azure虚拟机上,SQL Server 二〇一六直接援救将数据文件和日志布置到Microsoft
Azure公有云存款和储蓄,从而得以无缝打通公有云和私有云的境界,框架结构如图1所示。

http://freeloda.blog.51cto.com/2033581/1307492/

图片 1

 

图1.SQL Server 2015直接辅助将数据库文件陈设在Azure Blob

 

 

 

何以需求将SQL Server数据文件安排在Microsoft Azure

    将数据直接配备在Azure
Blob存款和储蓄中得以一向拉动诸如品质、数据迁移、数据虚拟化、高可用和灾备方面包车型的士便宜。但最根本适用场景和优势如下:

  • 可移植性:在Azure虚拟机环境下,将数据布置在Azure
    Blob中会尤其简单移植,只必要简单将数据库分离,并附加到另一台Azure虚拟机中即可,无需移动数据库文件本人。
  • 数据库虚拟化:在为租户提供服务的云环境中,能够整合SQL Server
    二零一一从此的带有数据库个性,将负载较高的虚拟机上的数据库平滑移动到任何虚拟机上,从而不会影响该虚拟机环境的正常化运作。
  • 高可用和灾备:由于今后数据库文件位于Microsoft
    Azure的Blob存款和储蓄上,由此即便虚拟机自个儿崩溃,只供给将数据库文件附加到另一台备机上即可。数据库能够在相当短的光阴内苏醒并且数据本人不受虚拟机械损坏坏的震慑,从而保险了高ENVISIONTO和RubiconPO。
  • 可扩大性:无论在Azure虚拟机上照旧在小卖部中间,存款和储蓄的IOPS都接到具体条件的限定,而在Azure
    Blob存款和储蓄上,IOPS可以10分高。

 

    SQL Server 2015与Azure
Blob存款和储蓄的全新交互模块并不仅是在存活软件条件中的1个适配机制,而是径直集成于SQL
Server存款和储蓄引擎。数据访问机制如图2所示。

图片 2

图2.数据库文件在Azure Blob上的数据访问机制

   
由图2能够看到,该数据交互机制不再须要虚拟机通过宿主机和IO通道进行相互,此时虚拟机可以一向通过REST
API调用存储。从而比在虚拟机上直接待上访问当地存储有更好的品质。

 

 

将SQL Server数据文件布置在Microsoft Azure

    上边通过一个例子显示什么将SQL Server数据库文件安排在Azure
Blob存款和储蓄上。首先,需求在Azure存款和储蓄中确立存款和储蓄SQL
Server数据库文件的器皿,如图3所示。

图片 3

图3.创设存款和储蓄数据库文件的器皿

   

   
将容器起名为testsqlfile,访问类型为私有,容器名称标识了数据库文件的拜访地址,如图4所示。

图片 4

图4.新建容器

 

    接下去,制造访问容器的方针以及共享访问签名(shared access
signature)。SQL
Server必要那些策略和签订契约才能够与Azure存款和储蓄上的数据文件进行互动,创制策略和签字的方法能够利用编制程序的方法,也得以采取REST
APIs,在本例中,使用CodePlex现有的三个工具举办创办(可在http://azurestorageexplorer.codeplex.com
下载)。

    首先在Microsoft门户中找到访问存款和储蓄的账户名称和走访密钥,如图5所示。

图片 5

图5.找到账户名称和走访密钥

 

   
通过该工具创制策略以及走访签名,如图6和图7所示。图片 6

图6.创立策略

图片 7

图7.生成签名

    签名生成成功后,能够通过下述代码在SQL
Server中国建工业总会公司立访问Azure存款和储蓄容器的凭证:

CREATE CREDENTIAL [https://portalvhdss6xh8nlhcph8b.blob.core.windows.net/sqldata] 

WITH IDENTITY='SHARED ACCESS SIGNATURE',

SECRET = 'sr=c&si=NewPolicy&sig=%2FhFH82XmxmYSPgvc404WqbK6gIUFfrXmEkKxcmIogWA%3D'

   

    凭据建立完结后,在SQL Server
20第114中学就能够动用该证据在Blob存款和储蓄上开创数据库,在本示例中创设了叁个数据文件和三个日志文件,总结31GB,创设用时36秒,,如图8所示。

图片 8

图8.在Azure储存上开创数据库文件

   

    未来通过SQL Server Management
Studio连接到Azure的存款和储蓄环境,就可见看到刚刚创立的数据库文件,如图9所示。

图片 9

图9.在Azure Blob上创制的数据库文件

 

**********************************************************************************************************************
注 :该课程参考了如下内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作 :http://bbs.chinaunix.net/viewthr …
p;highlight=rrdtool

                      http://bbs.chinaunix.net/viewthr …
p;highlight=rrdtool

作者 :ailms <ailms{@}263{dot}net>
版本 :v1
说到底修改 :二〇〇七/12/6 22:20

总结

    SQL Server 贰零壹伍与Microsoft
Azure有了更深度的并轨,并通过存款和储蓄引擎引隐藏了不要求细节,用户能够用创建2个熟视无睹数据库格局成立1个将数据库文件存款和储蓄在Azure存款和储蓄上的数据库,从而推动质量、可用性、扩充性、灾备甚至数据虚拟化方面包车型地铁好处。

*二〇〇七/12/06 :改进了第⑥篇中 create 命令中 奥德赛RA 行数的一无可取
**********************************************************************************************************************

注 :转载请表明出处

  在介绍 XC60本田UR-VDtool
此前,让大家先想起一下它的前身:M冠道TG。相信如若做网管工作的情侣,对 MTiggoTG
那么些软件一定不会素不相识,

最少也可能听过。M昂CoraTG 可以透过 SNMP 协议间接待上访问 SNMP Object ,例如
ifInOctect 和 ifOutOctect ;也可以通过外部 

script
的章程,来监测cpu、内部存款和储蓄器、磁盘利用率、数据库的表空间利用率等音信。只要把
MEnclaveTG 放入 crontab 中让其机动运营,

MCRUISERTG 就能够自行为您绘制出每一天、周周、每月、每年的总计图表。 M宝马X3TG
甚至还为你提供了自动生成配置文件的 cfgmaker 和

自动生成 HTML 页面包车型客车 indexmaker 那五个工具,让你省去各种编写 cfg
文件的惨痛。到近来停止,还有好多个人在接纳它。它未来

有 Unix、Windows 各样平台,windows 平台上竟然出现了 PEnclaveTG 那样和 M昂CoraTG
很象的东东,轻点鼠标就足以好好的到位工作。

既然,我们为啥还要介绍 Tiguan奇骏Dtool 呢?先让大家看多少个难点,多少个在 MOdysseyTG
使用中广大的题材 :

一)MEnclaveTG 无法作什么?

A)M牧马人TG
一张图片只可以展现一个目的,2个输入,贰个输出。假使你想同时展现四个目的啊?例如作者的单位有12台服务器。如若想

   把它们的载重景况都呈现在一个图形上,MCRUISERTG 至少需求6张图。

B)MKoleosTG不能回看数据。M奔驰G级TG
的图是自动生成的,所选取的多寡也是由 MCRUISERTG
自个儿提取的,例如肆分钟平均的笔录有288条,  MLX570TG每十八分钟集合1回,

   
每一遍合并五个记录。在肆十六个小时后,288条记下将全方位变为20分钟平均的数量。如若您想重放这几个多少如何是好呢?对不起,只可以去

    看第2个图了(每周)。

C)MGL450TG 唯有 COUNTERAV4 和 GAUGE
这三种总计类新。假设本人要监测八个数值型的目的期间的深浅,它们之间的差值能够是正数,也能够

   是负数。MLacrosseTG 能达成啊?作者在数次测验中窥见,M帕杰罗TG 对于负数的和
‘.15’  这样格式的小数(日常都以bc的出口)的识别会出错。

   例如把 ‘.72’ 识别为 72,把 -1 识别为 1。

D)MEscortTG
不只怕达成有规范的绘图。有时候大家只想看有个别服务器在一年之中的宕机时间,平常时间我们不关切;或许大家想看当前值和去年同期相比较毕竟怎么着?
这一个都以

     M奥德赛TG不可能实现的

二) MRTG 的优点

这 MKoleosTG 和 奥迪Q5牧马人Dtool
相比较就平昔不亮点了啊?也不是。不难、方便便是它的最大优点。

(M牧马人TG 中还有一个好东西就是机动报告警方功能,相比之下,宝马X5PRADODtool
在那上头的布署比较复杂,

还不如间接作到 shell script中)

前边提到 M君越TG 能够通过 cfgmaker 和 indexmaker
神速建立布局文件和HTML页面。而 昂科威ENCOREDtool 在这两地点都急需自身动手。

多少的采集→插入数据→提取数据→绘图→建立 HTML
,那一个步骤都以内需你协调入手的。哈弗LacrosseDtool
给了动用它的人最大程度的妄动。但那种

自由对于新手大概没有耐心的人的话或者是一种考验。相比较之下,M途乐TG
就便于上手多了。

三) RRDtool 的定义

   OdysseyTucsonDtool 代表 “Round 罗布in Database tool” ,作者同时也是 M大切诺基TG
软件的发明人。官方站点位于http://oss.oetiker.ch/rrdtool/ 。

   所谓的“Round Robin”
其实是一种存款和储蓄数据的不二法门,使用固定大小的空中来储存数据,并有二个指南针指向最新的数额的岗位。大家得以把用来存款和储蓄
   
  数据的数据库的长空作为一个圆,下边有众多刻度。那一个刻度所在的岗位就代表用于存款和储蓄数据的地点。所谓指针,能够认为是从圆心指向那些刻度的

  一条直线。指针会趁着数据的读写操作自动移动。要留心的是,那几个圆没有源点和终端,所以指针能够平昔移动,而不用担心到达极限后就不可能前行

  的题材。在一段时间后,当有着的空间都存满了数码,就又从头开端存放。那样全方位存储空间的轻重就是三个一定的数值。所以帕杰罗昂科威Dtool
就是应用类似

  的不二法门来存放数据的工具,兰德酷路泽汉兰达Dtool 所运用的数据库文件的后缀名是
‘.rrd’。

四)XC60奥迪Q5Dtool 的超过常规规之处

A) 首先 奥迪Q5SportageDtool 存款和储蓄数据,扮演了二个后台工具的剧中人物。但与此同时 普拉多福睿斯Dtool
又允许创制图表,那使得 奥迪Q5君越Dtoo  看起来又像是前端工具。其余的数据库

         只可以存款和储蓄数据,无法创设图表。

B) MuranoDtool 的每一个 rrd
文件的轻重是稳定的,而常见的数据库文件的高低是随着时间而充实的

C) 其余数据库只是被动的承受多少, 奥迪Q5ENVISIONDtool
能够对吸收接纳的数额进行测算,例如前后五个数据的变动程度(rate
of  change),并储存该结果。

D) CR-V智跑Dtool
需求定时获取数据,别的数据库则尚未该供给。假若在1个时光距离内(heartbeat)没有接受值,则会用
UNKN 代替,别的数据库则不会这么做

五)总括RAV4OdysseyDtool 和 MPAJEROTG
的不相同之处

A) M冠道TG 是选择配备文件的不二法门来监督的;

      Qashqai昂CoraDtool
则没有布署文件一说。全部操作都以经过命令(也足以写成script方式)执行

B) MSportageTG 有自动收集数据的法力(通过 snmp);

     本田UR-VKugaDtool 没有,要求手工业或然经过 shell/perl 脚本来获取数据

C) M帕杰罗TG 每一遍运维都会更新图片和日志;

     奇骏奇骏Dtool 暗中同意知识接收数据,并不会绘图,除非手工业执行 graph 命令

D) M凯雷德TG 采纳公开的 log 格局存放历史数据;
    
     Sportage库罗德Dtool 选择数据库的办法来存放数据;

E) MLANDTG 不可能重播日志数据,因为 MWranglerTG 会对日记进行合并;

     Rubicon牧马人Dtool 选用 SportageRA
的定义,把分裂计算周期的数量单独存放,所以能够做到历史数据的重放效率

F) M帕杰罗TG 的 log 中种种周期的记录的多寡是半自动爱抚的;
   
     帕杰罗RAV4Dtool 的 福睿斯RA 中的记录数是足以自定义的。

G) MLANDTG 中数据的总计时间间隔是稳定的,例如
四分钟平均,贰拾5秒钟平均,2时辰平均,1天平均;
    
      OdysseyHighlanderDtool 能够随便设置(试过1分钟3次)

H) M景逸SUVTG 一张图只好突显二个对象;

     ENVISION福睿斯Dtool 能够来得七个。

I) MOdysseyTG 的数据类型只有 COUNTEPRADO 和 GAUGE 三种;

    RRDtool 有5种,COUNTER、GAUGE、DERIVE、ABSOLUTE、COMPUTE

J) M中华VTG 的图形只可以展现当前值、最大值、平均值;

     凯雷德RAV4Dtool
能够显妥当前值(LAST)、初值(FI帕杰罗ST)、最大值(MAX)、最小值(MIN)、平均值(AVG)、总和(TOTAL)等

K) M哈弗TG 绘图方式唯有 AREA、LINE 格局;

     RRDtool 则有 AREA、LINE(1|2|3)、STACK 方式;

L) M翼虎TG 负责征集、存款和储蓄、绘图、建档(HTML);

     Murano途锐Dtool 只担负储存、绘图这些级次,所以供给团结建立 HTML 文件

M) M景逸SUVTG 的演算成效较差;

      TiguanEvoqueDtool 能够经过 CDEF 对取出来的多寡开始展览算术和逻辑运算;

N)M智跑TG 只可以一五一十的显得数据;

    帕杰罗XC60Dtool 能够对数据实行拍卖,可能有规范的呈现;

如上所述 汉兰达RubiconDtool 的功力是还是不是比 M兰德索罗德TG 强很多啊?!

具体的不一样最近就只好想到那一个,不知诸位还有没有怎么着补充呢?
!!^_^ !!

深信如此讲的话还是比较空虚的,可是不用急,近来只是叁个方始而已。

下一节我们初始讲怎么设置 福特ExplorerRubiconDtool 。

 

 

 

 

 

设置,小编一贯用的apt-get install rrdtool即可安装成功

 

 

 

先前时代规划

**********************************************************************************************************************
注 :该科目参考了如下内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
                    
 http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
说到底修改 :二零零六/11/18 0:06
**********************************************************************************************************************

   大概大家会以为意外,做个 牧马人PAJERODtool
还要规划怎么着?俗话说:磨刀不误砍柴工。好的宏图必须有所灵活性、可扩大性,不然会给

后金的利用带来很多的劳动。大家先谈一下 MCR-VTG 的设计,再谈 ENVISIONHighlanderDtool
的宏图。

一)MRAV4TG 的最初布置

A)想要监测监测什么目的?并列出1个清单;

B)想要以什么格局来得到数据?是由此SNMP 仍旧 shell 、perl 。若是使用 SNMP ,监测对象所在主机  

      的 SNMP 服务安装了吗?是不是安顿完结;

C)种种对象的监测时间是多久贰次?并以此对监测对象开始展览归类。例如作者自小编共用
M瑞虎TG 监测了 80 两个对象,并依据

     内容分成四类 :

     首要气象方面 : 例如 HACMP 的切换动作监察和控制;Oracle 服务的情形;LVM
中的 vg 是不是在线;服务器是还是不是宕机等。那么些监

                              
测对象对于八个种类的周转以来都是越发注重的,一旦爆发故障,供给及时处理的。所以对于那类对象,按最

                              小时间间隔(六分钟贰次)设置

     I/O品质方面 :主尽管 I/O 吞吐量、I/O
服务时间方面包车型客车监测。那类对象是七分钟三遍

      次要状态方面 :例如
cpu利用率、内部存款和储蓄器利用率、在线人数、温度、拨号用户人数等。20分钟一遍

     利用率方面
: 由于实在运用的标题,所以对利用率比较关怀。单独拎出来做一块监测。首如果监察和控制Oracle
的种种表空间的利

                           
用率,以及LVM磁盘系统依次分区的利用率。每2四分钟贰次

     监察和控制机本身:负责督察的监察和控制机本人也亟需监察和控制。重要监督当前监测的靶子数量,以及系统负荷。那类就27分钟一遍。

D)每一个对象二个 cfg 文件?依然整个集中在3个cfg 文件中呢?作者小编恐怕相比较倾向于各样 Target三个 cfg 文件,每个cfg 中都定

        义 Workdir、Language   那五个选择。针对地方的七个分类,建立多个“大的”cfg 文件,再利用 MRubiconTG 中的  Include 成效导入2个个

         “小的”、具体的 cfg
文件。那样当日后对某些监测对象进行改动时(例如修改数据的获得脚本,可能修改图片的外观),可以独自测试

       
 该对象。不用连同其余对象也联合跑一次,节省屡见不鲜岁月。假使想收回那多少个目的的监测,在前面提到的百般“大的”cfg
文件中,把对应

        的 Include 语句注释掉就足以了,是或不是更有利于呢?

E)为个督察指标起三个相宜的称呼。一般用
<host_iterm>
的方法。这一步也满重要的。一早先不理会,随便给个名字,等到后来温馨都

    搞不清楚了,提出一从头就规划好。即便要运用 M汉兰达TG
的报警功用,就更应当能够规划了,要不然收到告警邮件都不清楚是充足指标,那些机

    器出现难题,白白浪费时间。

F)是还是不是须要用到 M帕杰罗TG 的报告警方成效。MGL450TG
有报告警方效率,能够安装输入/出的最大值,最小值。超越限定就会调用
ThreshProgI 和 ThreshProgO 

 
 选项钦点的次第。作者一般用发送邮件和HTML同盟的点子。上面是报告警方部分的截图

图片 10

图片 11
  

基本上也就这么些了,就足以起来出手写 script 了。

 

 

 

 

 

二)库罗德汉兰达Dtool 的早期陈设

PAJEROOdysseyDtool 的中期布署相对多一点,因为 大切诺基LacrosseDtool
很多东西需求协调设定。除了上述 MPRADOTG 考虑的几点之外,笔者一般还考虑以下几点

A)是二个 奥迪Q5TiguanD
文件中包涵八个监测对象(DS),依然分成多个 LANDPAJEROD 文件 ?WranglerCRUISERDtool
提供了 tune 操作,能够扩张监测对象恐怕去除 Kuga福睿斯D 文

   
件中的有些对象,而且绘图时也足以钦命要画的是可怜指标,那一点看个人喜欢而定。

B)怎样总计取得的数据 :M奥迪Q5TG
是原则性的,五分钟、20分钟、2钟头、1天。奇骏RubiconDtool 则能够团结设置

C)怎么着保存/总计这一个数据 :那是和 M翼虎TG
差别的地点。M福特ExplorerTG log 的建立和维护是活动的,PAJERO兰德KoleosDtool 的多寡存放

     则必要协调定义。但咱们能够参照 M库罗德TG 的主意:
   
    每天总计图(六分钟平均)  : 600 个,大致2天的岁月

    周周总计图(20分钟平均) : 600 个,大概8天的时日

    每月总括图 (2钟头平均) : 600 个,50 天的大运

    每年总括图 (1天平均) :730 个, 2年的时间

D 要以什么点子绘图 :M福睿斯TG
唯有曲线(LINE)和方块(AREA)二种;RKugaDtool 除了那三种外,还有一种是
STACK 形式。正是在前一个曲线依然方

    块的基本功上绘图图,而不是直接从 X
轴开端绘图。那样绘制出来的图相比清晰,不会出现交叉的景观,但此时 Y
轴的值等于当前指标的值加上前一

   个绘图对象的值。例如前三个指标(cpu
的种类经过利用率)的值是10,选择的是 AREA 形式绘图。当前指标(cpu
的用户级进度的利用率)是5,

   选拔的是 STACK
情势,则“cpu的用户级进度利用率”对应的Y轴刻度是10+5=15;所以只要不加表明,别人大概会误解。

三)实际例子

A)搞懂获得底想要监测什么目的:监测当地主机的网络流量。包含 eth0 和 lo 接口的流量。

B)想要以什么样格局来获得数据 :sar
也能够总括网卡接口的流量。但那边我们用 SNMP ,访问 ifInOctets 和
ifOutOctets 。

    假诺脚本名称是 get_eth0_traffic.sh 和 get_lo_traffic.sh

C)每一个对象的监测时间是多久二回:4分钟

D)是使用一个 奥迪Q5WranglerD 文件依旧多个 :2个途乐PAJEROD 文件,一个是 eth0.rrd,多少个是 lo.rrd

E)[color=bl;ue]为种种监测对象起名 :分别是 eth0_in ,eth0_out
,lo_in ,lo_out

F)计算频率
:4分钟、20分钟、2时辰、1天

G)如何保存总括数据
:600个、600个、600个、7二十七个

H)要以什么措施绘图
:如今暂不考虑该难题。等到实际绘图时再体会。

注 :实际上大家得以把多少的插入、绘图一起达成get_eth0_traffic.sh 和 get_lo_traffic.sh
中,但当下那八个脚本只是背负取多少并出口而已,

               到终极大家再把那几个作用合并到一块。

四)上面是本子的内容

  1. [root@dns1 bob]# cat get_eth0_traffic.sh 
  2. #!/bin/bash
    1. # 首先得到 eth0 接口的 ifIndex 
  3. index=$(snmpwalk -IR localhost RFC1213-MIB::ifDescr |grep eth0|cut
    -d ‘=’ -f 1|cut -d ‘.’ -f 2)
    1. # 再经过 snmp 协议得到 ififInOctets 和 ifOutOctets 的值
  4. # 由于在 /etc/snmp.conf 中布局了 defVersion 和 defCommunity ,所以
    snmpget 命令不用钦点那多个参数
    1. eth0_in=$(snmpget -IR -Os localhost ifInOctets.${index}|cut -d
      ‘:’ -f 2|tr -d ‘[:blank:]’)
  5. eth0_out=$(snmpget -IR -Os localhost ifOutOctets.${index}|cut -d
    ‘:’ -f 2 |tr -d ‘[:blank:]’)
  6. echo $eth0_in
  7. echo $eth0_out
    1. [root@dns1 bob]#

复制代码

 

  1. [root@dns1 bob]# cat get_lo_traffic.sh      
  2. #!/bin/bash
  3. # 首先获得 eth0 接口的 ifIndex 
    1. index=$(snmpwalk -IR localhost RFC1213-MIB::ifDescr |grep lo|cut
      -d ‘=’ -f 1|cut -d ‘.’ -f 2)
  4. lo_in=$(snmpget -IR -Os localhost ifInOctets.${index}|cut -d ‘:’ -f
    2|tr -d ‘[:blank:]’)
  5. lo_out=$(snmpget -IR -Os localhost ifOutOctets.${index}|cut -d ‘:’
    -f 2 |tr -d ‘[:blank:]’)
  6. echo $lo_in
    1. echo $lo_out
  7. [root@dns1 bob]#

复制代码

再把那2个剧本放入 crontab 中,每6分钟实施3次

  1. */5 * * * * /home/bob/get_eth0_traffic.sh
  2. */5 * * * * /home/bob/get_lo_traffic.sh

复制代码

唯独那样会有厌恶的邮件发生,也得以在本子中用 while true 循环,合作 sleep
300 让剧本一向运维,而不是重复运营脚本。具体选取那样你本身支配。

当有着的预备干活都形成后,就能够初阶考虑建库了。

 

 

 

 

 

 

建立 RRD 数据库

**********************************************************************************************************************
注 :该课程参考了之类内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最后修改 :二〇〇五/11/17 17:35
**********************************************************************************************************************

   
准备干活都做完了,脚本也写完了,就能够起来建库了。建库实际上正是白手起家后缀名为
.rrd 的 君越QX56D 文件。

一)语法格式

  1. rrdtool create filename [–start|-b start time] [–step|-s
    step] 
  2.                          [DS:ds-name:DST:dst arguments]  
  3.                          [RRA:CF:cf arguments]

复制代码

当中 filename 、DS 部分和 卡宴RA 部分是必须的。其余多少个参数可免。

二)参数解释

A)<filename> :暗中同意是以 .rrd 结尾,但也以随你设定。

B) –step :正是 Tucson瑞鹰Dtool “期望” 每隔多久就收到3个值。和 MENVISIONTG 的
interval 同样含义。暗许是肆分钟。我们的台本也应有是

          每六分钟运营3遍。

C) –start :给出 库罗德RDtool 的率先个记录的序幕时间。RAV4库罗德Dtool
不会经受别的采集样品时间低于可能等于钦点时间的数量。也正是说 –-start

      钦赐了数据库最早的特别记录是从曾几何时起先的。假若 update
操作中付出的时日在 –-start 从前,则 LAND纳瓦拉Dtool拒绝接受。–satrt 选项也是
      
      可选的。根据 大家在前一篇中的设定,则暗许是日前日子减去
600*300秒,也正是肆16个小时前。 即便您想钦点–start 为1天前,能够用  

  1. –start $(date -d ‘1 days aog’ +%s)

复制代码

      注意,–start 选项的值必须是 timestamp 的格式。

D) DS :DS 用于定义 Data Soure
。也正是用于存放脚本的结果的变量名(DSN)。

      正是大家最近提到的 eth0_in ,eth0_out, lo_in , lo_out 。DSN 从
1-19 个字符,必须是 0-9,a-z,A-Z 。

E) DST :DST 就是 Data Source Type 的意思。有
COUNTER、GUAGE、DERIVE、ABSOLUTE、COMPUTE 5种。

              由于网卡流量属于计数器型,所以那边应该为 COUNTE福特Explorer 。

F) HavalRA :PRADORA 用于内定数量怎样存放。大家能够把3个CRUISERRA
看成多个表,各保存差别 interval 的总括结果

G)PDP :Primary Data Point 。正常状态下种种 interval 帕杰罗奥迪Q3Dtool
都会吸收1个值;兰德卡宴XC60Dtool 在吸收接纳脚本给来的值后 会计算出此外

      二个值(例如平均值),这几个 值正是 PDP
;这几个值代表的一般是“xxx/秒”的含义。注意,该值不必然等于EvoqueCR-VDtool  收到的这几个值。除非是 
      
       GAUGE ,能够看下边的例证就掌握了      

H) CF :CF 正是 Consolidation Function
的缩写。也正是联合(总括)作用。有 AVERAGE、MAX、MIN、LAST 二种

      分别代表对多个PDP
进行取平均、取最大值、取最小值、取当前值多类别型。具体功用等到 update
操作时 再说。

I) CDP :Consolidation Data Point 。奇骏帕杰罗Dtool 使用多少个 PDP
合并为(总括出)三个 CDP。也正是实践上边 的CF
操作后的结果。这几个值正是存入 昂科雷RA 

      的数目,绘图时使用的也是这一个数据。

三)再说 DST 

    DST 的挑选是足够重中之重的,若是选错了 DST
,尽管你的脚本取的数量是对的,放入 中华V凯雷德Dtool
后也是一无可取的,更不要提画出来的图是还是不是有意义了。
    
    如何挑选 DST 看下边包车型客车叙述 :

   A)COUNTE揽胜:必须是比比皆是的,除非是计数器溢出(overflows)。在那种境况下,SportagePRADODtool
会自动修改收到的值。例如互联网接口流量、收到的
   
        packets 数量都属于这一项目。

   B)DEPRADOIVE:和 COUNTECRUISER类似。但能够是多如牛毛,也足以递减,大概一会日增一会儿滑坡。

   C)ABSOLUTE :ABSOLUTE
相比独特,它每一趟都假定前2个interval的值是0,再总计平均值。

   D)GAUGE :GAGUE 和上边三种不一样,它从未“平均”的概念,智跑景逸SUVDtool
收到值之后字节存入 奥迪Q5RA 中

   E)COMPUTE :COMPUTE
相比新鲜,它并不接受输入,它的定义是三个表达式,可以引用其余DS并机关总括出有些值。例如 
   
      

  1. DS:eth0_bytes:COUNTER:600:0:U DS:eth0_bits:COMPUTE:bytes,8,*

复制代码

       则 eth0_bytes 每得到二个值,eth0_bits 会自动测算出它的值:将
eth0_bytes 的值乘以 8 。但是 COMPUTE 型的 DS 有个限制,只可以采纳
       
       它所在的 酷威奥迪Q3D 的 DS ,无法引用其余 Lacrosse凯雷德D 的 DS。 COMPUTE 型 DS
是新本子的 PAJERO本田CR-VDtool 才有的,你也足以用 CDEF 来实现该作用。 
        
         
    F)AVERAGE 类型适合于看“平均”情状,例如一天的平均流量,。所以
AVERAGE 适用于须要理解 ‘xxx/秒’ 那样的供给。但利用 AVERAGE
型时,你并不知道

        在各种 CDP
中(假若贰拾柒秒钟平均,五个PDP组成)之中,流量具体是何许变化的,曾几何时高,哪天低。那于需求用到其他总计类型了

    G)MAXIMUM
、MINIMUM不适用想清楚“xxx/秒”那样的急需,而是适用于想领会某些对象在每种不相同随时的呈现的必要,也正是中心在于各种时间点。

         也等于所谓的“趋势”了,依旧地方的例子,假设应用 MAXIMUM 或然MINIMUM 的 CF ,能够看看接口在各种 CDP
的周期内最高是达到多少,最低又是多

         少,假若是 AVERAGE 的话,有恐怕前八个 PDP 都很均匀,但说到底2个PDP 的值爆发相当大的突变。那时候假诺用 AVERAGE
大概是看不出来的,因为突变的部

         分被平均分配到全方位时间段内了,所以看不出突变这场景;但假若用
MAXIMUM 就能够理解的掌握在该 CDP
的周期内,曾经有高达有些值的时候。所以用 

        MAXIMUM 恐怕 MINIMUM
就能够知晓有个别对象在有个别时刻段内最大达到多少,最低低到什么样水平。

        例如要看有个别接口在一天内有没有超越50Mb 流量的时候将要用
MAXIMUM

       例如要看磁盘空间的空闲率在一天内有没有低于 2/10 的时候就要用
MINIMUM

     H)LAST 类型适用于 “累计”的定义,例如从xxx时候到当下共累计xxxx
那样的急需。例如邮件数量,能够用 LAST 来表示 二十八秒钟内一起收到多少个邮件,同

         样 LAST 也绝非平均的概念,也正是说不适用于 ‘xxx/秒’
那样的急需,例如你无法说平均每秒钟多少封邮件那样的传教;同样也不适用于看各种周期内的变通,

         例如二十六分钟内共吸收100封邮件,分别是
:第多少个6分钟20封,第二个6分钟30封,第二个五分钟没有,第5个五分钟10封,第陆个6分钟也并未,第四个六分钟
         
         40封。假如用 MAXIMUM 大概 MINIMUM
就不晓得在三十多分钟内共接受100封邮件,而是得出30和0。所以 LAST
适用于每隔一段时间被观看 对象就会复位的
         
         情状。例如每贰拾陆分钟就收贰遍寄邮资件,邮件数量便是 LAST
值,同时并存的新邮件数量就被清零;到下3个贰拾7分钟再收一回邮件,又获得三个30  分钟的 LAST 值。
         
       
 那样就足以得得出“距离上3次操作后到近日甘休共xxx”的必要。(例如距离上3回收到邮件后又共选拔100封新邮件)

四)DST 实例证实

如此那般说只怕照旧相比较模糊,能够看上边包车型大巴例子,体会一下什么是 DST 和
PDP  :

Values = 300, 600, 900, 1200        # 假设 RRDtool
收到4个值,分别是300,600,900,1200

Step = 300 seconds                    # step 为 300

COUNTER = 1,1, 1,1                         #
(300-0)/300,(600-300)/300,(900-600)/300,(1200-900)/300
,所以结果为 1,1,1,1

DERIVE = 1,1,1,1                         # 同上

ABSOLUTE = 1,2,3,4                   # (300-0)/300,(600-0)/300 ,
(900-0)/300, (1200-0)/300,所以结果为 1,2,3,4

GAUGE = 300,600,900,1200          # 300 , 600 ,900 ,1200
不做运算,直接存入数据库

所以率先行的 values 并不是 PDP ,前面4行才是 PDP 

五)开始建库

  1. [root@dns1 root]# rrdtool create eth0.rrd \
  2. > –start $(date –d ‘1 days ago’ +%s) \
  3. > –step 300 \
  4. > DS:eth0_in:COUNTER:600:0:12500000 \        #  600 是
    heartbeat;0 是微乎其微值;12四千00 表示最大值; 
  5. > DS:eth0_out:COUNER:600:0:12500000 \        #
    借使没有最小值/最大值,可以用 U 代替,例如 U:U
  6. > RRA:AVERAGE:0.5:1:600 \        # 1 表示对三个 PDP
    取平均。实际上就相当于 PDP 的值
  7. > RRA:AVERAGE:0.5:4:600 \        # 4 表示每伍个 PDP 合成为一个CDP,也便是17分钟。方法是对陆个PDP取平均, 
  8. > RRA:AVERAGE:0.5:24:600 \  #
    同上,但改为24个,也就是24*5=120分钟=2小时。
  9. > RRA:AVERAGE:0.5:288:730        # 同上,但改为288个,也就是
    288*5=1440分钟=1天
  10. [root@dns1 root]#  

复制代码

注:上边第一-伍个 奥迪Q7RA的记录数实际上应该是
700,775,790,而不是 600,600,730。
600 samples of 5 minutes  (2 days and 2 hours)= 180000 秒 (2.08天)
700 samples of 30 minutes (2 days and 2 hours, plus 12.5 days)= 1260000
秒 (14.58天 ,2周)
775 samples of 2 hours    (above + 50 days) = 5580000 秒 (64.58
天,2个月)
797 samples of 1 day      (above + 732 days, rounded up to 797) =
68860800 秒(2年)
能够阅览各类 君越RA 都存款和储蓄了对应单位2倍时间的数码,例如每一日的 MuranoRA
存款和储蓄2天的数额,周周的 本田CR-VRA 存储2周的数额,每月的 奥迪Q5RA
存款和储蓄二个月的多少,每年的 OdysseyRA 存款和储蓄2年的多寡

检查一下结果

  1. root@dns1 bob]# ll -h eth0.rrd
  2. -rw-r–r–    1 root     root          41K 11月 19 23:16 eth0.rrd
  3. [root@dns1 bob]#

复制代码

局地人大概会问,上边有八个 DS,那 酷威RA 中毕竟存的是丰盛 DS
的多寡吧?实际上,这几个 ENCORERA 是公共的,你只需建立3个凯雷德RA,它就能够用于全数的 DS 。

故而在概念 OdysseyRA 时不须要内定是给这一个 DS 用的。

六)什么是 CF 

以第2个RRA 和 4,2,1,3 这4个 PDP 为例

AVERAGE :则结果为 (4+2+1+3)/4=2.5

MAX :结果为6个数中的最大值 4

MIN :结果为伍个数中的最小值1

LAST :结果为6个数中的倒数 3

同理,第三个RRA和第4个RRA则是每24个 PDP、每288个 PDP 合成为1个 CDP

七)解释度(Resolution)

那边要提到三个 Resolution 的定义,在官方文档中多处涉及 resolution
一词。Resolution 毕竟是怎么?Resolutino 有何样用?

举个例证,假如大家要绘制1时辰的多寡,也正是60分钟,那么我们得以从第②个凯雷德RA
中取出10个 CDP 来绘图;也得以从第三个 大切诺基RA

中取出一个 CDP 来绘图。到底 君越TiggoDtool 会动用拾叁分呢?

让我们看一下 福特ExplorerRA 的定义 :凯雷德RA:AVERAGE:0.5:4:600 。

Resolution 就等于 4 * step = 4 * 300 = 1200 ,也便是说 ,resolution
是各种CDP 所表示的时光限定,也许说 奥迪Q3RA 中种种 CDP(记录)

里头的岁月距离。所以首先个 XC60RA 的 resolution 是 1* step=300,第3是
1200,第一个是 24*300=7200,第4个 RRA 是 86400 。

暗许情形下,卡宴揽胜极光Dtool 会自动选拔适合的 resolution 的尤其 PRADORA
的数额来绘图。大家大可不必关怀它。但万一协调想取特定 LANDRA
的多寡,就必要利用它了。

至于 Resolution 大家还会在 fetch 和 graph 操作中涉嫌它。

八)xff 字段

细心的恋人可能会意识,在 LX570RA 的概念中有3个数值,固定是 0.5
,那么些到底是如何东东吗?

那个名为 xff 字段,是 xfile factor 的缩写。让我们来看它的定义 :

The xfiles factor defines what part of a consolidation interval may be
made up from *UNKNOWN* data while

the consolidated value is still regarded as known. It is given as the
ratio of allowed *UNKNOWN* PDPs to 

the number of PDPs in the interval. Thus, it ranges from 0 to 1
(exclusive)

本条看起来有点头晕,咱们举个简单的事例 :例如

  1. RRA:AVERAGE:0.5:24:600

复制代码

以此 讴歌RDXRA 中,每2八个 PDP (共两钟头)就合成为一个 CDP,假使这 24 个 PDP
中有局地值是 UNKNOWN (原因能够多多),例如三个,那么那么些 CDP 

合成的结果什么呢?是否就为 UNKNOWN 呢?

不是的,那要看 xff 字段而定。Xff 字段实际就是三个比例值。0.5 表示贰个CDP 中的全数 PDP 借使跨越四分之二的值为 UNKNOWN ,则该 CDP 的值就被标为

UNKNOWN。也正是说,假诺2陆个 PDP中有10个恐怕当先十二个 PDP 的值是 UNKNOWN
,则该 CPD 就无法合成,大概合成的结果为 UNKNOWN;

一经是12个 PDP 的值为 UNKNOWN ,则该 CDP 的值等于剩下 13  个 PDP
的平均值。

设若二个 CDP 是有二个 PDP 组成,xff 为 0.5 ,那么一旦有3个 PDP 为
UNKNOWN ,则该 PDP 所对应的 CDP 的值正是 UNKNOWN 了

 

 

 

 

 

 

 

 

奥迪Q5LANDDtool简体普通话教程_5:如何赢得奥德赛大切诺基D文件的新闻
收获 PAJERO大切诺基D 文件的音讯

**********************************************************************************************************************
注 :该课程参考了如下内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
末尾修改 :2005/11/17 17:35
**********************************************************************************************************************

一)前言

   恐怕您曾经颇不须求的想清楚哪些往 Odyssey揽胜D
文件插入数据、怎么着绘图了吧?hoho,先别急,在您做那么些工作以前,最好先考虑以下多少个难点:

   A)假设给您1个 帕杰罗本田CR-VD 文件,你能分晓它的率先次/最后一回 update
的年月是在怎么时候啊?

   B)如若您很久此前建立了二个 LAND奥迪Q7D 文件,未来因为工作缘故需求对该 CR-V奇骏D
文件举办一些修改。可是遗憾的是,
   
       你早已不记得伏贴初设置的有血有肉选项和参数了,  这时候该怎么办呢?
       
   这八个难题就对应前日要讲的八个操作 :first/last 、info 。
   
   first 就是用来查看该 奥迪Q3ENCORED 文件中有个别 路虎极光RA
的第③个数据是在怎么着时候插入的(只怕说第③次创新);
   
   last 正是查看该 奥迪Q7途锐D 文件的近年来三回立异;
   
   info正是查看 rrd 文件的结构新闻。
   
   下边就以实际例子来看一下该怎么用那四个命令 :
   
   
二)如何查询一个 本田UR-V宝马X5D
文件的协会音信
   
    

  1. [root@dns1 bob]# rrdtool info eth0.rrd       
    (由于出口消息较多,截取了一有的)
  2. filename = “eth0.rrd”
  3. rrd_version = “0003”
  4. step = 300                                        # OdysseyLX570Dtool
    希望每五秒钟收取一个数量
  5. last_update = 1163862985                # 这是新近二回立异的
    timestamp 。能够用 date 转换为现实的时间
  6. ds[eth0_in].type = “COUNTER”                # 有一个名为
    eth0_in 的 DS,DST是 COUNTER
  7. ds[eth0_in].minimal_heartbeat = 600        # hearbeat 时间是600
  8. ds[eth0_in].min = 0.0000000000e+00        # eth0_in 的最小值是
    0 (bytes)
  9. ds[eth0_in].max = 1.2500000000e+07        # eth0_in 的最大值是
    12四千0000 (bytes)
  10. ds[eth0_in].last_ds = “UNKN”        
  11. ds[eth0_in].value = 0.0000000000e+00
  12. ds[eth0_in].unknown_sec = 85
  13. ds[eth0_out].type = “COUNTER”
  14. ds[eth0_out].minimal_heartbeat = 600
  15. ds[eth0_out].min = 0.0000000000e+00
  16. ds[eth0_out].max = 1.2500000000e+07
  17. ds[eth0_out].last_ds = “UNKN”
  18. ds[eth0_out].value = 0.0000000000e+00
  19. ds[eth0_out].unknown_sec = 85
  20. rra[0].cf = “AVERAGE”                                # 第二个 RubiconRA
    的数码是0,不是1。
  21. rra[0].rows = 600                                        # 共保存
    600 个记录
  22. rra[0].pdp_per_row = 1                        # 每一种 CDP 由四个PDP 总计得出
  23. rra[0].xff = 5.0000000000e-01                # 只要当前interval
    的 PDP 为 unknown ,则该 CDP 的值也是unknown
  24. rra[0].cdp_prep[0].value = NaN
  25. rra[0].cdp_prep[0].unknown_datapoints = 0
  26. rra[0].cdp_prep[1].value = NaN
  27. rra[0].cdp_prep[1].unknown_datapoints = 0
  28. rra[1].cf = “AVERAGE”                                # 第二个 奥迪Q5RA
    的数码是 1。同样也是 AVERAGE 型。
  29. rra[1].rows = 600                                        #
    也是保存 600 个记录
  30. rra[1].pdp_per_row = 4                        # 每一个 CDP 由四个PDP 的求平均值得出
  31. rra[1].xff = 5.0000000000e-01                # 各个 CDP
    最多允许3个 PDP 为 unknown ,超越则该 CDP 为unknown
  32. rra[1].cdp_prep[0].value = NaN
  33. rra[1].cdp_prep[0].unknown_datapoints = 3
  34. rra[1].cdp_prep[1].value = NaN
  35. rra[1].cdp_prep[1].unknown_datapoints = 3
  36. [root@dns1 bob]#

复制代码

出于新闻太长,那里截取了背后3个 大切诺基RA
的音讯。

三)第一遍创新/近年来三回创新

若是想掌握方今一次立异发生在怎么样时候,除了可以用地点的 info
操作,还足以用 last 操作

  1. [root@dns1 bob]# rrdtool last eth0.rrd
  2. 1163862985
  3. [root@dns1 bob]#

复制代码

假定转换到具体的岁月便是 :

  1. [root@dns1 bob]# rrdtool last eth0.rrd |xargs -i date -d
    ‘1970-01-01 {} sec utc’
  2. 六 11月 18 23:16:25 CST 2006
  3. [root@dns1 bob]#

复制代码

 

  1. [root@dns1 bob]# rrdtool first eth0.rrd
  2. 1163683200
  3. [root@dns1 bob]#

复制代码

万一换到现实的日子就是 :

  1. [root@dns1 bob]# [root@dns1 bob]# rrdtool first eth0.rrd
    |xargs -i date -d ‘1970-01-01 {} sec utc’ 
  2. 四 11月 16 21:20:00 CST 2006
  3. [root@dns1 bob]#

复制代码

那三个指令的语法都分外不难,但并不得以为此轻视它们的效率,尤其是 info
操作。日后一旦急需对 LANDOdysseyD 文件进行调整,是常事须求动用的。

 

 

 

 

 

 

 

 

更新 RRD 文件

**********************************************************************************************************************
注 :该科目参考了之类内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
末段修改 :2005/11/17 17:35
**********************************************************************************************************************

一)前言

写了N多东东,总算到了 update 部分了。那里有必不可少相比一下 R汉兰达Dtool 和 M奇骏TG
在 update 方面包车型地铁异样。

A)M讴歌ZDXTG 能够经过 SNMP 协议直接访问 SNMP 对象,你只必要在 cfg 文件中的
Target 内定 OID ,MLacrosseTG 就足以自动替你取回数据。
   
       例如Target[as1_eth0]: 2:n7css@172.17.64.11:::::1 ,表示使用
SNMP v1 研究访问 172.17.64.11 主机上 index 为 2 的卓殊接口,
   
       私下认可是取 ifInOctets 和 ifOutOctets 那八个对象的值。奇骏兰德奥迪Q3Dtool
则并未这一个效能,只好你自身写脚本取数据。
       
B)M福睿斯TG 只辅助 COUNTE奥迪Q5 和 GAUGE 类型的 Target ;君越凯雷德Dtool 则还足以行使
DELacrosseIVE、ABSOLUTE、COMPUTE
  
C)由于地方的因由,M大切诺基TG 无法辨识小数,负数。例如你给 MEvoqueTG 多少个 -1
的值,它会解释为 1 ;那点能够经过 LOG 看出来。
  
       小数也非常。例如 .72 (bc 的输出)会被辨认为 72 ,而不是 0.72。
       
D)MCRUISERTG 每一遍 update 每一次运营只更新二次,也许说只插入一行记录。但 Escort福睿斯Dtool
能够在一个 updat操作中插入多少个记录。

E)MLacrosseTG 1回供给一个值,宝马X3奥德赛Dtool 则并未该地方的范围。

F)最大的二个界别是, MOdysseyTG 在收取多个值后会自动得出 timestamp ,并记录在
log 的首先个字段;而 翼虎宝马7系Dtool 是必要您付出三个 timestamp ,
  
       表示该数据是怎么着日子采访的。
   
二)update 操作的语法格式

  1. rrdtool {update | updatev} filename 
  2.          [–template|-t ds-name[:ds-name]…]
  3.          N|timestamp:value[:value…] 
  4.          at-timestamp@value[:value…]
  5.          [timestamp:value[:value…] …]
  6.        

复制代码

N 代表 now 的情致,会被 Koleos普拉多Dtool 替换为当前的 timestamp ,也便是 date +%s
的结果。Timestamp 部分相比较灵活,可以是数字格局,也能够是

AT-风格的时刻(参考 at 命令的 manual),有点类似于自然语言的风骨。

三)手工格局 update 数据库

作者们先读书一下怎么初始工业 update 数据库。Update 命令分成两片段 :

A)时间戳 (timestamp):表示该数据是在尤其时刻点采访的。Timestamp
的格式能够格外灵活 :

        数字情势 :例如11644一九四三8 ,表示 “六 7月 25 09:50:18 CST
二〇〇七”。常常用于手工业插入的艺术。

        快速方式 :N 。字母N 代表近来岁月(Now)。尽管是通过 crontab
的点子来运转 update 操作,那是最实用的主意。

        AT-风格 :所谓的 AT 风格的岁月,能够参见 at 命令的 manual。例如
now、yesterday、now-1hour、now+5min 都是 AT风格的时间。

                               要留心的是,假设应用
AT风格的时光,则时间和率先个value之间使用 @ 分隔,而不是 “:”

B)数值部分 :八个 ENCORE汉兰达D 文件能够有多少个 DS ,所以3回 update 能够交给四个value 。几个 value 之间用 “:” 分隔。可是是还是不是兼备的 DS 都必须

     给出值呢?不自然。有时候你只想付出一部分 DS
的值,甚至偶尔某个项指标 DS 是不容许赋值的,例如 COMPUTE 型的 DS
正是那样一个例证。
     

四)实操

实例一 :叁个不当的例子

  1. [root@dns1 bob]# rrdtool update eth0.rrd 1163862980:1:2        
  2. ERROR: illegal attempt to update using time 0 when last update time
    is 1163862985 (minimum one second step)
  3. [root@dns1 bob]#

复制代码

啊?为啥出错了啊?是语法错误吗?不是的,汉兰达瑞鹰Dtool
提醒方今1次创新是在1163862985 这些时候。也正是说,update
给出的光阴戳必须大于该值。

不可能等于还是小于该时刻。因为数量假诺插入到 SportageRA
中,就不容许再度修改。所以 update
会检查给出的时刻戳是不是超出最终叁回改进的时日戳,假使不是

则报错,不予执行。那怎么才能了然则今贰遍创新的岁月戳呢?还记得前一篇“怎么着得到大切诺基劲客D文件的音信”中介绍的
last 和 info 命令吗?对了!便是它们。

实践一下看看是什么样结果 ?

  1. [root@dns1 bob]# rrdtool last eth0.rrd
  2. 1163862985        
  3. [root@dns1 bob]#

复制代码

last 操作展现的时辰戳和上边的报错音讯提交的值一样。这么些日子是

  1. [root@dns1 bob]# date -d ‘1970-01-01 1163862985 sec utc’
  2. 六 11月 18 23:16:25 CST 2006
  3. [root@dns1 bob]#

复制代码

一句话来说借使要 update 数据库,则 update 操作给出的命宫戳必须晚于最终一回update 的年月。

实例二 :依然2个错误的例子

咱俩挑 23:16的下三个五分钟23:20看作时间戳吧。

  1. [root@dns1 bob]# date -d ‘2006-11-18 23:20’ +%s
  2. 1163863200
  3. [root@dns1 bob]#

复制代码

所以 update 命令为 :

  1. [root@dns1 bob]# rrdtool update eth0.rrd 1163863200:1
  2. ERROR: expected 2 data source readings (got 1) from 1163863200:1:…
  3. [root@dns1 bob]#

复制代码

只怕十分?!!

有心人看错误音信,原来是大家给少了二个值。还记得 info
命令吗?那会儿它派上用场了。

  1. [root@dns1 bob]# rrdtool info eth0.rrd
  2. filename = “eth0.rrd”
  3. …..(省略)
  4. last_update = 1163862985
  5. ds[eth0_in].type = “COUNTER”
  6. ds[eth0_out].type = “COUNTER”

复制代码

本来是三个 DS ,怪不得 大切诺基PAJERODtool 会报错了

实例三 :此次应该成功了吗?

  1. [root@dns1 bob]# rrdtool update eth0.rrd 1163863200:1:2
  2. [root@dns1 bob]#

复制代码

那会倒是没有错误音讯,那到底多少是还是不是别插入到 科雷傲RA 中了吗?

对此该难点,有七个艺术,二个是通过 fetch 操作,从 PRADORA
中领到数据;但以此我们下一篇再讲。

再有一种办法正是用 updatev 操作来取代 update 。updatev 的 v 表示 verbose
的意思,现在就来看 updatev 的效应 :

实例四 :updatev 的好处 

作者们实施多少个 update 操作

  1. [root@dns1 bob]# rrdtool last eth0.rrd
  2. 1163864400
  3. [root@dns1 bob]#
  4. [root@dns1 bob]# rrdtool update eth0.rrd 1163864700:3000:4000
  5. [root@dns1 bob]# rrdtool updatev eth0.rrd 1163865000:3300:4600
  6. return_value = 0
  7. [1163865000]RRA[AVERAGE][1]DS[eth0_in] = 1.0000000000e+00
  8. [1163865000]RRA[AVERAGE][1]DS[eth0_out] = 2.0000000000e+00

复制代码

能够见到 return value 是 0,这么些 return value 你能够知道为 shell
编制程序中的 exit status 。updatev用 0 表示成功,-1 表示失利。

而是大家插入的值明明是 3300 和 4600 ,为啥出去的结果是 1和2 呢?

那是因为 eth0_in 和 eth0_out 都以 COUNTE凯雷德 型的 DS,所以 RubiconLX570Dtool 在收到
3300 和 4600 后,会作三个运算,就是

(3300-3000)/ step (300)= 1,(4600-6000)/step(300)=2 ,那正是 1和
2 这三个值的来自了。还记得前边提到的 PDP 吗?

那三个值 (1 和2)正是 PDP 了,而不是 3300 和 4600  。这一点要搞精晓。

实例五 :其它三个 updatev 的例子

  1. [root@dns1 bob]#
  2. [root@dns1 bob]# rrdtool updatev eth0.rrd 1163865300:3300:4600
  3. return_value = 0
  4. [1163865300]RRA[AVERAGE][1]DS[eth0_in] = 0.0000000000e+00
  5. [1163865300]RRA[AVERAGE][1]DS[eth0_out] = 0.0000000000e+00
  6. [root@dns1 bob]#

复制代码

在1163865300 这几个随时大家提交的值和上次同一,所以 eth0_in 和 eth0_out
的 PDP 都为 0        

搞精通了 PDP 的定义,今后大家来看什么是 CDP ,以及 CDP 是怎样总括的

实例六 :通过 updatev 掌握 CF 的概念

  1. [root@dns1 bob]# rrdtool updatev eth0.rrd 1163865600:4000:5000
  2. return_value = 0
  3. [1163865600]RRA[AVERAGE][1]DS[eth0_in] = 2.3333333333e+00
  4. [1163865600]RRA[AVERAGE][1]DS[eth0_out] = 1.3333333333e+00
  5. [1163865600]RRA[AVERAGE][4]DS[eth0_in] = 1.6666666667e+00
  6. [1163865600]RRA[AVERAGE][4]DS[eth0_out] = 1.6666666667e+00
  7. [1163865600]RRA[AVERAGE][24]DS[eth0_in] = NaN
  8. [1163865600]RRA[AVERAGE][24]DS[eth0_out] = NaN
  9. [root@dns1 bob]#

复制代码

这一次的输出和上次又不平等了。这一次 update 操作影响到多少个 OdysseyRA ,看到 []
中的 1,4,24 了啊?它们正是意味分歧的 LANDRA 中各类 CDP 所包罗的 PDP
数量。

1 就是 1个 CDP 包含1 个 PDP,4 就是 一个 CDP 包含4个 PDP(20分钟)、24
就是 一个 CDP 包含24个 PDP(2小时)。

而是为什么没有 288 呢?eth0.rrd 的第6个 ENCORERA 不是明确每2玖十个 PDP
合并为多个 CDP 吗?

因为这些时候还轮不到它出场。1163865600 / 7200 = 161648 ,
也正是说刚好1163865600 是在 7200 的有些周期上(161648)。

但1163865600 / 86400 ≈ 13470.66 ,说明1163865600 还不到 86400 的周期。

务必等到13471* 86400=1163894400 才相会世 [288] 的
CDP,那那些时间戳代表的光阴是何等时候呢?看上边包车型客车 date 命令就理解了 :

  1. [root@dns1 bob]# date -d ‘1970-01-01 1163894400 sec utc’
  2. 日 11月 19 08:00:00 CST 2006
  3. [root@dns1 bob]#
  4. [root@dns1 root]# date -d ‘1970-01-01 1163865600 sec utc’ 
  5. 日 11月 19 00:00:00 CST 2006
  6. [root@dns1 root]#

复制代码

如此不正是刚刚相差1天的时间了啊?你也许会以为很奇怪,为何不是00:00
而是 08:00呢?

还记得create 操作的语法吗?在那之中有三个 –-start
参数吗?不记得了?没关系,那就得用 first 操作来重新找出来,

  1. [root@dns1 bob]# rrdtool first eth0.rrd –rraindex 3
  2. 1100822400
  3. [root@dns1 bob]#
  4. [root@dns1 bob]# date -d ‘1970-01-01 1100822400 sec utc’
  5. 五 11月 19 08:00:00 CST 2004
  6. [root@dns1 bob]#

复制代码

见到了呢?是 二〇〇三 年的 11 月7日晚上8点正,距离 二〇〇七-11-19
刚好是2年,也正是 730 天,因为 eth0.rrd 的第陆个本田UR-VRA 

只保留7三17个记录。各类记录时间上偏离1天。也正是第一个记录是 二零零二/11/19
8:00 ,第贰个记录是 2002/150%0 8:00 ,

其八个记录表示 二〇〇〇/1五成1 8:00 ,依次类推。所以离1163865600
最近的下1个记下是发出在 2005/11/19 8:00 。

故而严峻意义上来说,Sportage帕杰罗Dtool 中的一天并不一定是从 0:00
初步的,但能够保障的正是多个记录之间自然相差86400秒(1天)。

四)自动更新数据库

骨子里那几个都只然则是手工业 update
时索要注意的部分地点,假如是自动更新数据库,时间戳方面就付给 凯雷德帕杰罗Dtool
去处理呢,大家不要担心了。

近来大家早已写好了贰个剧本,未来就用它来更新

  1. [root@dns1 bob]# cat get_eth0_traffic.sh 
  2. #!/bin/bash
    1. # 首先获得 eth0 接口的 ifIndex 
    1. index=$(snmpwalk -IR localhost RFC1213-MIB::ifDescr |grep
      eth0|cut -d ‘=’ -f 1|cut -d ‘.’ -f 2)
    1. # 再通过 snmp 协议获得 ififInOctets 和 ifOutOctets 的值
    1. # 由于在 /etc/snmp.conf 中布局了 defVersion 和 defCommunity
      ,所以 snmpget 命令不用内定那多个参数
    1. eth0_in=$(snmpget -IR -Os localhost ifInOctets.${index}|cut -d
      ‘:’ -f 2|tr -d ‘[:blank:]’)
    1. eth0_out=$(snmpget -IR -Os localhost ifOutOctets.${index}|cut
      -d ‘:’ -f 2 |tr -d ‘[:blank:]’)
    1. echo ${eth0_in}
    1. echo ${eth0_out}
    1. # 须求自身要用这么些数量来更新 eth0.rrd ,注意 update 时的
      timestamp 大家用的是 N         
    1. /usr/local/rrdtool-1.2.14/bin/rrdtool updatev /home/bob/eth0.rrd
      N:${eth0_in}:${eth0_out}
    1. [root@dns1 bob]#

复制代码

五)接下去是怎么样呢?

有了数据,上面该学怎么样了吗?是绘图吗?

不是!^_^!! (估摸有人快疯了啊)

在绘图此前,你有没有想过 汉兰达SportageDtool 在绘图时怎么取多少的啊?

比如说小编想画2钟头内的数码,那么大家有多少个 RRA ,其 resolution 分别是
300,1200,7200,86400 

(还记得什么是 resolution 吗?正是每种 PRADORA 中七个 CDP
相隔的时间)。是从第③个 RubiconRA 取出 7200/300=24 个记录,

如故从第①个 汉兰达RA 取出 7200/1200=6 个记录呢?或许是从第多个 奥迪Q7RA
中取出3个记录就行吗?

那么些标题大家就留待下一篇再攻读啊。那里给我们留几个难题 :

A)        假设 eth0.rrd
在六分钟内收纳不止2个更新,结果会如何?提醒:用 updatev
就能够看出来了

B)        假使过了 eth0.rrd
在6分钟内尚未接收脚本重返的值,是还是不是立时就用 UNKNOWN 作为 PDP 的值?

C)        参考下边包车型地铁例证,搞精晓 heartbeat 的意义

D)        在搞明白 heartbeat 后,再想转手 heartbeat 和 step
之间的关联。
     

 

 

 

 

 

 

 

 

 

 

 

 

从 RubiconLacrosseD 文件中领取数额

**********************************************************************************************************************
注 :该课程参考了如下内容 :
A)官方文档 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
末尾修改 :二零零五/11/17 17:35
**********************************************************************************************************************

一)前言
纳瓦拉CR-VD 是 Round 罗布in Database
的意趣,那么是或不是足以象平日的数据库进行查询操作呢?

答案是能够的。fetch 正是用来做那种工作的工具。当然 fetch 不可能和 select
语句相比较,它只是依据用户钦命的小时,

从适用的 KugaRA 中取出数据,并加以格式化。不过和 MXC60TG
比较,已经好过多了,至少你不用取看该死的 log 文件。

骨子里,fetch 操作实际能够不学,因为 Murano福睿斯Dtool
会自动帮您选好数据。但你怎么着规定 揽胜哈弗Dtool 取的多少便是您想要的呢?

也许说你怎么着验证 汉兰达奥迪Q7Dtool 绘制出来的图是不利的吧?

废话少说,上边开首正文

二)fetch 操作的语法

  1. rrdtool fetch filename CF [–resolution|-r resolution]
    [–start|-s start] [–end|-e end]

复制代码

内部 –start、–end、-r 都是可选的 。汉兰达中华VDtool 暗中同意的 –end 是 now
,–start 是 end-1day ,约等于1天前。

CF 可以是 AVERAGE、MAX、MIN、LAST ,当然不可不建库时有该 CF 类型的 卡宴RA
才足以查,不然会报错。

三)fetch 怎么着取多少

在规定了光阴范围后,途胜CR-VDtool 会从五个 福睿斯RA 中精选特级的百般 索罗德RA
的数据。至于怎样是“最佳”,则从四个地点考虑 :

A)第二是该 EscortRA
的数据要尽只怕的掩盖所请求的年华范围。如何总结贰个 KugaRA
的遮盖时间啊?以 eth0.rrd 的首先个PRADORA 为例,

     有 600 个记录,每种记录相隔300秒,则总的时间覆盖范围是1九千0
秒≈2天,所以一旦 –-start 和 -–end 规定的日子限定
     
     大于2天,则 Tucson哈弗Dtool 不会从该 奥迪Q5RA 中取数据。

B)第③是 resolution
的渴求。依然地点的例子,假若是要画3天的多少,从时间覆盖范围上来讲,第① 、③ 、伍个 PAJERORA 都符合要求。

     那到底挑选分外 HavalRA 的数额吧?借使 fetch 中有钦定 –r 选项,则选拔resolution 等于 –r 钦定的值那多少个 奥迪Q5RA 的多寡。假如没有 
     
     –r 选项,则从第3个适合的 本田CR-VRA 中取数据。

C)fetch 若是不加 –-start、–end、-r ,则暗中认可输出 resolution 最小的那贰其中华VRA 的数码。就像下边包车型客车例子1一律。

四)实际例子

实例一 :默许情状

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE |more
  2.                         eth0_in            eth0_out
    1. 1164467700: 1.1337243905e+01 9.6323712631e-02
  3. 1164468000: 1.7896453039e+01 0.0000000000e+00
  4. 1164468300: 1.8469136234e+01 1.2215723119e+00
  5. 。。。。(中间省略)
  6. 1164553800: 6.9634610564e+01 4.9644415243e+01
  7. 1164554100: nan nan

复制代码

  1. [root@dns1 bob]# date                        (当前光阴)
  2. 日 11月 26 23:11:12 CST 2006
    1. [root@dns1 bob]# date -d ‘壹玖柒零-1-1 1164554100 sec utc’       
              (最终三个笔录的光阴)
  3. 日 11月 26 23:15:00 CST 2006
  4. [root@dns1 bob]#
    1. [root@dns1 bob]# date -d ‘一九六八-1-1 1164467700 sec utc’       
              (第三个记录的年月)
  5. 六 11月 25 23:15:00 CST 2006
  6. [root@dns1 bob]#

复制代码

fetch 输出的率先列是 timestamp ,表示前边的数量是在怎么时直接受的。”:”
后边便是DS的值。fetch 不可能钦定只取那个 DS 的数额,

唯其如此贰回性取出全体 DS 的值。能够观望,eth0.rrd 有四个 DS :eth0_in 和
eth0_out ,每种 DS 的值用 空格进行分隔,一律使用科学记数法的格式。

借使 fetch 不内定 –-start 和 -–end
,则私下认可取从脚下天天算起,往前1天的数额(287个记录)。因为前几天是 23:11
,还不到 23:15,所以最终1个记

录的值是 NaN (Not a Number),也正是 UNKNOWN
的情致。能够看来,五个记录之间的大运间隔是300。

实例二:使用 –start 和 –end 钦定时限

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE –start
    1164467700 –end 1164553800 |more
  2.                         eth0_in            eth0_out
    1. 1164468000: 1.7896453039e+01 0.0000000000e+00
  3. 1164468300: 1.8469136234e+01 1.2215723119e+00
  4. 1164468600: 1.5988336199e+01 1.4417769382e-01
  5. 。。。。。(中间省略很多)
  6. 1164553800: 6.9634610564e+01 4.9644415243e+01
  7. 1164554100: 1.7481962958e+02 2.3086574912e+02
  8. [root@dns1 bob]#

复制代码

可以看到第三个记录和尾声二个记下都比 –-start  和 –-end 晚了300秒。

实例三 :使用 AT风格的时日

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE –start end-1day
    –end 1164553800 |more
  2.                         eth0_in            eth0_out
    1. 1164467700: 1.1337243905e+01 9.6323712631e-02
  3. 1164468000: 1.7896453039e+01 0.0000000000e+00
  4. 。。。。。。。(中间省略很多)
  5. 1164554100: 1.7481962958e+02 2.3086574912e+02
  6. [root@dns1 bob]#

复制代码

只顾 –start 的值是 end-1day ,那正是 AT风格的小时。end 就是 –end
中付出的1164553800 。具体的时限是表示初阶时间从1164553800 往前1天

可以看出,以往先是个记录和实例二比照,提前了300秒。和例第22中学的 –start
一致了。所以能够用 AT风格的岁月的时候依然用 AT 风格的小时比较有利。

能够省去计算的劳动,外人也比较易于看。

实例四 :提取钦定 resolution 的数量

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE –start
    1164467700 –end start+1day -r 1200 |more
  2.                         eth0_in            eth0_out
    1. 1164468000: 1.7899370295e+01 3.8782610300e+00
  3. 1164469200: 2.0828335735e+01 3.4166666667e-01
  4. 1164470400: 1.4581351504e+01 3.5000000000e-02
  5. 。。。。。。(中间省略很多)
  6. 1164554400: 9.4367707174e+01 9.4866775629e+01
  7. [root@dns1 bob]

复制代码

能够观察,未来记录两两之间的光阴间隔变成了1200 了。输出的行数为
(86400/1200)+1=73 (72+1)。

实例五:要是内定3个不存在的 resolution 呢?

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE –start
    1164467700 –end start+1day -r 1000 |more 
  2.                         eth0_in            eth0_out
    1. 1164468000: 1.7899370295e+01 3.8782610300e+00
  3. 1164469200: 2.0828335735e+01 3.4166666667e-01
  4. 。。。。。。(中间省略很多)
  5. 1164554400: 9.4367707174e+01 9.4866775629e+01
  6. [root@dns1 bob]#

复制代码

小编们钦命的 resolution 是 一千 ,但并从未这三个 EscortRA 的 resolution 为
一千,所以 PRADO福特ExplorerDtool 挑选了第四个13分的 resolution ,

也正是 1200 的不胜 牧马人RA 的多寡作为结果输出。注意,普拉多福特ExplorerDtool 只会挑选
resolution 比 –r 钦命的值格外或然更高的 RRA ,不会挑

选比 –r 内定的值小的 RubiconRA 。例如在该例子中,揽胜极光汉兰达Dtool 就不会挑选
resolution=300 的率先个 OdysseyRA 。为何呢?

各位能够协调依据第贰局部“fetch 怎么样提取数额”的四个准则考虑一下

实例六 :再来看1个 –r 的例证

若果自个儿不想内定 –-start 或许 –end ,就想看 resolution 为 1200 呢?

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 1200
  2.                         eth0_in            eth0_out
    1. 1164470400: 1.4581351504e+01 3.5000000000e-02
  3. 1164471600: 1.9312781373e+01 3.5000000000e-02
  4. 。。。。。(中间省略很多)
  5. 1164555600: 8.5249300043e+01 7.0171152327e+01
  6. 1164556800: nan nan
  7. [root@dns1 bob]#

复制代码

哟?为何照旧利用记录的时日距离依然 300 秒呢?大家不是内定了 –r 1200
吗?

非常老实说,那种艺术 9/10 以上的机率是不会中标吧?那应该如何做呢?

实例七 :正确行使 –r 的方法

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 1200 –end
    $((($(date +%s)/1200)*1200)) |more
  2.                         eth0_in            eth0_out
    1. 1164470400: 1.4581351504e+01 3.5000000000e-02
  3. 1164471600: 1.9312781373e+01 3.5000000000e-02
  4. 1164472800: 1.7383358822e+01 3.5000000000e-02
  5. 1164474000: 1.4781054841e+01 3.3225406191e-01
  6. 。。。。。。(中间省略很多)
  7. 1164555600: 8.5249300043e+01 7.0171152327e+01
  8. 1164556800: nan nan
  9. [root@dns1 bob]#

复制代码

明天 resolution 已经变成 1200 的了。同理,假若想看 7200,86400
resolution的 驭胜RA,只要把 end 部分的 (
)中的数字替换为相应的值就能够了。

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 7200 –end
    $((($(date +%s)/7200)*7200))   
    1. [root@dns1 bob]# rrdtool fetch eth0.rrd AVERAGE -r 86400
      –end $((($(date +%s)/86400)*86400))

复制代码

实例八 :关于 fetch 提取数据准则1的测试

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd –start now-3day AVERAGE
    |more
  2.                         eth0_in            eth0_out
    1. 1164298800: nan nan
  3. 1164300000: nan nan
  4. 。。。。。。(中间省略很多)
  5. 1164556800: 6.4118014239e+01 1.8871145267e+01
  6. 1164558000: nan nan
  7. [root@dns1 bob]#

复制代码

和第三个例证区别,本次的 resolution 是 1200
了?为啥吧?因为我们钦定的时日限制是3天,而首先个
帕杰罗RA只保留2天的多少多或多或少,所以 索罗德路虎极光Dtool 不会从

该 奥德赛RA 取数据,那么会从10分 KugaRA 取数据吧?由于大家尚无点名 –r 选项,所以
奥迪Q5PRADODtool 接纳1200 的不得了 安德拉RA 

实例九 :关于 fetch 提取数额准则2的测试

  1. [root@dns1 bob]# rrdtool fetch eth0.rrd –start now-3day AVERAGE
    -r 7200 |more
  2.                         eth0_in            eth0_out
    1. 1164304800: nan nan
  3. 1164312000: nan nan
  4. 1164319200: nan nan
  5. 。。。。。。(中间省略很多)
  6. 1164549600: 5.1899602485e+01 4.3073128067e-01
  7. 1164556800: 7.9766222122e+01 4.0644151093e+01
  8. 1164564000: nan nan
  9. [root@dns1 bob]#

复制代码

现行反革命 resolution 不再是 1200 ,而是钦定的 7200 了。

因为就算 resolution=1200 的 汉兰达RA 就能够满意 –start 和 –end 的急需,

但因为 -r 钦点 resolution=7200 ,所以从第②个 PAJERORA 中取数据

五)总结

从地方大家得以见见,fetch
实际上是分外复杂的1个发令,要是想要输出你所要的数量,就亟须考虑好多少个因素

A)第1是现实性想出口的小运范围?

B)第①是总计好 –-start 和
–end。提议至少给出三个,最好1个都付出

C)第壹是如若有多个奇骏RA符合条件,则使用 –r
钦定具体的 resolution

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

运用Tiguan揽胜极光Dtool
实行绘图(一)

**********************************************************************************************************************
注 :该学科参考了之类内容 :
A)官方文档 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
终极修改 :二零零七/11/17 17:35
**********************************************************************************************************************

一)前言

使用凯雷德大切诺基Dtool
大家最关怀怎么着?当然是什么把数量画出来了。就算日前谈了成都百货上千,但那个都以基础来的。理解好了,能够让你在绘图时特别百发百中。

当然还有 LANDPN
(反向波兰(Poland)表明式)一节的,但考虑一下,觉得依然放到前边,先从着力的绘图讲起。

这一节的剧情尽管很多,但大旨都以实验性的始末,只要多试一回就足以了。

贰 、graph 操作的语法

  1. rrdtool graph filename [option …] 
  2.    [data definition …]
  3.    [data calculation …]        
  4.    [variable definition …]
  5.    [graph element …]
  6.    [print element …]

复制代码

里头的 data definiton、variable definition 、data
calculation、分别是下面的格式

  1. DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
  2. VDEF:vname=RPN expression
  3. CDEF:vname=RPN expression

复制代码

里面 filename 正是您想要生成的图形文件的名称,暗中认可是 png
。你能够经过甄选修改图片的种类,能够有 PNG、SVG、EPS、PDF二种。

A)DEF 是 Definition
(定义)的情致。定义什么啊?你要绘制,总要有数据源吧?DEF 正是告诉
哈弗帕杰罗Dtool 从10分 陆风X8瑞虎D 中取出钦赐

    DS(eth0_in、eth0_out)的某些项指标计算值(还是能够内定resolution、start、end),并把这一体放入到三个变量 <vname>中 。
    
    你大概会倍感意外,为啥还有八个 CF 字段?因为 帕杰罗RA 有多样  CF
类型,某些 CRUISERRA 大概用来保存平均值、某些 福特ExplorerRA 或者用于总计最大值、
    
    最小值等等。所以您不能区别时钦点使用什么 CF 类型的 CRUISERRA的数额。至于
:start 和 :end 、:reduce 则用得相比较少,最常用的正是 :step 了,
    
    它能够让您控制 KugaOdysseyDtool 从那几个 冠道RA 中取数据。

B)VDEF 是 Variable Definition (变量定义)的意思。定义什么啊?记得 M陆风X8TG
在图片的上边有多个叫做 Legend 的一部分吗?

    那里呈现了一个也许1个 DS (M福特ExplorerTG 没有 DS 一说,那里是借用 奥迪Q7瑞鹰Dtool
的)的 “最大值”、“平均值”、“当前值”。那个值是什么样
    
    计算的吗?
    
    逍客LANDDtool 中用 VDEF 来定义。这一个变量专门存放某些 DS 某连串型的值,例如
eth0_in 的最大值、eht0_out 的当下值等。当您需求象
    
     MQashqaiTG  一样输出数字报表(Legend) 时,就足以在 GP宝马X3INT 子句(sub
clause)中调用它。
   
   同样它也急需用五个变量来存放数值。要留意的是,旧版 的 翼虎SportageDtool
中是用其它一种格式来达到平等的指标。新版的 汉兰达本田UR-VDtool 则援引应用
   
    VDEF   语句。但在应用过程中,却发现 VDEF 的利用反而导致了干扰。
例如您有5个 DS 要画,各种 DS 你都想出口最大值、最小值、平均值
    
    、当前值。  即使利用 VDEF ,则须要 4 * 5 = 20 个 VDEF
语句,那会导致巨大的麻烦。具体育赛事例能够看第7一节“数字报表”部分。
   
C)CDEF 是 Calculation Define 的意思。使用过MPRADOTG 的都会体会到一点,M纳瓦拉TG
的乘除能力实在太差了。例如你有多少个 Target ,

      一个是 eth0_in , 一个是
eth0_out,假若要把它们相加起来,再除以8,得出 bytes
为单位的值,怎么着总括呢?或许说你只想看
      
      eth0_in Chinese Football Association Super League越 10Mb/s 的这部分, 其他的不拥戴,又怎么样兑现啊?因为
MHavalTG 无法对它从 log 取出来的数码举行改动,只好原
      
      原本本的表现,所以很难满意大家的供给。而使用 CDEF ,
这一体都得以很简单的兑现。CDEF 援助广大数学生运动算,甚至还协理简
      
      单的逻辑运算 if-then-else
,能够化解近期提到的第二个难点:怎么着只绘制你所关注的数码。可是那全部都需求熟习 本田CR-VPN 的语法,
      
      所以大家放手下一节介绍,这一节就介绍如何把 ENCORE奥迪Q5Dtool
中的数据以图表的艺术体现出来。
      
      
三)选项分类

本有的大家依据法定文书档案的不二法门,把挑选分成几大类,分为  :

A)Time range
: 用于决定图表的X轴展现的初阶/截至时间,也包括从KugaRA中领取钦赐时间的多寡。

B)Labels :用于控制 X/Y 轴的验证文字。

C)Size :用于控制图片的轻重缓急。

D)Limits :用于控制 Y 轴的上下限。

E)Grid :用于控制 X/Y 轴的刻度怎么样体现。

F)Miscellaneous :别的选拔。例如呈现汉语、水印效果等等。

G)Report :数字报表

内需证实的是,本篇当中并不是列出了有着选项的用法,只是列出较为常用的选项,假若想查看全体选项的的用法,能够到官方站点下载文书档案,

那里就不一一列出了,望各位见谅。

四)时间范围控制(Time Range)

  1. [-s|–start time] [-e|–end time] [-S|–step seconds]

复制代码

既是要绘制,就应有有一个起初/截止的时间。Graph 操作中有 –s ,-e
选项。那八个挑选即能够用于控制图表的 X 轴显示的日子范围,也足以用

于决定 汉兰达凯雷德Dtool 从 奥迪Q7RA 中提取对应时间的数码。假如没有点名 –-end ,暗许为
now;假使没有点名 –-start,则暗中同意为1天前。假使两岸都没有

点名,则图表暗中认可显示从此时此刻算起1天内的。数
回头看一下 DEF 中,也有 :start ,:end , :step ,那个和
–-start、–end、–step 之间有如何关系呢?

让大家先看 :step 和 –step之间的关联是怎么着的。

上边以 eth0.rrrd 为例,即便要绘制的大运限定 range 等于 end -start[

A)即使 0 <  ragne < 1柒仟0 (第二个 索罗德RA 的时间覆盖范围)
,则暗中认可从第②个汉兰达RA中取数据 :

     假如 DEF 中提交的 :step > 300 ,例如 一千 ,则从 resolution=
一千 的或许第②个当先 一千 的CR-VRA 中挑选数据,由于 eth0.rrd 中绝非
    
                                                     resolution = 一千的 科雷傲RA,则 Murano奥德赛Dtool 会从 resolution = 1200 的第三 福睿斯RA 中取数据。

     假设 DEF 中提交的 :step <= 300 ,例如 200 ,则 奇骏奥德赛Dtool
会忽略该设定,照旧从第①个 翼虎RA 中取数据。

B)假使 1九千0 < range <
7贰仟0  ,由于首个QashqaiRA只能保留2天的多寡,所以暗中认可从第3个CR-VRA中取数据

     借使 DEF 中提交的 :step > 1200 ,例如 1800,则 纳瓦拉纳瓦拉Dtool 会从
resolution = 7200 的第贰 奥迪Q5RA 中取数据

     假若 DEF 中给出 :step<= 1200,例如 300 ,则 LAND陆风X8Dtool
会忽略,照旧从第③个 CR-VRA 中取数据

C)假使 720000 < range <  43两千0 ,则私下认可从第7个 TucsonRA 中取数据

     假使 DEF 中提交的 :step > 7200 ,例如 一千0 ,则从第⑤个
RRA中取多少

     借使 DEF 中付出的 :step <= 7200 , 例如 1200
,则忽略该值,并依旧从第一 个 智跑RA 中取数据

D)假如 43三千0 < range < 63073000 ,则暗中认可从第伍个 本田CR-VRA 中取数据

     假设 DEF 中付出的 :step > 86400 ,则作为未知

     假使 DEF 中提交的 :step <=86400 ,则从第④个 CRUISERRA 中取数据

E)-S 选项能够直接决定 福特ExplorerPRADODtool 怎样挑选 PAJERORA 。

    例如 -S 1200 ,固然DEF 中不加 :setp ,则 冠道宝马X5Dtool 会从第三个 卡宴RA
中取数据,就算 rang < 1七千0 

    假使 -S 和 :step 同时出现,则 :step 优先。

F)DEF 中的 :start 和 :end 能够覆盖 –-start 和 –-end 的值。

     私下认可情形下,假诺 DEF 中不加 :start 和 :end ,则极度 –-start 和
–end

    假若 DEF 中定义了 :start 和 :end ,则以 :start 和 :end 为准。

实例1 :使用 –-start 钦定 X 轴的原初时间

  1. [root@dns1 bob]# rrdtool graph 1.png \        
  2. > –start now-120000 \        # 表示伊始时间是当下时刻往前
    1两千0 秒,约等于 33 个钟头左右
  3. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \         # 从eth0.rrd
    中取出 eth0_in 的数据,CF 类型为 AVERAGE
  4. > AREA:value1#ff0000        # 用“方块”的样式来绘制 value1
    ,注意那里是用 value1 ,不是用 eth0_in
  5. 481×154                        # 假若 讴歌MDX瑞鹰Dtool
    有绘图方面包车型大巴言语,则那里呈现图片大小,否则为 0x0。
  6. [root@dns1 bob]#

复制代码

图片 12

能够见见 X 轴的文字某个是乱码,但是没什么,你能够一时已用 env LANG=C
rrdtool xxxx 来消除该难题,恐怕在前边用

–n 来设定 奥迪Q5KoleosDtool 使用汉语字体,就不会油但是生那样的状态了

实例2 :使用 :step 从第一个汉兰达RA中取多少

  1. [root@dns1 bob]# rrdtool graph 2.png \
  2. > –start now-120000 \
  3. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:step=1000 \        #
    :step 指定 resolution=1000 
  4. > AREA:value1#ff0000
  5. 481×154
  6. [root@dns1 bob]#

复制代码

此地是 :step=一千,但 汉兰达RAV4Dtool 会取 :step=1200 的 第一个 安德拉RA
的数码来绘图,可以和地点的 1.png 相比,发现相比坦荡。

图片 13

实例3 :使用 –S 从第3个OdysseyRA中取多少

  1. [root@dns1 bob]# rrdtool graph 4.png 
  2. > -S 1200 \                # 使用 –S 控制 Rubicon哈弗Dtool 从
    resolution=1200 的 奇骏RA 中取数据
  3. > –start now-120000 \
  4. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  5. > AREA:value1#ff0000        
  6. 481×154
  7. [root@dns1 bob]# 

复制代码

图片 14 

能够观望和地点的图一律,表达 LacrosseHighlanderDtool 的确依照 -S 的安装从第3个奥迪Q3RA
中取数据了

使用 –S 能够对 DEF 中具备的 DS 都选取同一的 resolution,等于在各个DEF后都增加 :step=<value> ,value 是 –S 的值

实例4 :同时利用 –S 和 :step 

  1. [root@dns1 bob]# rrdtool graph 5.png 
  2. > -S 1200 \                                # -S 指定
    resolution=1200
  3. > –start now-120000 \
  4. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:step=300 \        #
    :step 指定 resolution=300
  5. > AREA:value1#ff0000     
  6. 481×154
  7. [root@dns1 bob]#

复制代码

图片 15

能够看出 5.png 和 1.png 是同一的,也便是说 –S 1200 并没有起效果,而是
:step=300 起成效了

实例5 :使用 :start 和 :end 只显示内定时间内的数码

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > –start now-1h \                        # X
    轴呈现二个钟头的长短
  3. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:start=now-600:end=now-300
    \        # 但只取10分钟前到4分钟前的那有的
  4. > AREA:value1#00ff00:in  
  5. 475×168
  6. [root@dns1 bob]#

复制代码

图片 16

假定大家不加 :start 和 :end ,则效果如下 :

图片 17 

大家居然足以让八个指标出示不一致的岁月,例如 

实例6 :让两个对象出示不一样时间段的多少

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > –start now-2h \                # 规定时间为2钟头内
  3. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=end-1h \   
        # 规定时间为1时辰内                
  4. > DEF:value2=eth0.rrd:eth0_out:AVERAGE \        # 没有点名
    :start 和 :end,暗中同意和 –-start 一样也是2时辰
  5. > AREA:value1#00ff00:in \
  6. > LINE2:value2#ff0000:out:STACK 
  7. 475×168
  8. [root@dns1 bob]#

复制代码

图片 18

实例7 :把一段时间分为几段分别展现 :

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=end-1h \   
        # 当前1小时内
  3. > DEF:value2=eth0.rrd:eth0_in:AVERAGE:end=now-1h:start=now-2h
    \        # 2小时前
  4. > DEF:value3=eth0.rrd:eth0_in:AVERAGE:end=now-2h:start=now-3h
    \        # 3小时前
  5. > LINE1:value1#00ff00:”1 hours ago” \
  6. > LINE2:value2#ff0000:”2 hours ago” \
  7. > LINE3:value3#000000:”3 hours ago”  
  8. 475×168
  9. [root@dns1 bob]

复制代码

图片 19

我们把三个钟头内的数目用三种不相同粗细、区别颜色的曲线画了出来。

观看了吗,out部分(紫藤色)显示了一个钟头内的流量,而in部分(灰湖绿)则只展现了三个钟头内的一些

在此处要提一点,尽管大家钦定了 –-start 只怕 –-end ,或许 :start ,
:end,但并不代表曲线就肯定会从钦点的年华点起来和得了。

比如说大家地点点名了 :start=now-600:end=now-300
,也便是只显示肆分钟的多少。但图表出来的机能却是10(10:05-10:15)分钟

的数额,这是因为我们选取的岁月个中“不慎”横垮了四个周期(10:05-10:10,10:10-10:15),所以
Tiggo福特ExplorerDtool 会把它们整个画出来,而

不是只画在那之中的四分钟。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

动用OdysseySportageDtool
进行绘图_(二)

**********************************************************************************************************************
注 :该学科参考了之类内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最后修改 :二零零五/11/17 17:35
**********************************************************************************************************************

五)表达文字(Label)

  1. [-t|–title string] [-v|–vertical-label string]

复制代码

-t 是用来图表上方的标题,-v 是用于 Y 轴的求证文字

实例1 :给图表扩展标题

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > –start now-183600 \                # 从近日起先往前55个钟头
  3. > -t “51 hours ago” -v “Traffic” \        # 标题是 “51 hours
    ago”,Y 轴的认证文字是 “Traffic”
  4. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  5. > DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  6. > LINE1:value1#0000ff:in \        # 注释
    :以3个像素宽的曲线画出 value1,颜色是中黄,图例的印证文字是“in”
  7. > LINE2:value2#ff0000:out        # 注释 :以二个像素宽的曲线画出
    value2,颜色是新民主主义革命,图例的认证文字是 “out”
  8. 497×179
  9. [root@dns1 bob]#

复制代码

图片 20

近期大家用的是 LINE 的办法来绘图。LINE 可以有3种,分别是
LINE1|2|3,也正是线条的粗细。还有一种是 STACK 格局上面再介绍。

能够看看流入的流量比流出的流量稍大,那样看的话,out
流量比较难看,是还是不是能够有别的方法吗?奥迪Q3LX570Dtool 还提供了

此外一种格式,正是 STACK
。意思正是在前1个对象的底蕴(把前3个对象的值当成 X
轴)上绘制,而不是从 X 轴早先。

实例2 :使用 STACK 格局绘图

  1. [root@dns1 bob]# rrdtool graph 3.png \
  2. > –start now-120000 \
  3. > -t “33 hours ago” \
  4. > -v “Traffic” \
  5. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  6. > DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  7. > AREA:value1#00ff00:in \
  8. > LINE:value2#ff0000:out:STACK                # 注意最终的
    “STACK” ,表示在 value1 的基础上制图
  9. 497×179
  10. [root@dns1 bob]#

复制代码

图片 21

那是不曾利用 STACK 方式绘图的效能 :

图片 22

能够看得出上边使用 STACK 格局的相比较明晰,但要注意,选用 STACK
格局后,在读取 out 流量时,Y 轴的刻度不再是 out 的值,

应该用刻度值减去 in 的值,才是 out 真正的值。那点比较麻烦。需求般配
GP昂科威INT 语句才能达到规定的标准一定的机能。

六)图表大小(Size)

  1. [-w|–width pixels] [-h|–height pixels]

复制代码

此处说图表大小而不是图片大小,是因为 –w ,-h 控制的是 X/Y
轴共同围起来的那某个分寸,而不是全体图片的深浅,那一点在前面就足以见到了。

暗中同意的图形大小是 400 (长)x 100 (高),但一般会回来497×179
如此的数字,这几个才是图表的轻重。

Odyssey奥迪Q5Dtool 比 M奇骏TG 好的多个地点就是 M凯雷德TG 一放大图片,就会变得模糊。科雷傲中华VDtool
则不会。

在合法文书档案中,-w 就像是是三个相比灵活的参数,我们看上边的讲述 :

First it makes sure that the RRA covers as much of the graphing time
frame as possible. Second it looks at the resolution of the

RRA compared to the resolution of the graph. It tries to find one
which has the same or higher better resolution. With the “-r” 

option you can force RRDtool to assume a different resolution than the
one calculated from the pixel width of the graph.

By default, rrdtool graph calculates the width of one pixel in the
time domain and tries to get data from an RRA with that resolution. 

With the step option you can alter this behaviour. If you want rrdtool
graph to get data at a one-hour resolution from the RRD, set 

step to 3’600. Note: a step smaller than one pixel will silently be
ignored

那两段话分别是从rrd-beginners  和 rrd_graph 文书档案中摘出来的。就如看起来
–w 会影响到图片的 resolution ,进一步影响到 普拉多奥德赛Dtool 怎么着选用 哈弗RA ,

但经超过实际验却发现并非如此。

笔者对那两段话中的图表的 resolution
一词不知如何知道和测算,希望好心的心上人能够辅导一下 ^_^ .

实例1 :使用 –w 设定图表大小为 300 像素

  1. [root@dns1 bob]# rrdtool graph 3.png 
  2. > -w 300 \                                # 设定 size 为 300
    pixel
  3. > –start now-120000 \
  4. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  5. > AREA:value1#ff0000           
  6. 381×154
  7. [root@dns1 bob]#

复制代码

图片 23

能够看出图片是否变小了啊?而且全数图片的分寸也变小了。

设若用前边的话来演绎,由于 1两千0/300(-w的值)= 400 > 300
(step),由于尚未 resolution=400 的 中华VRA,

所以理应运用 resolution=7200 的第三个 福睿斯RA 的数量来绘图,但实际不是。

图片 24

上边那么些才是 300 pixel 宽,resolution=7200 的功力

为此自身觉得 –w 和 –h 并无法影响 凯雷德PRADODtool 怎么样抉择 福特ExplorerRA
,只好起到缩短放大的效益。

BTW:当您绘制的光阴限定较大时,能够使用 –w
增大图表大小,那样看起来比较“舒服“

图片 25

七) Y 轴上下限(Limits)

  1. [-u|–upper-limit value] [-l|–lower-limit value] [-r|–rigid]

复制代码

私下认可景况下,奥迪Q5LANDDtool 会和 M牧马人TG 一样自动调整 Y
轴的数字,来协作当前的数值大小。借使想禁止该特性,能够透过 –upper-limit

-–lower-limit 来做限定,表示Y轴突显的值从多少到稍微。即使没有点名 –rigid
,则在图片的光景边界处如故会有一对延伸,但要是内定了
  
-–rigid ,则严酷依照 –-upper-limit 和 –-lower-limit 绘制。

在行使 –lower-limit 时要小心,假如数额中有负数,假若 -–lower-limit 为
0,则负数部分是展示不出来的。

实例1 :使用 –-upper-limit 和 –-lower-limit 限制 Y 轴的光景限

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > –start now-120000 \
  3. > -v “Traffic” -t “33 Hours ago” \
  4. > –lower-limit -5000 \                # 限制Y轴下限为 -陆仟 
  5. > –upper-limit 10000 \                # 上限为 10000
  6. > –rigid \                                         #
    严峻根据地点的规定来画
  7. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  8. > DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  9. > AREA:value1#00ff00:in \
  10. > LINE1:value2#ff0000:out:STACK
  11. 497×179
  12. [root@dns1 bob]#

复制代码

图片 26

八) X/Y 轴刻度(Grid)

  1. [-x|–x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM] 
  2. [-x|–x-grid none]
  3. [-y|–y-grid grid step:label factor] 
  4. [-y|–y-grid none]
  5. [-Y|–alt-y-grid]
  6. [-X|–units-exponent value]

复制代码

库罗德PAJERODtool 中装置 X 轴的刻度相比较复杂,借使没有需求,能够付出 EnclaveCR-VDtool
自动去处理。

比如说地点的图,33 小时的境况下,X
轴唯有三个值,显得很欠缺。那时候有二种艺术 :

A)一是利用 –w 增大图表的拉长率,那样 福特Explorer宝马X3Dtool 会自动加多局地刻度上去。

图片 27

而是必要追加多大才会有上边的那种效率不得而知,所以那种艺术不是很方便。

B)二是由此地点的选项团结安装 X/Y
轴的刻度怎么样呈现。首先看上海体育地方,在笔直的线中,水草绿的线称为 Major
Grid(首要网格线),

    血牙红的线称为 Base Grid (次要网格线)(那里是借用 EXCEL 中的概念
^_^ )。 X 轴上面包车型客车时刻文字成为 Label 。了然那
    
    三样东西后,就能够动手调整刻度了。
    
C)有三种方法能够高速去掉 X/Y 轴的刻度,就是 –-x-grid none 和 –-y-grid
none

D)GTM:GST :控制次要格网线的地点。GTM 是一个时光单位,能够是
SECOND、MINUTE、HOU索罗德、DAY 、WEEK、MONTH、YEA中华V 。

     GST
则是二个数字,控制每隔多久放置一根次要格线。例如大家要画二个1天的图片,决定每十四分钟一根次要网格线,则格式为
MINUTE:15
     
E)MTM:MST :控制重点网格线的职位。MTM 同样是时刻单位,MST
是3个数字。接上头的例子,决定三个时辰1根主要网格线。则格式为 HOU昂Cora:1 

     LTM:LST :控制每隔多长期输出3个label 。决定为1时辰一个 label
。则格式为 HOU奥迪Q7:1

G)LP哈弗:LFM :LTM:LST 只是控制了 label
的来得地点了,没有点名要来得怎么内容。LP库罗德 指的是怎样放置 label 。如果LP路虎极光为0,则数字对齐格线

   
(适用于显示时间)。假若不为0,则会做一些偏移(适用于展现星期几、月份等)。至于LFM
则须求熟谙一下 date 命令的参数,常用的有 %a(星期几)、
    
   
%b(月份)、%d(天)、%H(小时)、%M(分)、%Y(年)。大家决定显示小时和分,所以用
%H%M

H)综合起来,X 轴的刻度定义就是 –-x-grid
MINUTE:15:HOU卡宴:1:HOU奇骏:1:0:’%H:%M’。最好把 %H:%M 括起来

     提议 MST是 GST 的2-6倍,MST 和 LST
相同。那样画出来的图相比较美貌一些

图片 28    

那肯定正是图片太小了,不够显示。把地点的 :%M
去掉就足以了,只呈现时辰,不呈现分钟

图片 29    

若果把图片放大学一年级点就更好了 (-w 800)

图片 30    

故此在装置 X
轴的刻度时,要记得不要呈现太多东西,否则须要增大图片的深浅

图片 31    

I)Y 轴刻度的安装又不相同等了

   grid step :用于控制Y轴每隔多少显得一根水平线

   label factor :默许为1,也正是在每根水平线的莫斯中国科学技术大学学那里显示3个值。

   例如下边便是一个例证 (每隔800来得一根水平线)

图片 32    

J)Y 轴还有贰个很方便的选项正是 –Y ,它能够最大限度的优化 Y
轴的刻度,提出每回绘图都添加去。

K)Y 轴其余3个一蹴而就的选项正是 –X (固然摘取名是 -X ,但的确是用来设置 Y
轴刻度值的)。在地点的图咱们见到 Murano奥迪Q5Dtool 自动对 Y 轴的值举行调整,

     以 k 为单位出示。但假使你不想以 k
显示,而是想稳定以某些单位来显示(M,b)该怎么办呢?这即将用到 –X
选项了。-X 前边跟3个参数,参数值
     
     范围是 -1⑧ 、-1⑤ 、-1二 、-九 、-6 、-③ 、0、③ 、六 、玖 、1二 、1五 、18 。0
表示以原值显示,3 表示数值除以一千,也正是以 k 为单位显示,6 正是以
     
     M 突显,9 就是以 G 展现。尽管你提交1或许2,则 SportageMuranoDtool
也得以承受,但会被“静悄悄”的改为0。下边就是四个以原值(-X
0)展现的事例

图片 33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

利用翼虎WranglerDtool 实行绘图_(三)

**********************************************************************************************************************
注 :该学科参考了之类内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最后修改 :二〇〇五/11/17 17:35
**********************************************************************************************************************

九、 其他(Miscellaneous)

  1. [-n|–font FONTTAG:size:[font]]
  2. [-g|–no-legend]
  3. [-b|–base value]

复制代码

A)-n | –font 是三个诙谐的选项。CU 的 abel 兄曾提供了3个国语 patch
能够兑现展现汉语的效应。但对此本身那等对 C
一无所知的实物,就不驾驭怎么用了。

    不过好在 –n
选项能够兑现那个目标,只须要中文字体的文本就能够化解了。

     首先你要找出二个国语的书体文件。例如/usr/share/fonts/zh_CN/TrueType/gkai00mp.ttf
。你也得以把 Windows 上的 C:\Windows\Fonts 上边包车型客车中
     
     文字体拷贝到 Linux 上,例如home/bob/Fonts/simhei.ttf
(黑体)效果不错,别的的则不太行,会并发模糊恐怕重叠的动静。建议就选择大篆算了。

     其次是规定字体大小。汉语字体不宜小于 7
,不然看不清楚

     明确你要修改的是图形的百般部分。有
DEFAULT(全体),TITLE
(标题)、AXIS(坐标轴字体)、UNIT(Y轴单位字体)、LEGEND(图例字体)三种。

上边就以实际的事例来评释什么体现中文 :

实例1 :使用 –n 让 TiggoLacrosseDtool 展现中文

  1. [root@dns1 bob]# rrdtool graph 4.png \
  2. > -n TITLE:10:’/home/bob/Fonts/simhei.ttf’ \                #
    修改题指标书体为宋体
  3. > -n AXIS:10:’/home/bob/Fonts/simhei.ttf’ \                #
    修改 X 轴的书体为草书
  4. > –start now-240000 \                # 大于3天的数额
  5. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  6. > AREA:value1#00ff00:in -t “33小时前的 eth0 接口流量” -v
    “traffic”
  7. > -Y –w 600        # 图表宽度为 600 pixel
  8. 503×190
  9. [root@dns1 bob]#

复制代码

那正是最终的遵守了,能够见到标题和 X 轴都以华语的,但 Y
轴的书体依然私下认可的书体。

图片 34

B)-g |–no-legend 用于废除图表下方的图例,可是不建议这样做。

C)-b|–base value 在 M索罗德TG 和 奇骏途胜Dtool 中,私下认可 1k=1000 ,使用 –b
能够拓展调整,例如 –b 1024

十)数字报表

看望上边的图片,是否认为还少了些什么啊?对了,正是唯有图,没有文字表达。如何象
M景逸SUVTG 那样能够呈现“最大值”、“平均值”、“当前值”呢?

那就必要用到 G奥迪Q5PINT 和 COMMENT 语句了。
GP卡宴INT
正是在图纸的下方(照旧属于图片的里边)输出最大值、最小值、平均值那么些东东;COMMENT
正是用来输出一些字符串,例如报表的表头。

A)GPCR-VINT的格式是GP科雷傲INT:vname:CF:format 。由于 format
部分太多参数了,我那里就用最常用的卓绝 : %x.ylf 。

B)COMMENT 的格式是COMMENT:text 。要留意 COMMENT
默许是不出口换行的,假使要出口换行,必须用 “\n” 。

上边就以3个实例来注脚什么打字与印刷表格 :
绘制1钟头前的流量图,并打字与印刷数字报表(参照 abel 兄给出的例证)

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > –start now-1h -w 600 -n DEFAULT:8 \
  3. > DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  4. > DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  5. > COMMENT:” \n” \
  6. > COMMENT:”       
     当前值————–平均值————–最大值————–最小值————–\n”
                               > COMMENT:” \n” 
  7. > AREA:value1#00FF00:”流入” \
  8. > GPRINT:value1:LAST:’%13.2lf’  \
  9. > GPRINT:value1:AVERAGE:%13.2lf  \
  10. > GPRINT:value1:MAX:%13.2lf  \
  11. > GPRINT:value1:MIN:%13.2lf  \
  12. > COMMENT:” \n” \
  13. > LINE2:value2#ff0000:”流出”:STACK \        # 注意那里是 STACK
    形式
  14. > GPRINT:value2:LAST:%13.2lf  \
  15. > GPRINT:value2:AVERAGE:%13.2lf  \
  16. > GPRINT:value2:MAX:%13.2lf  \
  17. > GPRINT:value2:MIN:%13.2lf  \
  18. > COMMENT:” \n” \
  19. > COMMENT:” \n” \
  20. > COMMENT:”LAST UPDATED \:$(date ‘+%Y-%m-%d %H\:%M’)\n” -Y
  21. 687×270
  22. [root@dns1 bob]#

复制代码

图片 35

留意相比较 Y 轴刻度值和“流出”部分的值的关系, Y
轴刻度值 —“流入” =“流出”

出于岁月精力有限,关于对齐方面包车型地铁办事就大家温馨考试吧.若是绘制的指标数量不是累累,能够用横向报表,不要用那种垂直的格式,

那种格式的好处是便于相比较各种对象的值。可是小编得以毫无疑问,怎么样让那一个数字和方面包车型地铁表头对齐是四个会令你无比抓狂的做事的!!!

地方的  COMMENT 一是出口表头,二是出口空行。注意,要用 COMMENT
输出空行,必须用 COMMENT:’ \n’ 。

注意到 ‘\’ 后面包车型地铁空格吗?那个是不得以漏的,否则就不会有空行的效益了。

十一)特殊效果

  1. VRULE:time#color[:legend]
  2. HRULE:value#color[:legend]
  3. SHIFT:vname:offset

复制代码

A)VRULE/HRULE
能够用来在图片上边绘制垂直线/水平线。例如我们想要在图纸上面标明最大值,能够用
HRULE 在 Y 轴的钦命刻度值

    那里绘制一根水平线,例如 HRUE:100000#ff0000:”最大值” 在 100k
处画一根水平线,并提议那是最大值。

图片 36

SHIFT 能够用来运动多少,例如 abel 兄曾经在 “[教學]中的教學(二) 昂科威中华VDTOOL
1.2 更新項目”中涉嫌过1个标题,

正是“xx同比”怎么着画?上面就以什么样比较3天的数量。

实例1 :绘制再而三3天的数额

  1. [root@dns1 bob]# rrdtool graph 1.png \
  2. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=now-1d \   
                # 1天前
  3. > DEF:value2=eth0.rrd:eth0_in:AVERAGE:end=now-1d:start=now-2d
    \                # 2天前
  4. > DEF:value3=eth0.rrd:eth0_in:AVERAGE:end=now-2d:start=now-3d
    \                # 3天前
  5. > LINE1:value1#00ff00:”1 day ago” \
  6. > LINE1:value2#ff0000:”2 days ago” \
  7. > LINE1:value3#000000:”3 days aog” \
  8. > -Y
  9. 475×168
  10. You have new mail in /var/spool/mail/root
  11. [root@dns1 bob]#

复制代码

图片 37

怎么唯有1天前的数目吧?因为大家从未点名 –-start ,RubiconSportageDtool
暗中同意只绘制1天前的数额。由于那里覆盖了3天,

故此大家能够把 –-start 定义为 –-start now-3d 就足以了。

图片 38

前日是还是不是3天的多寡都画出来了呢?但是出于它们是横向排列的,所以要相比较同个小时段的并不易于,能或不可能把它们

按“垂直”的主意排列呢?那即将用到 SHIFT 了!

  1. [root@dns1 bob]# rrdtool graph 3.png \
  2. > DEF:value1=eth0.rrd:eth0_in:AVERAGE:end=now:start=now-1d \   
                # 1天前
  3. > DEF:value2=eth0.rrd:eth0_in:AVERAGE:end=now-1d:start=now-2d
    \                # 2天前
  4. > DEF:value3=eth0.rrd:eth0_in:AVERAGE:end=now-2d:start=now-3d
    \                # 3天前
  5. > LINE1:value1#00ff00:”1 day ago”  \                           
                                        
  6. > SHIFT:value2:86400 LINE1:value2#ff0000:”2 days ago” \       
                    # 把曲线向右移动1天
  7. > SHIFT:value3:172800 LINE1:value3#000000:”3 days ago” \       
                    # 把曲线向右移动2天
  8. > -Y –w 600
  9. 475×168

复制代码

[root@dns1 bob]#

图片 39

和上面的图样比较,是或不是足以窥见 X
轴不一样了,不再是3天,而是1天多1点了。而且3根曲线重叠在一齐了,能够看到在那三小刑,

唯有1天前的23点左右有某个流量之外,别的绝超越二分一都并未流量。

那正是 SHIFT 的效果了,能够把曲线/方块沿着 X
轴移动(左右都足以),大家完结相比较同期数据的目标。是否很好用吗?

十二)总结

这一次的始末可真够多的,足足写了19页。可是工具性的事物便是如此 :别看内容
N多,你只要入手画出一个图之后,就会认为一

切都很简短了。今后若是套用就能够了。关键是什么更好的把您想要的数量以稳当的发给你是表现出来。

上面这个内容都以笔者透超过实际验得出的,由于具体的环境差异,恐怕会跟大家的不比,也许出现谬误。作者期望大家不用客气,有荒唐

的地方就指正,有哪些好的发现也建议来,一起完善 Lacrosse本田UR-VDtool
的文书档案。这样就足以让越来越多的人了然、精通 Haval奇骏Dtool 了 。   

(^_^)!

 

 

 

 

 

 

 

 

 

 

 

 

 

CRUISERCR-VDtool简体普通话教程_9:如何利用QashqaiPN
怎么着行使宝马X3PN

**********************************************************************************************************************
注 :该科目参考了之类内容 :
A)官方文书档案 :http://oss.oetiker.ch/rrdtool/doc/index.en.html
B)abel 兄的大作
http://bbs.chinaunix.net/viewthread.php?tid=552224&highlight=rrdtool
               
http://bbs.chinaunix.net/viewthread.php?tid=552220&highlight=rrdtool
作者 :ailms <ailms{@}263{dot}net>
版本 :v1
最终修改 :二零零六/11/17 17:35
**********************************************************************************************************************

一)前言

智跑PN 代表逆波兰(Poland)式(Reverse Polish Notation)。逆波兰(Poland)式最早于1919年由Jan
Lukasiewicz 发明,最神奇的地点是用它来代表数学表明式,

一齐不要求括号。而且 福特ExplorerPN
不像日常的数学表明式那样,操作符在操作数的中等,而是在操作数的左边。例如
3+2 用 翼虎PN 表示正是 3,2,+ ;

3+(2X5) 用 福睿斯PN 表示正是 3,2,5,x,+
最终运算的片段(加法部分)的操作符放在最终,乘号放在前方,表示先实施 2 x
5 ,在把结果和3相加。

在 MuranoWranglerDtool 中,福睿斯PN 还足以用来表示 if-then-else
关系。这一点在绘图中很有用。例如你要看 eth0 接口在一天在那之中流量 ≥ 10Mb/s
的一些,“隐藏”

任何低于 10Mb/s 的局地,则足以用到那一个效果。

二)操作符

什么是 RPN

A)LANDPN 是 Reverse Polish Notation
的缩写,是用于表示算术运算和逻辑运算的一种语法格式。

B)陆风X8LacrosseDtool 的 CDEF 语句中就时不时采用 RPN 来对 DEF
取出来的多寡进行演算。

C)景逸SUVPN
的天性是操作数和操作符出现的依次和平运动算的次第②致,那样就不供给接纳括号了

D)TiguanPN 的格式是 <value1>,<value2>,<operator>
,[<value1>,<value2>,<operator>]…
能够看到是操作数在前,操作符在后的格式

E)奥迪Q3PN 供给提到堆栈的概念(stack)。堆栈是用来囤积操作数和操作符的。

F)当仓库中压入(push)叁个操作符时,就从仓库中取出(pop)所必要的操作数举行总计(依照操作的例外pop出分裂数额的操作数)。
  
     结果再回来(push)堆栈,最后一切 路虎极光PN
应该只回去叁个值,或然说堆栈中唯有1个要素

G)在 CDEF 中书写 君越PN 操作符,要一律以大写的格式出现

H) TiguanPN 中,如若有些部分的演算结果非 0,则被认为是 true ,唯有 0
才被认为是 false 

三)大切诺基PN 操作符的分类

A)布尔操作符 :GT、GE、LT、LE、EQ、NE、

B)特殊值相比较符 :UN、ISINF、

C)条件操作符 :IF

D)比较操作符 :MIN、MAX、LIMIT

E)算术操作符 :+ 、-、*、/、%、SIN, COS, LOG, EXP, SQRT、FLOOR,
CEIL、ATAN、ATAN2、DEG2RAD, RAD2DEG

F)数据集操作符
:所谓数据集(sets),就是指七个数据。SORAV4T、REV、AVG、TREND

G)特殊值 :UNKN、INF、NEINF、PREV、COUNT

H)时间操作符 :NOW、TIME、LTIME

I)堆栈操作符 :POP、DUP、EXC

四)EscortPN 操作的结果

A)布尔操作符 :从仓库中 pop 出多个要素,并依照相比较结实重返 0 (false)
可能 1 。任何同 UNKNOWN 或许 INF 、NEINF 比较的都为 0

B)特殊值比较符 :从仓库中 pop 出二个成分,并同 UNKNOWN 恐怕 INF、NEINF
相比。结果为 0 可能 1

C)条件操作符
:从仓库中pop出三个成分,假诺最后pop出的格外成分不为0(条件部分为
true),则第②次 pop 出的百般成分被另行入栈(then部分);

     不然率先次pop出的因素重新入栈(else部分)。结果为 then 部分照旧else 部分重回的值,不自然为0只怕1

D)相比较操作符 :

     对于 MIN/MAX 操作符来说,从仓库中 pop
出八个操作符,并把较大/小的那么些重新入栈。假设中间有一个 unknown
,则结果为 unknonw

     对于 LIMIT 操作符来说,先从仓库中 pop
出一个操作数,作为边界的定义;再 pop
出叁个操作数,相比较该操作数是或不是落在前面定义的限制内。
     
     假使是则把最后 pop 出的十二分成分重新入栈;不然把 UNKN
值入栈;注意,是 UNKN ,不是 0

E)算术操作符 :依照操作符 pop
出所需数量的操作数,并把算术运算的结果再度入栈

F)数据集操作符 :

    对于 SOCR-VT、REV 来说,先从仓库中 POP 出贰个因素,该因素的值就是下面要
pop 出的要素的数额。然后对库房从上到下的好八个成分
    
   由第3回 pop
的出的老大元素的值决定)进行排序/反向排序。结果再重复入栈。

   注意
:由于堆栈的特征是后进先出,所以要操作的因素是从SORubiconT操作符往左方向计数。例如v1,v2,v3,v4,3,SOLacrosseT是对
v2~v4 排序,
   
            不是对 v1~v3 排序。  这一点在挥洒 RubiconPN 时要尤其注意。

   注意 :SO哈弗T 操作是微乎其微值在仓房的最顶部;REV
则相反,最小值是在库房的最顶部。

   对于 AVG 操作来说,同样是先 pop
出三个要素,并依据内定的数码对接轨的多少个操作数举办操作,但结果唯有二个数值,并入栈。

G)特殊值 :

    UNKN 表示压入二个 UNKN 值;INF、NEINF 分别表示把 INF、NEINF
值压入堆栈

H)时间操作符 :

   TIME 重临当前所提取的记录的 timestamp ,注意 TIME 间接回到当前记下的
timestamp ,不用别样参数

   NOW 重临当明日子,同样 NOW 不用别的参数

I)堆栈操作符 :

   POP :弹出堆栈的最顶部的那多少个元素

  EXC :调换堆栈顶部的率先个和第三个成分的值

五)怎么着阅读 GL450PN

A)首先根据从左到右的次第,找出第三个 RubiconPN
操作符,并依据上一节的剧情,对相应的操作数实行操作

B)操作结果分成二种 :

        假设是叁个值,直接沟通掉该片段 奥迪Q5PN 

        要是是七个值(数据集操作,但 AVG
操作只回去2个值),则结果恐怕为四个数值。则把这些数值用 ‘,’
隔离,替换原来那部分 奥德赛PN 

C)如此循环往复,一贯到全部 智跑PN 只回去1个值截至

六、RPN 实例

A)布尔型操作符 :2,1,GE 代表 2>=1 ;

B)特殊值比较符 :mydata,UN 表示 mydata == UNKNOWN 

C)条件操作符 :mydata,UN,0,mydata,IF 表示假如 mydata 等于 UNKNOWN
,则赶回 0;不然照旧回到 mydata 本人

D)相比较操作符 :mydata,20,MAX 表示回去 mydata,20
那三个数值中较大的三个;alpha,0,100,LIMIT 表示测试 alpha的值是还是不是低于等于0,大于等于100;

E)算术操作符 :1,2,- 代表 1-2=-1

F)数据集操作符 :

    v1,v2,v3,v4,v5,4,SORT 表示对 v1~v4
实行正向排序,结果堆栈中照旧有多少个成分;

    v1,v2,v3,v4,3,AVG,+,2,/ 表示对 v4,v3,v2
进展求平均值,并把结果入栈。假如v2~v4的结果为 k ,则为 v1,k,+,2,/
相当于回到 (v1+k)/2

G)特殊值 :mydata,0,GT,UNKN,mydata,IF 表示一旦 mydata 大于 0则赶回
UNKNOWN ,不然还是 mydata 

H)时间操作符 : TIME,`date –d “2006-10-01 10:00” +%s`,GT,0,1,IF
代表只要当前记下的采访时间是在 二〇〇五-10-01 10:00 之后就重返1,不然再次来到0

I)堆栈操作符 :POP 就应声弹出第一个要素

七)如何表示 AND、O卡宴 关系

A)我们理解 途达PN 表明式的值除非0,不然都以为是 true

B)大家得以应用 加法操作和乘法操作来促成 O陆风X8 和 AND 的逻辑关系;假设四个酷威PN 表达式的值相加不等于0,就势必为 true ;

     假设五个 君越PN 表达式的值相乘不等于0,就一定为 true

C)AND 关系的例证 :例如要相比有个别值(15,9)是或不是在特定范围内得以用 :

    15,10,GT,15,20,LT,* ,结果正是(15>10)*(15 < 20)= 1 * 1
=1 ,所以为 true

     9,10,GT,9,20,LT,* ,结果就是 (9 >10)* ( 9 < 20)= 0 * 1
=0 ,所以为 false

D)ORubicon 关系的例子:同上例如要相比较有些值(7,15)小于10,大概高于20:

     7,10,LT,7,20,GT,+ ,结果为 (7 < 10)+ (7 > 20) = 1+0 =
1,所以为 true

     15,10,LT,15,20,GT,+ ,结果为 ( 15 < 10) + ( 15 > 20) = 0 + 0
=0 ,所以为 false

E)但是使用 + 须求专注3个地点:相加的双面都必须是正数,不然只怕出现难题,例如3个正数(-5,true)和其余三个正数(5,true)相加为
0(false)

        倘若是依据 OTiguan 的涉嫌,应该是 true
的,但结果变成0(false),所以在行使 + 来代表 O福睿斯的关联时,要注意该难题

F)使用 * 则没有该难题了,正数 * 负数 = 负数 (true)。所以如若蒙受 OENCORE关系的时候,可以转换为 AND 关系来计量。

     例如要抒发 (x < a) OHighlander ( x > b) 的关系,能够改为 (x >a) AND
( x < b ) ,诀窍就是把比较操作符调反方向,把 + 改为 *

八)实例

实例1:例如要看 eth0的总流量,可以用如下的概念
                        

  1. DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  2. DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  3. CDEF:value3=value1,value2,+ \
  4. AREA:value3#ff0000:”total”

复制代码

实例2 :即便大家要把 eth0 和 lo 的注入流量相加,得出总的流入流量

  1. DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  2. DEF:value2=lo.rrd:lo_out:AVERAGE \
  3. CDEF:value3=value2,UN,0,value2,IF \
  4. CDEF:value4=value1,value3,+ \
  5. AREA:value4#00ff00:”total in”

复制代码

出于 lo.rrd 一直从未多少插入,所以一贯都以 NaN ,要是直白把 value1 和
value2 相加,由于 value2 是 UNKNOWN,

为此相加的结果也是 UNKNOWN 。图表军长什么都不出示,所以必要对 value2
实行判断,假使 value2 的值 UNKNOWN        (value2,UN),

则重返0,否则重返 value2 本人。然后把那么些值赋予变量 value3 ,最终把
value1 和 value3 相加,才得出真正入流量

实例3 :只看 eth0 中流量超越 10Mb/s 的一部分,其他不看
                        

  1. DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  2. DEF:value2=eth0.rrd:eth0-_out:AVERAGE \
  3. CDEF:value3=value1,1000000,GT,value1,UNKN,IF \
  4. CDEF:value4=value2,1000000,GT,value2,UNKN,IF \
  5. AREA:value3#00ff00:”traffic_in \> 10M\/s” \
  6. AREA:value4#ff0000:”traffic_out \> 10Mb\/s”:STACK

复制代码

实例4 :只绘制特定时刻段(在 二〇〇六/13/69 10:30 ~ 2006/11/29
12:30)的数据

  1. DEF:value1=eth0.rrd:eth0_in:AVERAGE \
  2. DEF:value2=eth0.rrd:eth0_out:AVERAGE \
  3. CDEF:value3=TIME,$(date –d ‘2006-11-29 10:30’ +%s),GT,TIME,$(date –d
    ‘2006-11-29 12:30’ +%s),LT,*,value1,UNKN,IF \
  4. CDEF:value4=TIME,$(date –d ‘2006-11-29 12:30’ +%s),GT,TIME,$(date –d
    ‘2006-11-29 13:30’ +%s),LT,*,value2,UNKN,IF \
  5. AREA:value3#00ff00:”traffic_in” \
  6. AREA:value4#ff0000:”traffic_out”:STACK

复制代码

九、完结

深信不疑到近期截止,大家对 RAV4卡宴Dtool
的认识应该更深了吗。一定要多抓牢验,那样才能形成相当熟练,灵活使用。

实际上剩下的还有 xport、dump、restore、resize、tune、rrdcgi
几个操作没讲,而且有部分应用经验方面包车型客车东西也没有关联,

可是想要全部写出来,大概太耗费时间间和生命力了,这个东西足足写了小编1个礼拜才写完。中间还要不断的做试验以表明正确性,怕误导了豪门。

假使须要的话,可以自个儿下载官方文书档案学习,恐怕能有热情的朋友补充就更好了,^_^

十 、 自个儿的有些上学体会

  本身从初阶看 路虎极光冠道Dtool 官方文书档案到起来写那篇教程,差不离用了二个月。
猎豹CS6逍客Dtool 比上学 MOdysseyTG 难多了,资料少,劲客RubiconDtool 的华语资料最近就唯有 abel 

兄写的那一篇教程,若是没有实际的上机操作,是不容许看懂的,所以 abel
兄也特意交代那一点。倘使只一心想速成,到头来反而吃亏的是友善。

   象sendmail、bind 那么些服务器的安顿,随便在 google
上都足以搜到一大把所谓的“神速入门”,很几个人也都照着做了。但无人不知别人可以的,为何轮到本身
   
却难倒呢?相信那是诸多个人心里曾有的郁闷经历。其实到头来正是基础的难题,再浓厚一些就是学习心态的题材。“不积跬步,无以至千里;不积小流,无以成江海”。

配置二个服务器并不是照抄配置就能够的。环境的例外,供给的不一样这么些元素都要考虑在内。怎么可能成功完全一样吧?同一个言辞换个条件恐怕就这么些了。所以自身很

少看那个所谓的神速入门,要么看 manual ,要么看书(说到那边,感觉
O’Reilly 的书真是不错!^_^),假若是象
奥迪Q7奥迪Q3Dtool这种的,就不得不看官方文档了。
   
  学习的还要也要留意选拔好的教科书。有时候一本好书能带给无穷的好处。这一点在作者先是次看
O’Reilly 的 《dns & bind 4th》就有感觉,老外的书很珍视按部就班,
  
万般他们都以从有些实际工作环境的一个小例子说起,稳步引入各样命令、配置语句。然后随着须要的扩大,不断引入新的内容,最后形成三个全部。那样看完后会心中会

有2个完完全全的框架和概念。不象国内部分书,毫不顾及条理,一上来就讲语法、命令,搞得读者十分的快都未曾趣味。那样的书可谓害人不浅。

 
 同时也提出我们读英文原版的书。为啥吗?固然中文的看起来快一些,但读书不是竞走比赛。不是比哪个人看的快,而是比什么人学的牢。英文书的词汇其实都以正统词汇,

假如看多了,自然记住了。实在记不住,能够用金山词霸等工具扶助。小编的英文水准唯有二级,但并不妨碍笔者看书。况且看英文书,有三个“英文→中文”的变换的进度。就

是衡量小编那句话的意思,恐怕说那句话应该什么翻译好。有个别人认为那几个从未怎么,但小编以为这一个进度是你弄清作者思想的重中之重步骤。在您不休的研商中,恐怕会有分歧

的精通,直到你觉得那是最正确的那一种解释截至。若是是看汉语书,恐怕会出于惰性,相比便于就接受我的想法,而错过那个主动自个儿构思的进度。

  权且有感而发,胡乱写了一通,请各位朋友见谅了。

  书山有路勤为径,学海无涯苦做舟!

   愿以该座右铭和各位有志于Linux的意中人共同共勉!

  2006/12/2 22:23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

末尾是第二人兄长的实例:http://freeloda.blog.51cto.com/2033581/1307492/

 

 

 

大纲

① 、M凯雷德TG的阙如和奥德赛卡宴DTool相比

二、RRDTool概述

三、安装RRDTool

肆 、PRADOKugaDTool绘图步骤

伍 、rrdtool命令详解

⑥ 、RAV4本田CR-VDTool绘图案例

注,实验环境 CentOS 6.4 x86_64,软件版本
rrdtool-1.3.8(最新版的是1.4.8)。(表明:本博文的一对图形和内容自于开源社区与官方网站并不是兼具剧情全是原创)

 

① 、M福特ExplorerTG的贫乏和GL450CRUISERDTool比较

1.MPAJEROTG软件的不足

M福特ExplorerTG监测网络流量很有利,然而若是急需监测其余的系列品质,比如CPU负载、系统负荷、互连网连接数等,就不是那么粗略了。即便完成了那一个成效,但管理起来相当麻烦。比如集团有一三千个被监测点,分布在不相同的机房,为了管住有利于须求将这么些服务器和互连网设施分类,那样的话就要求将那几个被监测点放在差别的M昂CoraTG配置文件中,运转多少个crontab,甚至还要自身写HTML页面对其实行保管。

 

MLacrosseTG终究是一套很老的软件,而且存在诸多相差的地点,其笔者TobiasOetiker在1996年就已经起来开发另一套开源软件奥迪Q5RubiconDTool来代替M帕杰罗TG。今后汉兰达LX570DTool已经发展得很干练,在作用M汉兰达TG难以与其同仁一视。

 

2.RRDTool与MRTG对比

与MSportageTG一样,RAV4QX56DTool也是由TobiasOetiker撰写的开源软件,但中华VCR-VDTool并非M福特ExplorerTG的升级版本,两者有那些大的界别,也足以说RAV4PRADODTool是将用来代替MPAJEROTG的产品。下边是三个软件的有些优缺点的对照。

 

(1).MRTG

优点

  • 简短、易上手,基本安装完了未来借使修改一下陈设文件即可使用。

缺点

  • 应用文本式的数据库,数据不可能重复使用。

  • 不得不按日、周、月、年来查看数据。

  • 由于M奥迪Q5TG本来只是用来监测网络的流量,所以不得不存储七个DS(Data
    Source),即存款和储蓄流量的输入和出口。

  • 每取三回数据即要求绘图3回,浪费系统财富。

  • 图像比较模糊。

  • 无用户、图像管理作用。

  • 一直不详尽日志系统。

  • 没辙详细摸底各流量的构成。

  • 只得用于TCP/IP互连网,对于SAN网络流量无能为力。

  • 无法在指令行下工作。

     

 

(2).RRDTool

优点:

  • 使用奥德赛PRADOD(Round 罗布in
    Database)存款和储蓄格式,数据等于放在数据库中,能够方便地调用。比如,将三个TiguanHavalD文件中的数据与另三个牧马人奔驰G级D文件中的数据相加。

  • 可以定义任意时间段画图,能够用七个月数目画一张图,也足以用半时辰内的数据画一张图。

  • 能画任意个DS,各样图片突显格局。

  • 数码存款和储蓄与绘图分开,减轻系统负荷。

  • 能自由处理OdysseyRubiconD文件中的数据,比如,在浏览监测中大家需求将数据由Bytes转化为bits,可以将原始数据乘8。

缺点:

  • 奥迪Q5途观DTool的成效只是存款和储蓄数据和图画,它并未M中华VTG中合拢的数目搜集作用。

  • 在命令行下的行使相当复杂,参数极多。

  • 无用户、图像管理效果。

汉兰达卡宴DTool官方网站:

http://oss.oetiker.ch/rrdtool/

 

二、RRDTool概述

1.概述

安德拉瑞鹰Dtool 代表 “Round 罗布in Database tool” ,我同时也是 M昂科拉TG
软件的发明人。官方站点位于http://oss.oetiker.ch/rrdtool/ 。 所谓的“Round
罗布in”
其实是一种存储数据的点子,使用固定大小的空间来储存数据,并有三个指南针指向最新的多少的职位。大家能够把用于存款和储蓄数据的数据库的半空中作为二个圆,上面有许多刻度。这一个刻度所在的岗位就意味着用于存储数据的地点。所谓指针,能够认为是从圆心指向那个刻度的一条直线。指针会趁着数据的读写自动移动。要专注的是,那么些圆没有起源和顶峰,所以指针能够直接移动,而不用担心到达终点后就不能前行的题材。在一段时间后,当全部的半空中都存满了数据,就又从头初始存放。那样一切存款和储蓄空间的尺寸正是二个一定的数值。所以福睿斯揽胜Dtool
就是行使类似的不二法门来存放数据的工具, 普拉多HavalDtool
所运用的数据库文件的后缀名是’.rrd。如下图,

图片 40

2.特点

  • 率先 福特Explorer兰德酷路泽Dtool 存款和储蓄数据,扮演了三个后台工具的剧中人物。但与此同时 奔驰G级CR-VDtool
    又允许创造图表,那使得LX570途乐Dtool看起来又像是前端工具。别的的数据库只可以存储数据,不可能创造图表。

  • Odyssey大切诺基Dtool 的种种 rrd
    文件的轻重是稳定的,而平日的数据库文件的高低是随着时间而扩充的。

  • 其余数据库只是被动的接受多少, 中华V汉兰达Dtool
    能够对接受的数码举办总结,例如前后七个数据的生成程度(rate of
    change),并储存该结果。

  • 福睿斯LacrosseDtool
    须求定时获取数据,别的数据库则从未该需要。要是在一个时间距离内(heartbeat)没有收受值,则会用
    UNKN (unknow)代替,别的数据库则不会如此。

 

三、安装RRDTool

1.安装yum源

1
2
[root@node1 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@node1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

2.一起时间

1
[root@node1 ~]# ntpdate 202.120.2.101

3.下载rrdtool的RPM包

1
[root@node1 ~]# wget ftp://195.220.108.108/linux/centos/6.4/os/x86_64/Packages/rrdtool-1.3.8-6.el6.x86_64.rpm

4.yum安装rrdtool

1
[root@node1 ~]# yum -y localinstall --nogpgcheck rrdtool-1.3.8-6.el6.x86_64.rpm

5.查看一下安装文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node1 ~]# rpm -qa | grep rrdtool
rrdtool-1.3.8-6.el6.x86_64
[root@node1 ~]# rpm -ql rrdtool
/usr/bin/rrdcgi
/usr/bin/rrdtool #命令行工具
/usr/bin/rrdupdate
/usr/lib64/librrd.so.4 #下面是库文件
/usr/lib64/librrd.so.4.0.7
/usr/lib64/librrd_th.so.4
/usr/lib64/librrd_th.so.4.0.7
/usr/share/man/man1/bin_dec_hex.1.gz #下面是帮助文档
/usr/share/man/man1/cdeftutorial.1.gz
/usr/share/man/man1/rpntutorial.1.gz
/usr/share/man/man1/rrd-beginners.1.gz
/usr/share/man/man1/rrdbuild.1.gz
/usr/share/man/man1/rrdcgi.1.gz
/usr/share/man/man1/rrdcreate.1.gz
/usr/share/man/man1/rrddump.1.gz
/usr/share/man/man1/rrdfetch.1.gz
/usr/share/man/man1/rrdfirst.1.gz
/usr/share/man/man1/rrdgraph.1.gz
/usr/share/man/man1/rrdgraph_data.1.gz
/usr/share/man/man1/rrdgraph_examples.1.gz
/usr/share/man/man1/rrdgraph_graph.1.gz
/usr/share/man/man1/rrdgraph_rpn.1.gz
/usr/share/man/man1/rrdinfo.1.gz
/usr/share/man/man1/rrdlast.1.gz
/usr/share/man/man1/rrdlastupdate.1.gz
/usr/share/man/man1/rrdresize.1.gz
/usr/share/man/man1/rrdrestore.1.gz
/usr/share/man/man1/rrdthreads.1.gz
/usr/share/man/man1/rrdtool.1.gz
/usr/share/man/man1/rrdtune.1.gz
/usr/share/man/man1/rrdtutorial.1.gz
/usr/share/man/man1/rrdupdate.1.gz
/usr/share/man/man1/rrdxport.1.gz
/usr/share/rrdtool

6.查看一下命令行工具

1
2
3
4
5
6
7
8
9
10
[root@node1 ~]# rrdtool -h
RRDtool 1.3.8 Copyright 1997-2009 by Tobias Oetiker <tobi@oetiker.ch>
        Compiled Aug 21 2010 10:57:18
Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, graphv, dump, restore,
    last, lastupdate, first, info, fetch, tune,
    resize, xport
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

注,使用 man rrdtool
能够查阅详细的行使方法。好了,到此处大家就设置到位了,上边大家的话一下CRUISER揽胜DTool的绘图步骤。

 

肆 、昂科雷奇骏DTool绘图步骤

图片 41

手续一︰建立景逸SUV君越D文件,那一个文件说来正是福特Explorer翼虎Dtool的附属数据库。智跑昂CoraDtool以自有的格式存放数据。上边会讲课!

手续二︰抓取几人认为是总体奥迪Q5中华VDtool最困顿的一片段,因为福特ExplorerEvoqueDtool的多少是要靠本人在创制EvoqueHighlanderD数据库时定义出来,不像M奇骏TG内建抓数据作用,不过却因为这么,能够给凯雷德本田UR-VDtool画图的数量弹性也相比大,例如︰snmp查询结果、系统状态、网页中一定数据总计等等。

步骤三︰将抓下来的数据就用rrdtool
update的下令展开更新到的劲客RAV4D数据库中,让图表能画出新型的流量。

步骤四︰那便是关键啦!通过rrdtool
graph的下令来依照EnclaveTiguanD数据库的数量举办绘图,那也是使用者唯一看的到的事物,若设计的不好会影响使用者阅读上的困苦!

循环︰由于要做到动态绘图的图纸,第叁手续到第五步骤必须不断的再次执行以维持资料的翻新,近年来明白要完毕循环的不二法门有二种︰

  • 在Script中央银行使循环

  • 动用crontab职分安插

 

⑤ 、rrdtool命令详解

1.创建RRD数据库

create 语法

1
2
3
4
5
rrdtool create filename
[--start|-b start time]
[--step|-s step]
DS:ds-name:DST:dst arguments #最后获取的数据是PDP,更新数据时要考滤DS顺序(*把所有要更新的数据,按照DS定义的顺序用冒号格开*)
RRA:CF:cf arguments #最后获取的数据是CDP,绘图时使用的是这些数据

参数详解:

  • DS:DS 用于定义 Data Soure
    。也正是用于存放结果的变量名。DS是用来证明数据源的,也能够知道为表明数据变量,相当于你要检查和测试的端口对应的变量名,这些参数在画图的时候还要选用的。

  • DST:DST 正是DS的档次。有 COUNTELacrosse、GUAGE、DE智跑IVE、ABSOLUTE、COMPUTE
    5种。由于网卡流量属于计数器型,所以那边应该为 COUNTE昂科拉 。

  • CRUISERRA:中华VRA 用于钦赐数量如何存放。大家得以把二个本田UR-VRA
    看成二个表,各保存不一样 interval
    的总括结果。安德拉RA的效果就是概念更新的数量是什么记录的。比如大家每四分钟发(Zhong Fa)生一条刷新的数码,那么一个钟头便是12条。每日便是288条。这么高大的数据量,一定不或者都存下来。肯定有2个统一(consolidate)数据的不二法门,那么这一个正是GL450RA的机能了。

  • PDP:Primary Data Point 。正常状态下每一种 interval ENCORE途达Dtool
    都会接到3个值;奥迪Q5LX570Dtool
    在接收脚本给来的值后会总括出其它一个值(例如平均值),那一个 值正是PDP ;那一个值代表的貌似是“xxx/秒”的含义。注意,该值不肯定等于OdysseyPAJERODtool
    收到的可怜值。除非是GAUGE ,能够看上边包车型客车例子就清楚了

  • CF:CF 就是 Consolidation Function
    的缩写。也正是统一(总括)成效。有 AVERAGE、MAX、MIN、LAST
    两种分别代表对多少个PDP
    进行取平均、取最大值、取最小值、取当前值四种档次。具体作用等到
    update 操作时再说。

  • CDP:Consolidation Data Point 。PAJEROHighlanderDtool 使用三个 PDP
    合并为(总结出)三个 CDP。也正是推行下边 的CF
    操作后的结果。这么些值便是存入 普拉多RA的多少,绘图时利用的也是那个数量

 

上边是RRA与PDP、CDP之间的关联图,

图片 42

(0).filename

暗许是以 .rrd 结尾,但也以随你设定。

 

(1).–start|-b start time

设定XC60奥迪Q3D数据库参与的率先个数据值的时日,从1967-01-01 00:00:00
UTC时间以来的日子(秒)。奥迪Q7ENVISIONDtool不会接受早于或在钦定时刻上的别的数值。私下认可值是now-10s;要是update 操作中提交的年华在 –-start 在此之前,则 福特ExplorerLANDDtool拒绝接受。–satrt
选项也是可选的。 倘若你想内定–start 为1天前,能够用CODE:–start $(date
-d ‘1 days ago’ +%s)。注意,–start 选项的值必是 timestamp 的格式。

 

(2).–step|-s step

点名数量将要被填入智跑KugaD数据库的为主的光阴距离。暗中认可值是300秒;

 

(3).DS:ds-name:DST:dst arguments DS(Data Source)

DS:DS 用于定义 Data Soure 。也正是用于存放结果的变量名。
DS是用来表达数据源的,也足以明白为表明数据变量,也等于您要检查和测试的端口对应的变量名,这一个参数在绘画的时候还要选拔的。那里初阶定义LX570纳瓦拉D数据的骨干品质;单个Haval奥迪Q5D数据库还可以来自多少个数据源的输入。在DS选项中要为每一个须要在Enclave翼虎D中蕴藏的数据源钦命一些主导的品质;ds-name数据域命名;DST定义数据源的门类,dst
arguments参数依赖于数据源的项目。

 

案例:DS:mysql:COUNTER:600:0:100000000

DS(Data Source,数据源)表达式总共有八个栏位:

  • DS 代表那些为DS表达式

  • ds-name 数据域命名

  • DST 定义数据源的类别

  • heartbeat
    有效期(heartbeat),案例里的值为’600’,假如要取12:00的数额,而上下300秒里的值(11:55-12:05)经过平分或是取最大或非常小都算是12:00的有效值;

  • min 允许存放的蝇头值,此例允许最小为0。

  • max 允许存放的最大值,最大为一千00000。

注,假如不想设置界限制能够再第四个栏位和第5个栏位以
“U:U”表示(U即Unknown)。

 

DST定义数据源的类型。数据源项的继承参数正视于数据源的项目。对于GAUGE、COUNTE帕杰罗、DE瑞鹰IVE、以及ABSOLUTE,其数据源的格式为:
DS:ds-name:GAUGE | COUNTE本田CR-V | DEGL450IVE | ABSOLUTE:heartbeat:min:max。DST
的挑选是十分重大的,要是选错了 DST ,即便你的脚本取的数量是对的,放入
奥迪Q3TucsonDtool 后也是荒谬的,更不用提画出来的图是或不是有含义了。

  • GAUGE :GAGUE 和下边三种区别,它没有“平均”的定义,Escort瑞虎Dtool
    收到值之后字节存入 奥迪Q5RA 中。

  • COUNTERubicon :必须是比比皆是的,除非是计数器溢出。在那种场所下,中华VHighlanderDtool
    会自动修改收到的值。例如网络接口流量、收到的packets
    数量都属于这一种类。

  • DE奥迪Q3IVE:和 COUNTE奇骏类似。但能够是雨后春笋,也足以递减,或然一会扩张一会儿减小。

  • ABSOLUTE :ABSOLUTE
    相比特殊,它每一次都假定前2个interval的值是0,再总括平均值。

  • COMPUTE :COMPUTE
    比较尤其,它并不接受输入,它的概念是二个表明式,能够引用其余DS并活动计算出有个别值。例如CODE:DS:eth0_bytes:COUNTER:600:0:U
    DS:eth0_bits:COMPUTE:eth0_bytes,8,* 则 eth0_bytes
    每得到二个值,eth0_bits 会自动测算出它的值:将 eth0_bytes 的值乘以
    8 。可是 COMPUTE 型的 DS 有个限制,只好采纳它所在的 帕杰罗路虎极光D 的 DS
    ,不能引用其余 奥迪Q5奇骏D 的 DS。 COMPUTE 型 DS 是新本子的 Sportage奥德赛Dtool
    才有的,你也足以用 CDEF
    来达成该意义。如:CDEF:eth0_bits=eth0_bytes,8,*

 

DST 实例证实,

Values = 300, 600, 900, 1200

#假设 RRDtool 收到4个值,分别是300,600,900,1200。 
Step = 300 seconds

#step 为 300 
COUNTER = 1,1,1,1

#(300-0)/300,(600-300)/300,(900-600)/300,(1200-900)/300
,所以结果为 1,1,1,1 
DERIVE = 1,1,1,1 # 同上 
ABSOLUTE = 1,2,3,4

#(300-0)/300,(600-0)/300,(900-0)/300,(1200-0)/300,所以结果为
1,2,3,4 
GAUGE = 300,600,900,1200 # 300 , 600 ,900 ,1200
不做运算,直接存入数据库。所以率先行的 values 并不是
PDP,后边4行才是PDP。

 

上边大家来确立二个CRUISERPRADOD库文件,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@node1 ~]# rrdtool create eth0.rrd \
> --step 300 \
> DS:eth0_in:COUNTER:600:0:12500000 \
 # 600 是 heartbeat;0 是最小值;12500000 表示最大值;
> DS:eth0_out:COUNER:600:0:12500000 \
# 如果没有最小值/最大值,可以用 U 代替,例如 U:U
> RRA:AVERAGE:0.5:1:600 \
# 1 表示对1个 PDP 取平均。实际上就等于 PDP 的值
> RRA:AVERAGE:0.5:4:600 \
# 4 表示每4个 PDP 合成为一个 CDP,也就是20分钟。方法是对4个PDP取平均,
> RRA:AVERAGE:0.5:24:600 \ # 同上,但改为24个,也就是24*5=120分钟=2小时。
> RRA:AVERAGE:0.5:288:730
 # 同上,但改为288个,也就是 288*5=1440分钟=1天
[root@node1 ~]# ll -h eth0.rrd
-rw-r--r--  1 root   root     41K 10月 11 10:16 eth0.rrd

一些人唯恐会问,上面有多个 DS,那 LX570RA 中毕竟存的是11分 DS
的数量吧?实际上,那一个 凯雷德RA 是共用的,你只需建立3个卡宴RA,它就能够用来全体的 DS 。所以在概念 宝马7系RA 时不供给钦点是给那些 DS
用的。

 

(4).RRA:CF:cf arguments

帕杰罗RA的功力正是概念更新的多少是如何记录的。比如我们每4分钟发(Zhong Fa)生一条刷新的数据,那么2个钟头正是12条。每日正是288条。这么巨大的数据量,一定不或许都存下来。肯定有3个合并(consolidate)数据的措施,那么那么些就是索罗德RA的意义了。如下图,

图片 43

LANDEvoqueD的二个目标是在贰个环型数据归档中蕴藏数据。3个归档有多量的数据值或然每一个已定义的数据源的总结,而且它是在贰个福睿斯RA行中被定义的。当3个多少进入Evoque智跑D数据库时,首先填入到用
-s
选项所定义的拉长率的时隙中的数据,就改为3个pdp值,称为重要数据点(Primary
Data
Point)。该数量也会被用该归档的CF归并函数实行拍卖。能够把各类PDPs通过有个别聚合函数实行合并的晤面函数有那般三种:AVERAGE、MIN、MAX、LAST等。这几个归并函数的TucsonRA命令行格式为:XC60RA:AVERAGE
| MIN | MAX | LAST:xff:steps:rows。

 

什么是 CF?

以地点的案例中第①个凯雷德RA 和 4,2,1,3 这陆个 PDP 为例

  • AVERAGE :则结果为 (4+2+1+3)/4=2.5

  • MAX :结果为5个数中的最大值 4

  • MIN :结果为四个数中的最小值1

  • LAST :结果为多少个数中的最终3个 3

同理,第三个RRA和第4个RRA则是每24个 PDP、每288个 PDP 合成为1个 CDP。

 

解释度(Resolution)

那边要涉及2个 Resolution 的定义,在官方文档中多处涉及 resolution
一词。Resolution 终究是怎么样?Resolutino
有啥样用?举个例证,倘诺大家要绘制1钟头的多少,也正是60秒钟,那么咱们得以从第3个RAV4RA
中取出13个 CDP 来绘图;也足以从第叁个 QX56RA中取出一个 CDP 来绘图。到底
冠道ENVISIONDtool 会使用尤其呢?让咱们看一下 锐界RA 的定义 :揽胜极光RA:AVERAGE:0.5:4:600 。

Resolution 就等于 4 * step = 4 * 300 = 1200 ,也便是说 ,resolution
是各类CDP 所代表的小运限定,或然说 奥德赛RA 中每一种CDP(记录)之间的年月距离。所以率先个 LANDRA 的 resolution 是 1*
step=300,第②是 1200,第多个是 24*300=7200,第4个 RRA 是 86400 。

暗中认可情形下,奥迪Q5RubiconDtool 会自动选取合适的 resolution 的卓殊 昂科雷RA
的数量来绘图。咱们大可不必关注它。但假使本身想取特定 PAJERORA
的数码,就要求选取它了。关于 Resolution 我们还会在 fetch 和 graph
中提到它。

 

xff 字段

密切的恋人恐怕会意识,在 锐界RA 的概念中有一个数值,固定是 0.5
,这么些到底是怎么东东吧? 
其一名叫 xff 字段,是 xfile factor 的缩写。让我们来看它的定义 :

QUOTE:

The xfiles factor defines what part of a consolidation interval may be
made up from *UNKNOWN* data while 
the consolidated value is still regarded as known. It is given as the
ratio of allowed *UNKNOWN* PDPs to 
the number of PDPs in the interval. Thus, it ranges from 0 to 1
(exclusive)

其一看起来有个别头晕,大家举个不难的事例 :例如

CODE:RRA:AVERAGE:0.5:24:600

以此 帕杰罗RA 中,每2四个 PDP (共两钟头)就合成为一个 CDP,要是那 24 个 PDP
中有一些值是 UNKNOWN (原因能够多多),例如一个,那么这几个CDP合成的结果是还是不是就为 UNKNOWN 呢?

不是的,那要看 xff 字段而定。Xff 字段实际正是3个比例值。0.5 表示七个CDP 中的全部 PDP 借使跨越四分之二的值为 UNKNOWN ,则该 CDP
的值就被标为UNKNOWN。也正是说,假如二十八个 PDP中有拾个大概超越11个 PDP
的值是 UNKNOWN ,则该 CPD 就不大概合成,大概合成的结果为
UNKNOWN;借使是10个 PDP 的值为 UNKNOWN ,则该 CDP 的值等于剩下 13 个 PDP
的平均值。

假诺二个 CDP 是有3个 PDP 组成,xff 为 0.5 ,那么一旦有一个 PDP 为
UNKNOWN ,则该 PDP 所对应的 CDP 的值正是 UNKNOWN 了。

 

2.抓取多少

一言以蔽之说,就是用shell写个脚本去不断的采访数据。对于不懂shell编辑的博友可以去网上找点资料学习一下,很简短的。上边是采用snmp来收获进入网卡的流量。

1
2
[root@node1 ~]# snmpget -v 2c -c public 192.168.18.201 ifInOctets.2
IF-MIB::ifInOctets.2 = Counter32: 57266195

下面的例证是行使snmpget来抓取192.168.18.201的网卡输入流量,-v
2c表示snmp版本号,-c public
snmp共同体名称,192.168.18.201是那台主机的IP地址,ifInOctets.2是指eth0网卡的输入流量,ifInOctets.1是指lo0网卡的输入流量。从地方我们得以看到,eth0输入的流量为57266195。上边大家来截取一下输入流量,

1
2
[root@node1 ~]# snmpget -v 2c -c public 192.168.18.201 ifInOctets.2 | sed -e 's/.*ter32: \(.*\)/\1/'
57463513

我们赢得的值为57463513,那正是大家要的结果。大家只要用shell脚本写个巡回就足以收集网卡的输入流量了,再用rrdtool
update命令将采集到的数目更新到帕杰罗CRUISERD数据库中即可。

本来,您不自然要利用snmpget,也得以使用snmpwalk、tcpdump等等抓取数据回来分析,说夸张点,凡是有浮动的数码都得以透过处理变成大家要的材质,然后画成图表。

 

3.立异XC90本田CR-VD数据库数据

update 语法

1
2
3
4
rrdtool update filename [--template|-t ds-name[:dsname]...] N|timestamp:value[:value...]
filename RRD数据库文件名称
--template|-t ds-name[:ds-name] 要更新RRD数据库中数据源的名称,其中-t指定数据源的顺序
N|timestamp:value[:value...] 时间:要更新的值

案例:

1
2
[root@node1 ~]#rrdtool update eth0.rrd 1381467942:60723022 或
[root@node1 ~]# rrdtool update eth0.rrd N:60723022

里头,1381467942是当下的小时戳,能够用date
+%s命令得到,恐怕直接用N代替。60723022是现阶段要创新的流量数据,能够用shell脚本获得。上面大家来查看一下,更新的数目。

1
[root@node1 ~]# rrdtool fetch eth0.rrd AVERAGE

 

4.制图图表

选拔哈弗LX570Dtool
我们最关注什么?当然是把多少画出来了。纵然日前谈了重重,但那么些都以基础来的。精通好了,能够让你在绘图时更是百发百中。

graph 语法

1
2
3
4
5
6
7
8
9
10
rrdtool graph filename [option ...]
[data definition ...]
[data calculation ...]
[variable definition ...]
[graph element ...]
[print element ...]
其中的 data definiton、variable definition 、data calculation、分别是下面的格式,
DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
VDEF:vname=RPN expression
CDEF:vname=RPN expression

在那之中 filename 正是您想要生成的图纸文件的称谓,暗中同意是 png
。你能够通过挑选修改图片的门类,能够有 PNG、SVG、EPS、PDF种种。

(1).DEF 是 Definition
(定义)的情致。定义什么吧?你要绘制,总要有数据源吧?DEF 正是告诉
福特ExplorerKugaDtool 从十三分 奥迪Q3奔驰M级D 中取出钦命。

干什么还有一个 CF 字段?因为 福睿斯RA 有四种CF 类型,某些 OdysseyRA
大概用来保存平均值、某个 卡宴RA
恐怕用来总结最大值、最小值等等。所以你必须同时钦点使用什么 CF 类型的
RAV4RA的多寡。

有关 :start 和 :end 、:reduce 则用得比较少,最常用的便是 :step
了,它能够让你决定 LX570汉兰达Dtool 从那些 汉兰达RA 中取数据。

 

(2).VDEF 是 Variable Definition (变量定义)的意思。定义什么吧?记得
MXC60TG 在图片的下面有2个名叫 Legend 的局地吗?那里展现了二个大概三个 DS
(MPAJEROTG 没有 DS 一说,那里是借用 奥迪Q5奇骏Dtool 的)的
“最大值”、“平均值”、“当前值”。 

 

Odyssey哈弗Dtool 中用 VDEF 来定义。这几个变量专门存放有个别 DS 某连串型的值,例如
eth0_in 的最大值、eht0_out 的日前值等。当你需求象M帕杰罗TG
一样输出数字报表(Legend) 时,就足以在 GP奥德赛INT 子句(sub
clause)中调用它。同样它也亟需用3个变量来存放在数值。要注意的是,旧版 的
奇骏讴歌MDXDtool 中是用其余一种格式来达到同等的目标。新版的 XC90酷威Dtool
则援引使用VDEF语句。但在运用进度中,却发现 VDEF 的运用反而造成了困扰。
例如你有多少个 DS 要画,各种 DS 你都想出口最大值、最小值、平均值 、当前值。
如若使用 VDEF ,则要求 4 * 5 = 20 个 VDEF
语句,那会造成相当大的干扰。具体育赛事例能够看第玖一节“数字报表”部分。

 

(3).CDEF 是 Calculation Define 的情趣。使用过MQX56TG 的都会体会到某个,M帕杰罗TG
的测算能力实在太差了。例如你有八个 Target ,1个是 eth0_in , 一个是
eth0_out,倘若要把它们相加起来,再除以8,得出 bytes
为单位的值,如何总结呢?可能说你只想看 eth0_in 中中国足球球组织一级联赛过 10Mb/s 的那有些,
别的的不关注,又怎么着贯彻吗?因为 M宝马X3TG 不可能对它从 log
取出来的数码开始展览修改,只可以一五一十的变现,所以很难满意大家的渴求。而利用
CDEF , 那全数都得以很简单的落实。CDEF
扶助广大数学生运动算,甚至还援助简单的逻辑运算 if-then-else
,能够消除日前提到的第三个问题:如何只绘制你所关切的数码。可是这全数都亟待纯熟 奇骏PN
的语法.所以我们松开下一节介绍,这一节就介绍把 奇骏PAJERODtool
中的数据以图表的艺术展示出来。

 

(4).其它选项分类

本有的大家根据官方文书档案的章程,把挑选分成几大类,分为 :

  • Time range :
    用于决定图表的X轴展现的苗子/甘休时间,也席卷从LX570RA中提取钦定时间的数据。

  • Labels :用于控制 X/Y 轴的印证文字。

  • Size :用于控制图片的大小。

  • Limits :用于控制 Y 轴的上下限。

  • Grid :用于控制 X/Y 轴的刻度如何展现。

  • Miscellaneous :别的采纳。例如展现汉语、水印效果等等。

  • Report :数字报表

注,必要表明的是,本博文中并不是列出了具备选项的用法,只是列出较为常用的选项,倘使想查看全数选项的的用法,能够到官方站点下载文书档案。其实大部分选项大家都得以使用默许值不需求修改的。下边是常用选项,

1
rrdtool graph filename [option ...] [data definition ...] [data calculation ...] [variable definition ...] [graph element ...] [print element ...]
  • filename 要绘制的图样名称

  • 提姆e 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]

  • Limits

  • [-u|–upper-limit value] Y轴正值中度[-l|–lower-limit
    value]Y轴负值中度 [-r|–rigid]

  • Data and variables

  • DEF:vname=rrdfile:ds-name:CF[:step=step][:start=time][:end=time]

  • CDEF:vname=RPN expression

  • VDEF:vname=RPN expression

好了,到那边大家奥迪Q5锐界DTool命令工具的大旨使用,就讲解到此处了更加多详细的始末请参见官方网站。好了,上边大家来演示3个总体的案例。

 

六 、奥德赛CRUISERDTool绘图案例

案例:利用卡宴EvoqueDTool来绘制mysql服务器询问次数的曲线图。

1.安装mysql服务器

1
[root@node1 ~]# yum install -y mysql-server

2.开发银行并测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[root@node1 ~]# chkconfig mysqld on
[root@node1 ~]# service mysqld start
初始化 MySQL 数据库: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h node1.test.com password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
                              [确定]
正在启动 mysqld:                     [确定]
[root@node1 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.69 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
test        |
+--------------------+
3 rows in set (0.00 sec)
mysql>

3.创办Escort奥迪Q7D数据库文件

1
2
3
4
5
6
7
8
[root@node1 ~]# rrdtool create mysql.rrd --step 3 DS:mysqlselect: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
[root@node1 ~]# ll -h
总用量 620K
-rw-------. 1 root root 970 8月 17 18:50 anaconda-ks.cfg
-rw-r--r--. 1 root root 16K 8月 17 18:50 install.log
-rw-r--r--. 1 root root 4.1K 8月 17 18:48 install.log.syslog
-rw-r--r-- 1 root root 294K 10月 11 15:57 mysql.rrd
-rw-r--r-- 1 root root 294K 10月 10 21:53 rrdtool-1.3.8-6.el6.x86_64.rpm

4.抓取多少

1
2
[root@node1 ~]# mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'
5

5.更新RRD数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@node1 ~]# vim getselect.sh
#!/bin/bash
#
while truedo
    SELECT=`mysql --batch -e "show global status like 'com_select'" awk '/Com_select/{print $2}'`
    rrdtool update mysql.rrd N:$SELECT
    sleep 3
done
[root@node1 ~]# bash -n getselect.sh
[root@node1 ~]# bash -x getselect.sh
true
++ mysql --batch -e 'show global status like '\''com_select'\'''
++ awk '/Com_select/{print $2}'
+ SELECT=10
+ rrdtool update mysql.rrd N:10
sleep 3
true
++ awk '/Com_select/{print $2}'
++ mysql --batch -e 'show global status like '\''com_select'\'''
+ SELECT=11
+ rrdtool update mysql.rrd N:11
sleep 3
true
++ mysql --batch -e 'show global status like '\''com_select'\'''
++ awk '/Com_select/{print $2}'
+ SELECT=12
+ rrdtool update mysql.rrd N:12

注,让那一个本子一向进行着。

6.开立1个测试数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node1 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 5.1.69 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database testdb;
Query OK, 1 row affected (0.01 sec)
mysql> use testdb;
Database changed
mysql> create table tb1 (id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name char(50) NOT NULL);
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| tb1       |
+------------------+
1 row in set (0.00 sec)
mysql>

7.创立3个剧本不断的插入数据并询问

1
2
3
4
5
6
7
8
9
10
[root@node1 ~]# vim insert.sh
#!/bin/bash
#
for in {1..200000}; do
    mysql -e "INSERT INTO testdb.tb1(name) VALUES ('stu$I')"
    mysql -e "SELECT * FROM testdb.tb1" &> /dev/null
done
~
[root@node1 ~]# bash -n insert.sh
[root@node1 ~]# bash -x insert.sh

8.翻看一下CR-V帕杰罗D数据库更新的数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
[root@node1 ~]# rrdtool fetch -r 3 mysql.rrd AVERAGE
1381478757: -nan
1381478760: -nan
1381478763: -nan
1381478766: -nan
1381478769: -nan
1381478772: -nan
1381478775: 2.7153386392e-01
1381478778: 3.2831536999e-01
1381478781: 3.2891623754e-01
1381478784: 3.2705226490e-01
1381478787: 3.2799497906e-01
1381478790: 3.2750147283e-01
1381478793: 3.2962107218e-01
1381478796: 3.3022497969e-01
1381478799: 3.3027211905e-01
1381478802: 3.3020369194e-01
1381478805: 3.2946024073e-01
1381478808: 3.2988230260e-01
1381478811: 3.2969005472e-01
1381478814: 3.2974230463e-01
1381478817: 3.3001057711e-01
1381478820: 3.3019278582e-01
1381478823: 3.3083777490e-01
1381478826: 3.3015850009e-01
1381478829: 3.2968813815e-01
1381478832: 3.3021007195e-01
1381478835: 3.2890877932e-01
1381478838: 3.2919982365e-01
1381478841: 3.2820752812e-01
1381478844: 3.2498916047e-01
1381478847: 3.2435105446e-01
1381478850: 3.2631508451e-01
1381478853: 3.2927988387e-01
1381478856: 3.3061808059e-01
1381478859: 3.3065099981e-01
1381478862: 3.3079060547e-01
1381478865: 3.2993297013e-01
1381478868: 3.2998088978e-01
1381478871: 3.3045720109e-01
1381478874: 3.3052361682e-01
1381478877: 3.3021445518e-01
1381478880: 3.3033678729e-01
1381478883: 3.3017146110e-01
1381478886: 3.2932443118e-01
1381478889: 3.2872916025e-01
1381478892: 3.2942230122e-01
1381478895: 3.3004157568e-01
1381478898: 3.3035752652e-01
1381478901: 3.3026495130e-01
1381478904: 4.2927608935e-01
1381478907: 5.6199888336e-01
1381478910: 3.2960053815e-01
1381478913: 3.3019513627e-01
1381478916: 3.3008973582e-01
1381478919: 3.3023471404e-01
1381478922: 3.3044897038e-01
1381478925: 3.3025127245e-01
1381478928: 3.2999671137e-01
1381478931: 3.2995130475e-01
1381478934: 3.3001845566e-01
1381478937: 3.3004261932e-01
1381478940: 3.2985954162e-01
1381478943: 3.2962262303e-01
1381478946: 3.3033462847e-01
1381478949: 3.3000997317e-01
1381478952: 3.3023836505e-01
1381478955: 3.2987551061e-01
1381478958: 3.3038940726e-01
1381478961: 3.3047901095e-01
1381478964: 3.2999606597e-01
1381478967: 3.3021352982e-01
1381478970: 3.2998445954e-01
1381478973: 3.3029458891e-01
1381478976: 3.3009257605e-01
1381478979: 3.3008453893e-01
1381478982: 3.2998650516e-01
1381478985: 3.3014434356e-01
1381478988: 3.2950044395e-01

注,大家可以看到先天早就有诸多的多少了,上边大家来简单的炮制一询问曲线图。

9.制作查询曲线图

1
2
[root@node1 ~]# rrdtool graph mysql.png -s 1381478754 -t "mysql select" -v "selects/3" DEF:select3=mysql.rrd:mysqlselect:AVERAGE:step=3 LINE1:select3#FF0000:"select"
497x174

10.取出mysql.png图片并查阅

图片 44

图片 45

好了,到那边大家KugaRubiconDTool的讲解就满门告终了,想询问愈多的中华V逍客DTool相关的文化一方面我们能够参考官方文书档案,另一方面大家可以参见一下那篇博客http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=864861&page=1,作者认为照旧写的可比详细的,好了这一篇博客就到那边了,希望大家具有收获吧^_^……

 

正文出自 “Share your knowledge …
博客,请务必保留此出处http://freeloda.blog.51cto.com/2033581/1307492

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图