您的位置:首页 > 运维架构

企业级监控系统之二RRDTool

2016-04-01 00:00 218 查看
一、系统环境

本地Linux: Centos 6.5 x64 192.168.47.139

RRDTool: 1.3.8

二、系统概述

1.Round Robin Database Tool 架构





RRD:一个指定固定大小的环状数据库,每个一段间隔时间(默认300s)去获取直接数据节点PDP,保存含有时间戳的(可以多个不同)时间序列(Data Source)数据到对应的时间槽上,存储上限时会覆盖原有数据。RRD创建时,需要制定保存数据的时间起点,和间隔时间,扇形数据库以此划分数据槽。

RRA:轮转归档信息,获取的数据节点PDP(Primary Data Point)存储到数据库的临时数据区域,获取的PDP以(可以多个不同)解析度(时间跨度resolution)分组归档、进行(可以多个不同)聚合函数运算后的聚合数据节点CDP(Consolidation Data Point)放到对应数据槽。





聚合函数CF:LAST MAX MIN AVERAGE

xff DS多大比例UNKNOW为UNKNOW,steps解析度,row保存数据范围(时间/一个RRA)

2.rrdtool操作

create 创建空的轮转数据库

update 填充数据

updatev

graph 绘图

dump 依次取出数据

fetch 只取一根数据

info 查看文件格式

3.数据源类型

GAUGE(初始值)、COUNTER(相对值递增)、DERIVE(相对值)、ABSOLUTE(相对初始值)

min-max 存取的数据范围 heartbeat 多少时间内等待,越过就unknow

三、安装和使用

1.安装、创建数据库文件

[root@localhost /usr/local/src]#yum install rrdtool



[root@localhost /usr/local/src]#rrdtool create test.rrd --step 5 DS:testds:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:AVERAGE:0.5:10:3456 RRA:AVERAGE:0.5:100:1210

rrdtool命令格式



[root@localhost /usr/local/src]#rrdtool info test.rrd

查看rrd文件信息




2.插入数据

[root@localhost /usr/local/src]#rrdtool update test.rrd N:$RANDOM

默认是插入到时间内N的DS1,多个可以指定N:30:40

[root@localhost /usr/local/src]#rrdtool fetch -r 5 test.rrd AVERAGE
[root@localhost /usr/local/src]#rrdtool fetch -r 50 test.rrd AVERAGE
[root@localhost /usr/local/src]#rrdtool fetch -r 10 test.rrd AVERAGE

查看step5 50 10下AVERAGE聚合的数据

3.绘图

rrdtool graph object_filename

[root@localhost /usr/local/src]#rrdtool graph





[root@localhost /usr/local/src]#vim gn.sh

给test.rrd赋DS数据



[root@localhost /usr/local/src]#rrdtool graph a.png --step 5 -s 1459583645 -t Test -v vtest DEF:vtest=test.rrd:testds:AVERAGE LINE1:vtest#ff0000:"testline"



导出到windows查看



[root@localhost /usr/local/src]#rrdtool graph b.png -s 1459583645 -t Test -v vtest DEF:vtest=test.rrd:testds:AVERAGE:step=5 DEF:test2=test.rrd:testds:AVERAGE:step=50 LINE1:vtest#ff0000:"testline" LINE1:test2#00ff00:"testline2"



导出windows查看



[root@localhost /usr/local/src]#rrdtool create mysql2.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 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@localhost /usr/local/src]#vim getsel.sh

给mysql.rrd赋DS数据



创建数据库、表



给DS数据增大



[root@localhost /usr/local/src]#rrdtool graph mysql.png -s 1459746534 -t "mysql select" -v "selects/3" DEF:select3=mysql.rrd:myselect:AVERAGE:step=3 LINE1:select3#FF0000:"SELECT"

查看绘成的mysql.png



[root@localhost /usr/local/src]#rrdtool graph mysql.png -s 1459746534 -t "mysql select" -v "selects/3" DEF:select30=mysql.rrd:myselect:AVERAGE:step=30 LINE1:select30#FF0000:"SELECT"

绘制每30秒一次的平均值



GPRINT vnam:CF:format 显示最大值最后值等

[root@localhost /usr/local/src]#rrdtool graph mysql.png -s 1459746534 -t "mysql select" -v "selects/3" DEF:select30=mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=mysql.rrd:myselect:MAX:step=30 LINE1:select30#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUM\: %6.21f"

我测试的时候ERROR: bad format for GPRINT in 'MAXIMUM: %6.21f' 不指定格式也会报错

[root@localhost /usr/local/src]#rrdtool graph mysql.png -s 1459746534 -t "mysql select" -v "selects/3" DEF:select30=mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=mysql.rrd:myselect:MAX:step=30 DEF:last30=mysql.rrd:myselect:LAST:step=30 LINE1:select30#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUM\: %6.21f" GPRINT:last30:LAST:"LAST\: %6.21f"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RRDTool