zabbixで東京電力の使用率を監視

前回の続きです。

zabbixで東京電力の値を監視してみようかと思う。

使用量は出たんですけれど、ピーク容量が変わるんで、いったいどれだけ危ないのかが不明です。
そこで、提供されているCSVの3行目がピーク時供給力なので、現在の値から割ってみようかと。

2回もwgetするのは無駄な感じですが、ファイルに落としたり変数に入れるのもどうかなーって思ったので
とりあえず動くソースにしました。いい意見募集中です。
ファイル名は前回と同じで、引数にrate (さかのぼる分数) で取得できるようにしました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh
 
#source ~/.bashrc
JUYO_URL='http://www.tepco.co.jp/forecast/html/images/juyo-j.csv'
DATE_FMT='+%Y/%-m/%-d,%-H:'  # 分は5分おきと1時間おきがあるので含めない。
 
 
WGET='wget -q -O - '
 
 
case "$1" in
min|rate)
  MIN=$((`date -d -${2}min +%M`/5*5))
  DATE=`date -d -${2}min ${DATE_FMT}`
  ;;
hour)
  MIN=00
  DATE=`date -d -${2}hour ${DATE_FMT}`
  ;;
 
*)
  echo $"Usage: $0 {min 1-59|rate 1-59|hour 1-23} \$2 equal before time"
  exit 1
esac
 
 
PEEK=`${WGET} ${JUYO_URL} | head -3 | tail -1 | cut -d ',' -f 1`
INSTANT=`${WGET} ${JUYO_URL} | fgrep "${DATE}${MIN}" | tail -1 | cut -d ',' -f 3 | tr -d '\r'`
 
case "$1" in
min|hour)
   echo ${INSTANT}
   ;;
 
rate)
   if [ ! -z ${INSTANT} ];then
     echo "scale=2; ${INSTANT} * 100/${PEEK}" | bc
   fi
   ;;
*)
  echo $"Usage: $0 {min 1-59|rate 1-59|hour 1-23} \$2 equal before time"
  exit 1
esac

tr -d '\r' はなぜか ^M の改行コードが入っていたので、とらないとecho の時に改行されちゃうので削除用です。
bcなんて初めて使いましたけど、scale=2 のここを変えれば、小数点以下を変えられるとか。

参考URLです。

http://www.booran.com/menu/scr/math.html

http://x68000.q-e-d.net/~68user/unix/pickup?tr

設定です。

使用率の設定

こんな感じで設定しました。15分前の値をとってきて、0:00-1:00は30分おき。 大体、10分前でもいいみたいですけどね。6-8分で取得できない場合もあるんで大事を取って15分←慎重すぎる。

明日また、取得したグラフは貼り付けたいと思います。

7/7 追記
グラフを張り付けようと思ったらこんな時間に。そして変なグラフになってて不思議に。
7月7日電力量グラフ

配布元のページを見に行ったら、お詫びが出てました。

zabbix で監視して検知できるので、メール出すようなトリガー作りますよ・・・・?っていろんな人が思うかも。

0:00~1:15まで更新が行われないのは仕様かと思ってましたが、もしかして障害だったとか??(邪推)
0:00 で止まって、4:00 ってlinux系のシステムだと、日時CRONが走る時間で解消しているので、
ログとかがたまりすぎてディスク容量の圧迫で新しいファイルを生成できなかったんじゃないかと推測。
確か、tmpwatchがゴミを消す時間だから、消した後にファイルちょっと置けて、しばらく更新できてたけど夜中だから発見遅れたとかじゃないでしょうか。

そういえば、7/6 の昼データで、15分前のデータも取れない時があったらしく、ポリシーを20分前にしています。昼休みと若干ずれているのはそのせいです。