Zabbix 外部スクリプトで天気を監視(OpenWeatherMap)

2014年10月31日  カテゴリー:Zabbix プログラム PHP  タグ: ,
Pocket
LINEで送る

Zabbixの外部スクリプトを使って天気を監視してみました。仕組みとしては、気象データの無料APIを提供するオンラインサービス OpenWeatherMap から天気をデータを取得してZabbixデータベースに記録します。

今回はZabbixバージョン2.4を使っての設定です。こちらで天気監視の表示サンプルを確認できます。(フィルターで「1d」を選択してください)

OpenWeatherMap の APIキーを取得

まずはじめに、OpenWeatherMap の APIキーを取得します。APIキーはメールアドレスがあれば、取得するのに1分もかかりません。以前は必要ありませんでしたが、最近APIキーが必須になったようです。

OpenWeatherMap のサインアップページに、必要事項を記入して「Create Account」をクリックします。
zabbix-weather-a-01

表示されている「API key」をメモしておきます。
zabbix-weather-a-02

APIキーの取得は以上です。

天気取得スクリプトの作成

・OpenWeatherMapのAPIから天気データを取得するスクリプトを作成します。
sudo vi /usr/lib/zabbix/externalscripts/getWeather.php

今回は天気名を要約するため、天気アイコンのファイル名を天気名に変換していますが、天気IDを使って詳細な天気名を取得することもできます。OpenWeatherMap API で取得した天気データ形式については下記を参照してください。

▽ Weather Data|OpenWeatherMap Wiki
http://bugs.openweathermap.org/projects/api/wiki/Weather_Data

スクリプトオーナーを zabbixユーザに変更します。

スクリプトオーナー(zabbix)に実行権限を追加します。

動作確認

第1引数で気温を取得する都市をアルファベットで指定します。例えば東京の場合は「Tokyo」となります。

天気が取得できない場合は「取得不可」と表示されますので、都市の指定を確認してください。

OpenWeatherMap API での都市の指定は「<都市名>,<国名>」(東京の場合は Tokyo,jp)で指定するのが通常のようなのですが、カンマ「,」はZabbixキーでは引数の区切りとして認識されてしまうので、今回は都市名だけの指定としています。(別の記事でTNK様からご指摘がありました。ありがとうございます)

天気取得スクリプトを Zabbixアイテムに設定

天気取得スクリプトを設置するホストを作成します。[設定]→[ホスト]→[ホストの作成]をクリック
zabbix-weather01

適当なホストを作成します。天気取得スクリプトを設置するだけの実態のないホストですのでIPアドレス等はそのままでOKです。
zabbix-weather02

作成したホストの「アイテム」をクリックします。
zabbix-weather03

「アイテムの作成」をクリックします。
zabbix-weather04

下記を設定し「追加」をクリックすれば設定完了です。天気を取得する都市は キーの設定で getWeather.php[<都市名>] の形式で指定します。
zabbix-weather05-2

Zabbix天気アイテムの表示設定

スクリーンに天気を表示できるように設定します。[設定]→[スクリーン]→[スクリーンの作成]をクリック
zabbix-weather06

適当なスクリーン名を入力して「追加」をクリックします。
zabbix-weather07

作成したスクリーンをクリックします。
zabbix-weather08

「変更」をクリック→スクリーンセルを設定し「追加」をクリックすれば設定完了です。
zabbix-weather09

[監視データ]→[スクリーン]→[天気] を選択し、フィルターで「1d」を選択すれば過去24時間分の天気が表示できます。実際の表示サンプル
zabbix-weather10

Zabbixで天気を表示して何の役に立つのかは正直疑問ですが(^^;)外部スクリプトを使えばどんなデータでも監視できることは、Zabbixの大きな魅力ですね。

スポンサーリンク
Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です