Last Update: "2007/04/11 09:54:42 makoto"

rrdtool

じつはかんたん !! RRDTOOL
http://www.hawkeye.ac/micky/SA/RRDTOOL.files/frame.htm
MANUAL (日本語)
http://ciel.hio.jp/translation/rrdtool/manual/index.html
RRDtoolとは? (藤繁 航さん)
http://www.photonway.net/AboutRrdtool.html
[PDF] RRDtoolを使う (久保田 拓朗さん) 2005/02/26
非常に良くまとまっています。このうち、MRTG との比較をしている p6 はまず見ておきたい項目です。
http://www.bonz.squares.net/~takuro/rrdtool-LAST-version1.1.pdf (creativecommons)
RRD とは Round Robin Database で、決った長さの譜にデータを記録することから名付け られています。溢れたデータは捨てられます。このためディスクが溢れるという心配が ありません。また MRTG を作った人と同じ人が作っているので、MRTG に何となく不満や 不足を感じている用途には最適です。 使い方は大きく次のように 容物(create) -> 保存(update) -> 描画(graph) の三段階です。実際の運用では、このうち update -> graph を繰返すことになります。 ( 以下、色をつけているのはわずらわしく見えますが、良く似た db-name と ds-name が何回も出て来るので、区別するため止むを得ず色付けしています。 )
  1. データべースを用意する -- create
    用意すると言っても、 容物(いれもの)の名前線になるデータの名前 (<ds-name>)と そのデータの型 を決めるだけです。中身はありません。 ここの <ds-name> が線一本に対応します。 データべースの名前の例としては demo1.rrd 等があります。その中に複数のデータの名前を用意します。 <db-name> の中に複数のデータを用意します。 これを自由に組合せて描画が可能です。
    <db-name> <ds-name 1>
    <ds-name 2>
    create した後には、 <db-name> <ds-name> の組合せでデータを更新(保存)したり、描画したりします。
    rrdtool  create <db_name>
      --start <start time> :step <time step>  
       DS:<ds-name>
         :<ds-type>                  GAUGE | COUNTER  | DERIVE | ABSOLUTE
         :<heartbeat>
         :<min>
         :<max> 
      RRA:<cf>:<xff>:<steps>:<rows>
    
    この rrdtool create では (1) 時刻の情報 (2) 資料(Data Source)の形式、(3) RRA (round robin archive) の形式 の三つを指定します。
    (1) 時刻情報
    開始と終了を UNIX 時間で指定します
    (2) Data Source
    資料について、名前、型、 間隔、最小値、最大値を指定します。型は GAUGE | COUNTER | DERIVE | ABSOLUTE のうちから選びます。
    (3) RRA
    cf consolidation function 統合機能
    AVERAGE, MIN, MAX, LAST
    平均、最大、最小、最後のそれぞれについて以下の三点を指定します
    xff xfiles factor unknown 区間の指定
    steps 統合され保存される点の数
    rows 世代数
    実際例
    rrdtool create temperature.rrd
      --step 300
      DS:temp:GAUGE:600:-273:5000
      RRA:AVERAGE:0.5:1 :1200 
      RRA:MIN    :0.5:12:2400
      RRA:MAX    :0.5:12:2400
      RRA:AVERAGE:0.5:12:2400
    
  2. 実際にデータを取込む (更新) update
    rrdtool update <db_name>
         [-t ds-name      [:ds-name]...]        (template)
      N | timestamp:value [:value...] 
         [timestamp:value [:value...] ...]
    
    -t の指定は ds-name が一つしかなければ省略可能です。 その次の最初の数値が時刻です。この 時刻は Unix time 秒、シリアル秒で指定します。 N と書けば現在を意味します。また 負を指定すれば、現在からさかのぼっての指定になります。 <ds-type> が COUNTER, DERIVE, ABSOLUTE 型の時には正確な時刻が重要です。 その後に続く値は実際に保存する数値になります。データが不明の時には U が使えます。 例えば次のように操作します。
    rrdtool update demo1.rrd N:3.44:3.15:U:23
    
  3. グラフを描く graph
    rrdtool graph fine_name <db_name>
    --start <start> --end <end>
    DEF: <definition>
    < line_spec>
    
    (1) 出力先の名前 (譜名) (2) 時刻情報 (3) 変数を決めて取出方法の指定 (4) 前項で決めた変数について描画方法を指定