使用了RRDtool製作走勢圖

 一、安裝

centos或者redhat默認的yum包中是不包括rrdtool的

cd /etc/yum.repos.d/

vim dag.repo


[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el5/en/$basearch/dag
gpgcheck=0
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1

yum install rrdtool

which rrdtool #可以看一下安裝的運行目錄

這樣就安裝完成了

二、使用rrdtool工具創建圖形

先創建一個常用變量的配置文件

vim rrd.conf


#!/bin/bash
RRDTOOL='/usr/bin/rrdtool'
FILE='/var/www/rrdtool/rrdtool.rrd' #存儲文件
HOST='192.168.0.1'
OUTPUT='/var/www/rrdtool/rrdtool.png' #存儲圖片

創建生產rrd文件腳本

vim createrrd.sh


#!/bin/bash
. rrd.conf
$RRDTOOL create $FILE -s 60 \ #每60秒一個點
DS:ping:GAUGE:120:0:65535 \   #120:表示到120秒的時候傳進來的點有效,65535:表示這個點的最大值
RRA:AVERAGE:0.5:1:2880  #1表示不壓縮點,總共2880個點
RRA:AVERAGE:0.5:5:2880  #5表示5個點進行壓縮,比如上面設置1分鐘一個點,這裏5就表示5分鐘一個點

執行了這個腳本後,就會生成rrdtool.rrd文件,這個就是圖形點的數據

vim updaterrd.sh #寫數據進rrd文件


#!/bin/bash

. rrd.conf
UPDATECMD=$(ping -c 3 -w 6 $HOST | grep rtt | awk -F "/" '{ print $5 }' )
$RRDTOOL update $FILE N:$UPDATECMD #測試數據

上面的語句執行後,就在rrd中生成數據了,可以通過以下命令來查看


rrdtool fetch rrdtool.rrd AVERAGE

創建生成圖形的腳本

vim createimg.sh


#!/bin/bash
. rrd.conf
$RRDTOOL graph $OUTPUT \
        -t "WAN Ping" -v "Time in ms" \
        --start="now-1d" \
        --end="now" \
        --height="120" \
        --width="440" \
        -c "BACK#000000" \
        -c "SHADEA#000000" \
        -c "SHADEB#000000" \
        -c "FONT#DDDDDD" \
        -c "CANVAS#202020" \
        -c "GRID#666666" \
        -c "MGRID#AAAAAA" \
        -c "FRAME#202020" \
        -c "ARROW#FFFFFF" \
        "DEF:ping_time=$FILE:ping:AVERAGE" \
        "CDEF:shading2=ping_time,0.98,*" "AREA:shading2#F90000:$HOST" \
        "GPRINT:ping_time:LAST:Last\: %5.2lf ms" \
        "GPRINT:ping_time:MIN:Min\: %5.2lf ms" \
        "GPRINT:ping_time:MAX:Max\: %5.2lf ms" \
        "GPRINT:ping_time:AVERAGE:Avg\: %5.2lf ms" \
        "CDEF:shading10=ping_time,0.90,*" "AREA:shading10#E10000" \
        "CDEF:shading15=ping_time,0.85,*" "AREA:shading15#D20000" \
        "CDEF:shading20=ping_time,0.80,*" "AREA:shading20#C30000" \
        "CDEF:shading25=ping_time,0.75,*" "AREA:shading25#B40000" \
        "CDEF:shading30=ping_time,0.70,*" "AREA:shading30#A50000" \
        "CDEF:shading35=ping_time,0.65,*" "AREA:shading35#960000" \
        "CDEF:shading40=ping_time,0.60,*" "AREA:shading40#870000" \
        "CDEF:shading45=ping_time,0.55,*" "AREA:shading45#780000" \
        "CDEF:shading50=ping_time,0.50,*" "AREA:shading50#690000" \
        "CDEF:shading55=ping_time,0.45,*" "AREA:shading55#5A0000" \
        "CDEF:shading60=ping_time,0.40,*" "AREA:shading60#4B0000" \
        "CDEF:shading65=ping_time,0.35,*" "AREA:shading65#3C0000" \
        "CDEF:shading70=ping_time,0.30,*" "AREA:shading70#2D0000" \
        "CDEF:shading75=ping_time,0.25,*" "AREA:shading75#180000" \
        "CDEF:shading80=ping_time,0.20,*" "AREA:shading80#0F0000" \
        "CDEF:shading85=ping_time,0.15,*" "AREA:shading85#000000" >/dev/null

創建一個html頁面

vim rrdtool.html


<html>
<body>
<img src="rrdtool/rrdtool.png" />
<body>
</html>

OK,到這裏就完成了整個rrdtool的簡單創建過程。

設置環境變量export LANG=en_US.UTF-8 #可以解決編輯html文件輸入中文問題

推薦看的文章:http://www.study-area.org/tips/rrdtool/rrdtool.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章