電気予報として7/1からスタートのこのページ。
http://www.tepco.co.jp/forecast/index-j.html
現在の値はこちら。いろいろとれるみたいだけれど、5分ごとの更新情報に現れる値をzabbixでとってみようと
twitterでつぶやいてた人がいたので簡単にシェルスクリプトで実装。
# cat /usr/local/zabbix/sbin/ele_forecast.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/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) 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|hour 1-23} \$2 equal before time" exit 1 esac ${WGET} ${JUYO_URL} | fgrep "${DATE}${MIN}" | tail -1 | cut -d ',' -f 3 |
使った感じはこんなもんですね。第一引数に時間か分を入れて、第二引数にはどれくらいさかのぼるか。
# ./ele_forecast.sh hour 1
3568
]# ./ele_forecast.sh hour 2
3754
# ./ele_forecast.sh hour 3
3859
# ./ele_forecast.sh hour 4
3863
# ./ele_forecast.sh hour 5
3749
こちらは分
# ./ele_forecast.sh min 13
3210
# ./ele_forecast.sh min 32
3296
# ./ele_forecast.sh min 40
3339
正しい動きかどうかは、cut のところを消して確かめてみてくださいな。※試した時のデータはこの記事の一番下に書きました。
んでは、このアイテムを登録します。
# vi /etc/zabbix/zabbix_agentd.conf
UserParameter=denki.value[*],/usr/local/zabbix/sbin/ele_forecast.sh $1 $2
再起動して
# /etc/init.d/zabbix_agentd_ctl restart
確かめます。
# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k denki.value[min,30]
3163
でも、エラーが出ちゃったのでいろいろ書き直し。
source ~/.bashrc の部分は、zabbixユーザーでzabbix_getを起動しないとだめなので一時的にコメントアウト。なくても動くと思うけど、だめならすべてのコマンドを絶対パスに。
あと、min の時に date -d -${2}min の部分が抜けてて、日付変わってアウトとか。
そもそも、東京電力の更新が遅いので、min だと10分から20分くらいは前のデータを取らないとNGになることがあるかもです。
30270:20110703:235807.420 Zabbix Agent started. Zabbix 1.8.4 (revision 16604). 30271:20110703:235807.421 zabbix_agentd collector started 30272:20110703:235807.423 zabbix_agentd listener started 30273:20110703:235807.424 zabbix_agentd listener started 30274:20110703:235807.424 zabbix_agentd listener started 30275:20110703:235807.425 zabbix_agentd active check started [127.0.0.1:10051] /usr/local/zabbix/sbin/ele_forecast.sh: line 3: /root/.bashrc: Permission denied /usr/local/zabbix/sbin/ele_forecast.sh: line 3: /root/.bashrc: Permission denied
で、アイテムを作りました。
とりあえず、日付が変わったところがどうなるかわからないのと、値が出てくるのが様子見なので、30分前のデータを5分間隔0:10~23:59の間っていう形で登録。
これ、更新頻度が通常と違う時間帯を入力するところですね。間違えました。
ああっ。。
単位が3.5K万Kwっていう頭悪い感じに。
夜遅いので、続きはまた今度にしよう。。。
7/4追記
http://kodai74.blogspot.com/2011/07/zabbix.html?spref=tw
KodaiさんがPython でYahooのAPIを使ったもの作ってました。
いいなぁ。xmlを扱うにもシェルスクリプト並みのこの手軽さがPythonの魅力かと。
後でうちにも導入しようかなと思います。
使用率については確かに、計算しないと出せないですね。
7/5追記。
3.5k万kw という表記ですが、乗数を10000 x 1000 加えることによって単位はGwになりましたが、正常になりました。
ついでに、30分前の値をとるところは15分前にしてテスト継続で、更新間隔を1800秒(30分)にした0:00~1:00 という部分も。
日付が変わっても、1時ちょっとすぎまでは更新しないみたいなので。
0:00~1:00付近が途切れているのは、ファイルの内容に更新がないからです。
続きです。
このスクリプトを作るときに元となったデータの抜粋。
2011/7/3,14:30,3720 2011/7/3,14:35,3719 2011/7/3,14:40,3721 2011/7/3,14:45,3724 2011/7/3,14:50,3726 2011/7/3,14:55,3719 2011/7/3,15:00,3719 2011/7/3,15:05,3728 2011/7/3,15:10,3724 2011/7/3,15:15,3737 2011/7/3,15:20,3745 2011/7/3,15:25,3717 2011/7/3,15:30,3714 2011/7/3,15:35,3720 2011/7/3,15:40,3716 2011/7/3,15:45,3714 2011/7/3,15:50,3726 2011/7/3,15:55,3703 2011/7/3,16:00,3696 2011/7/3,16:05,3710 2011/7/3,16:10,3716 2011/7/3,16:15,3723 2011/7/3,16:20,3721 2011/7/3,16:25,3729 2011/7/3,16:30,3731 2011/7/3,16:35,3754 2011/7/3,16:40,3744 2011/7/3,16:45,3739 2011/7/3,16:50,3745 2011/7/3,16:55,3731 2011/7/3,17:00,3751 2011/7/3,17:05,3742 2011/7/3,17:10,3745 2011/7/3,17:15,3728 2011/7/3,17:20,3731 2011/7/3,17:25,3742 2011/7/3,17:30,3745 2011/7/3,17:35,3743 2011/7/3,17:40,3751 2011/7/3,17:45,3764 2011/7/3,17:50,3751 2011/7/3,17:55,3753 2011/7/3,18:00,3749 2011/7/3,18:05,3746 2011/7/3,18:10,3740 2011/7/3,18:15,3752 2011/7/3,18:20,3755 2011/7/3,18:25,3767 2011/7/3,18:30,3766 2011/7/3,18:35,3786 2011/7/3,18:40,3790 2011/7/3,18:45,3817 2011/7/3,18:50,3821 2011/7/3,18:55,3838 2011/7/3,19:00,3863 2011/7/3,19:05,3899 2011/7/3,19:10,3896 2011/7/3,19:15,3895 2011/7/3,19:20,3900 2011/7/3,19:25,3887 2011/7/3,19:30,3891 2011/7/3,19:35,3884 2011/7/3,19:40,3885 2011/7/3,19:45,3892 2011/7/3,19:50,3866 2011/7/3,19:55,3875 2011/7/3,20:00,3859 2011/7/3,20:05,3866 2011/7/3,20:10,3852 2011/7/3,20:15,3842 2011/7/3,20:20,3824 2011/7/3,20:25,3808 2011/7/3,20:30,3794 2011/7/3,20:35,3777 2011/7/3,20:40,3765 2011/7/3,20:45,3769 2011/7/3,20:50,3768 2011/7/3,20:55,3764 2011/7/3,21:00,3754 2011/7/3,21:05,3730 2011/7/3,21:10,3711 2011/7/3,21:15,3710 2011/7/3,21:20,3678 2011/7/3,21:25,3671 2011/7/3,21:30,3647 2011/7/3,21:35,3637 2011/7/3,21:40,3599 2011/7/3,21:45,3596 2011/7/3,21:50,3584 2011/7/3,21:55,3583 2011/7/3,22:00,3568 2011/7/3,22:05,3558 2011/7/3,22:10,3530 2011/7/3,22:15,3530 2011/7/3,22:20,3512 2011/7/3,22:25,3521 2011/7/3,22:30,3491 2011/7/3,22:35,3474 2011/7/3,22:40,3447 2011/7/3,22:45,3439 2011/7/3,22:50,3415 2011/7/3,22:55,3378 2011/7/3,23:00,3360 2011/7/3,23:05,3349 2011/7/3,23:10,3339 2011/7/3,23:15,3296 2011/7/3,23:20,3288 2011/7/3,23:25,3280 2011/7/3,23:30,3238 2011/7/3,23:35,3210 2011/7/3,23:40,3186 2011/7/3,23:45,3163