録画サーバに導入しているmuninでHDDの温度監視をしています。
muninのズームアップ機能がうまく動かないです。月単位や年単位は表示されますが、期間を指定しての表示ができないのです。監視を始めてからのデータを表示し、さらに移動平均を表示するようにしました。
rrdtoolのgraphを使用するという方法を選びました。
期間を指定してグラフを表示
以下のように記述しました。
rrdtool graph /recorder/temp.png --imgformat PNG \ --title "HDD temperature" \ --end now \ --start 20180624 \ --width 480 --height 250 \ --lower-limit 33 \ --upper-limit 48 \ --rigid \ DEF:max=/var/lib/munin/rec/rec-hddtemp_smartctl-sda-g.rrd:42:MAX \ LINE1:max#00CF00:"MAX"
以下のようなグラフが作成されます。
悩んだところは、下から2行目の「DEF:max=・・・」の記述です。以下の記事を参考にしました。
「DEF:変数名=ファイル名:データソース名:統合関数名」で、変数名に一時的な変数名を指定して、.rrd からデータを取得します。まぁ、基本的にデータソース名と同じものを指定してやるのが、わかりやすくていいんだけど。(http://www.jp-z.jp/linux/rrdtool.html#graph)
ただ、このデータソース名がわからなくて、、、。
データソース名は「rrdtool info」で表示します。データソースはds[42]とありまして、この「42」がデータソース名なのでした。
# rrdtool info /var/lib/munin/rec/rec-hddtemp_smartctl-sda-g.rrd filename = "/var/lib/munin/rec/rec-hddtemp_smartctl-sda-g.rrd" rrd_version = "0003" step = 300 last_update = 1540728006 header_size = 2872 ds[42].index = 0 ds[42].type = "GAUGE" ds[42].minimal_heartbeat = 600 ds[42].min = NaN ds[42].max = 1.0000000000e+02 ds[42].last_ds = "35" ds[42].value = 2.1000000000e+02 ds[42].unknown_sec = 0
移動平均を表示する。
続いて、移動平均を表示します。上記の定義に2行を追加しました。
rrdtool graph /recorder/temp.png --imgformat PNG \ --title "HDD temperature" \ --end now \ --start 20180624 \ --width 480 --height 250 \ --lower-limit 33 \ --upper-limit 48 \ --rigid \ DEF:max=/var/lib/munin/rec/rec-hddtemp_smartctl-sda-g.rrd:42:MAX \ LINE1:max#00CF00:"MAX" \ CDEF:value2=max,604800,TREND \ LINE2:value2#CCCCCC:"moving ave"
以下のようにグラフが表示されます。グレーの線が移動平均です。7日の移動平均としています。
下から2行目の「CDF:・・・」の記述については、「rrdtool」と「移動平均」をキーワードに検索すると、様々な記事が出てきます。
604800という数字は7日という意味です。1日が86400秒で、7日で604800秒です。
参考にした記事
以下の記事を参考にしました。