通过RDDTOOL简单绘制图像
2012-07-27 11:51
169 查看
RRDTOOL 是一个强大的绘制图表的工具,下面来安装和使用RRDTOOL
************************************************************************************
一 .安装rrdtool,目前最新版本是1.4.7的版本, 在安装之前需要去下载源码包,rrdtool-1.4.7.tar.gz 下载完成之后存到系统的/usr/src目录下
ok 安装成功了,下面来说下绘制图像的几个步骤,
需要注意的是rrdtool命令参数太多了,这里就不一一介绍,
二,绘制图像的几大步骤,
1, 创建rrd数据库
2,更新数据到数据库里,
3,生成图像
下面将给一个实例来完成整个过程,
需求,监控下某台服务器的网络流量的走势图,
1.建立数据文件并更新数据到数据库里,
2. 生成图片 脚本如下
如果需要看看图片的时候就执行下此脚本, 会在/root/rrdtool目录下生成一个以当前时间为名的图片,
见图片, 此图片是我监控我自己笔记本流量三四个小时的结果, 在监控的过程中写了一个脚本来加大上下行流量,
感言: 由于rrdtool的参数太多了,在自己还没有完全晕掉之前,以迅雷不及掩耳之势,草草的写下了此篇博客,里面有好多东西自己都解释不清楚,待有时间好好总结下,再完善此篇博客! 也希望朋友们能提供一些比较有用的参数给小弟,在下感激不尽,
************************************************************************************
一 .安装rrdtool,目前最新版本是1.4.7的版本, 在安装之前需要去下载源码包,rrdtool-1.4.7.tar.gz 下载完成之后存到系统的/usr/src目录下
#cd /usr/src #tar xzvf rrdtool-1.4.7.tar.gz #cd rrdtool-1.4.7 #./configure --prefix=/usr/local/rrdtool #make #make install #ln -s /usr/local/rrdtool/bin/* /bin/
ok 安装成功了,下面来说下绘制图像的几个步骤,
需要注意的是rrdtool命令参数太多了,这里就不一一介绍,
二,绘制图像的几大步骤,
1, 创建rrd数据库
#rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880 mysql.rrd 是数据库的名字,根据自己的需要定义 --step 3 每3秒接受一次数据 DS 数据源的类型 GAUGE 保存一个数值原来的值 COUNTER 递增的数值 DERIVE 有的时候可以增有的时候可以减 例 DS:name:GAUGE:5:0:U 接收最小值为0 最大值未知 超过5秒后则不接收数据 RRA 聚合函数 AVERAGE 平均值 MAX 最大值 MIN 最小值 LAST 单前值 例 RRA:AVERAGE:0.5:10:2880 每10个做一次聚合,保存2880个这样的数据
2,更新数据到数据库里,
#rrdtool update mysql.rrd N:值1:值2 N是从单前时间开始 把“值1”的值传送给上面定义的第一个DS 把"值2"的值传送给上面定义的第二个DS 定义几个DS这里就传几个值
3,生成图像
#rrdtool graph 图片名称 -s 开始时间 -t "标题1" -v "标题2" DEF:变量1=mysql.rrd:myselect:AVERAGE:step=3 LINE1:变量1#FF0000:"线条1标题" 标题1 是显示在图片正上方的标题 标题2 是显示在图片正左边的标题
下面将给一个实例来完成整个过程,
需求,监控下某台服务器的网络流量的走势图,
1.建立数据文件并更新数据到数据库里,
#mkdir /root/rrdtool 建立一个用于保存rrdtool数据的目录 根据自己需要, #vim /root/rrdtool/Monitoring_flow.sh 脚本内容如下 #!/bin/bash rrd="/root/rrdtool/net.rrd" DS1=intput DS2=output rrdtool create $rrd --step 3 DS:$DS1:DERIVE:5:0:U DS:$DS2:DERIVE:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:LAST:0.5:1:28800 while [ 1 ];do in=`ifconfig e | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $2}'` out=`ifconfig br0 | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $2}'` rrdtool update $rrd N:$in:$out sleep 3 done
#bash /root/rrdtool/Monitoring_flow.sh
2. 生成图片 脚本如下
#vim /root/rrdtool/image.sh 内容如下 #!/bin/bash # andy_f png_name="/root/rrdtool/net.`date +%F-%H.%M.%S`.png" rrd="/root/rrdtool/net.rrd" DS1=intput DS2=output rrdtool graph $png_name -t "网络接口的出入流量" -v "默认单:字节" DEF:intput=$rrd:$DS1:AVERAGE:step=3 DEF:output=$rrd:$DS2:AVERAGE:step=3 LINE1:intput#FF0000:"接收流量 " LINE1:output#00FF00:"发送流量"
如果需要看看图片的时候就执行下此脚本, 会在/root/rrdtool目录下生成一个以当前时间为名的图片,
#bash /root/rrdtool/image.sh
见图片, 此图片是我监控我自己笔记本流量三四个小时的结果, 在监控的过程中写了一个脚本来加大上下行流量,
感言: 由于rrdtool的参数太多了,在自己还没有完全晕掉之前,以迅雷不及掩耳之势,草草的写下了此篇博客,里面有好多东西自己都解释不清楚,待有时间好好总结下,再完善此篇博客! 也希望朋友们能提供一些比较有用的参数给小弟,在下感激不尽,
相关文章推荐
- 使用xml来绘制简单的图像
- iOS图像处理(1)绘制简单的几何图形
- Python下opencv使用笔记(二)(简单几何图像绘制)
- 【新机械楼537的Kinect编程学习基础篇(一)】最简单的通过kinect获取图像的代码
- 简单笔画轨迹的绘制,并通过保存轨迹点,实现Path的保存和恢复。
- IOS图像处理(1)绘制简单的几何图形
- Project 10:简单图像的绘制
- Python-Matplotlib绘制简单图像
- 通过pyrUp和pyrDown实现图像缩放的简单程序
- (三)利用processing绘制简单规律图像
- 使用GeoGebra绘制简单函数图像
- **ANDROID**# 第七章图形与图像处理(静态处理) > Bitmap是有像素点构成的点阵图。 ------ ## 使用简单的图片 ---- * 通过Drawable对象进行访问。
- 用matlab 绘制简单二维图像
- python-opencv笔记 图像的读取和简单几何图形绘制
- Android下简单2D图像绘制
- 【OpenCV】通过鼠标在图像中绘制RotatedRect旋转矩形
- 【matplotlib】绘制简单二维、三维图像
- 通过 Python + Python Imaging Library (PIL) 生成简单函数图像
- System.Drawing 简单图像绘制
- Python下opencv使用笔记(二)(简单几何图像绘制)