東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

録画サーバのmuninで、HDDの温度グラフをカスタマイズして移動平均を表示した。


スポンサードリンク

録画サーバに導入している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" 

以下のようなグラフが作成されます。

f:id:padobure:20181028205337p:plain

悩んだところは、下から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日の移動平均としています。

f:id:padobure:20181028210904p:plain

下から2行目の「CDF:・・・」の記述については、「rrdtool」と「移動平均」をキーワードに検索すると、様々な記事が出てきます。

604800という数字は7日という意味です。1日が86400秒で、7日で604800秒です。

参考にした記事

以下の記事を参考にしました。