VMware 海外動向 > 第7回 天気の話をしましょう、Log Insightで!
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
CTC教育サービスはコラム「VMware 海外動向 > 第7回 天気の話をしましょう、Log Insightで! 」を公開しました。
こんにちはー。野田貴子です。今回も海外のVMware関連のコラムを意訳してご紹介します。VMwareの海外動向を理解する上での参考になれば幸いです。
IT屋のみなさんは、空調が効いた窓のない職場(自宅?)で仕事漬けになり、社会生活がslack、skype、socialcast、などのソーシャルメディアプラットフォームに制限されていませんか。もし戸外で過ごす気分を味わい、仕事とは関係のないこと、例えば天気について話せたら素敵ではないでしょうか。
この記事では、窓のないオフィスを離れずに、世界中の市の天気情報を取得し、Log Insightで視覚化する方法をお伝えします。次にシアトルの同僚と会話する際には、雨予報を的確に教えてあげて、同僚をびっくりさせてみましょう。
今回は openweathermap.org という一部無料の素晴らしい天気サービスからデータを集めます。これを複数の市の配列に対して行います。このデータはログファイルに書き込まれ、LinuxシステムのLog Insightエージェントによって収集されます。Log Insightでは「World wide current weather(世界の現在の天気)」というダッシュボードと、翌日の天気予報のダッシュボードを作成します。サンプルのコンテンツパックをインポートして手順を省略する場合は、フィールド抽出とダッシュボード生成(ステップ6やステップ7)をスキップできます。
ステップ1: http://openweathermap.org/appid から各自のパーソナルapiキーを取得します(無料アカウントで充分です)。
fig02
ステップ2: openweathermap.org の検索機能を使って収集したい天気情報の位置のリストを書き出します。geo座標や市のコードを使えますが、多くの場合は「市の名前, 国のコード」で事足ります。私の場合は「Yerevan,AM Seattle,US PaloAlto,US Sofia,BG London,UK Frankfurt,DE Sydney,AU」のように検索しました。
ステップ3: curlリクエストでAPIキーのテストをします。以下のコマンドのapiキーをステップ1で取得した各自のキーで置き換えてください。アメリカでは華氏なので、摂氏を意味する「units=metric」の部分を「units=imperia」に変えるといいでしょう。units=を省略すると、ケルビン(絶対温度)が使われます。エラーが起きた場合はダブルクオートや、ステップ1で取得したapiキーを使っているかどうかを確認してください。
root@ugurke:~# curl -s "http://api.openweathermap.org/data/2.5/weather?q=Frankfurt,DE&mode=xml&units=metric&cnt=7&APPID=905730596699e6cd7d4c70a5eb8abb86"
<current><city id="2925533" name="Frankfurt am Main"><coord lon="8.68" lat="50.12"></coord><country>DE</country><sun rise="2016-06-22T03:15:43" set="2016-06-22T19:39:05"></sun></city><temperature value="19.58" min="16.67" max="22.22" unit="metric"></temperature><humidity value="83" unit="%"></humidity><pressure value="1005" unit="hPa"></pressure><wind><speed value="1.03" name="Calm"></speed><gusts value="2.57"></gusts><direction value="288" code="WNW" name="West-northwest"></direction></wind><clouds value="12" name="few clouds"></clouds><visibility></visibility><precipitation value="19.56" mode="rain" unit="1h"></precipitation><weather number="503" value="very heavy rain" icon="10d"></weather><lastupdate value="2016-06-22T06:16:02"></lastupdate></current>
ステップ4: シンプルなシェルスクリプトでデータ取得を自動化します。以下のスクリプトはとても基本的な例ですので、好きに微調整して構いません。APIキーも記述してください。華氏にするにはUNITSで「imperial」を指定します。このスクリプトは各市に対して別々のcurlの呼び出しを行い、XMlでデータを集め、出力結果を /var/log/current.log と /var/log/forecast.log のファイルに追記します。
#!/bin/bash
# Add your own API key from http://openweathermap.org/appid
APIKEY=905730596699e6cd7d4c70a5eb8abb86
MODE=xml #json or xml
UNITS=metric #metric or imperial
COUNT=1 #forecast days
# Add City,CountryCode to the list of cities
for CITY in Yerevan,AM Seattle,US PaloAlto,US Sofia,BG London,UK Frankfurt,DE Sydney,AU
do
CURRENT=`curl -s "http://api.openweathermap.org/data/2.5/weather?q=$CITY&mode=$MODE&units=$UNITS&cnt=7&APPID=$APIKEY"`
FORECAST=`curl -s "http://api.openweathermap.org/data/2.5/forecast/daily?q=$CITY&mode=$MODE&units=$UNITS&cnt=$COUNT&APPID=$APIKEY"`
echo $CURRENT >> /var/log/current.log
echo $FORECAST >> /var/log/forecast.log
done
Log InsightがインストールされているLinuxマシンにスクリプトをコピーし、実行可能にし(chmod +x)、それをcrontabに追加します(crontab -e)。私はこの収集を10分おきに実行しているので、crontabは次のようになります。
この続きは以下をご覧ください
http://www.school.ctc-g.co.jp/vmware/columns/noda/noda07.html
ソーシャルもやってます!