amegonの雑なブログ

日常的なものから技術的なものまでメモの雑記

気圧の変動を検知してアラートをあげる仕組みを作った

概要

翌日の気圧の情報を天気予報サイトの API で取得し、気圧の変動が激しい場合に自身にアラートをあげる仕組みです。
気圧データの監視を通知に Zabbix を使用しています。が SNMP はまったく使用していません。。

構築理由

今非常に頭痛に悩まされています。。

ひどい時は一日中痛みがひどく、日常生活にも大きな影響をうけています。

そんな中、自身の頭痛の発生タイミングと気圧の変動を比べてみたところ、かなりの発生タイミングで一致していることがわかりました。

気圧の変動を検知して自身に連絡する仕組みを作ってしまおうと思い立ち、今回の構築に至りました。

別途サービスで展開しているところも見受けられ加入を考えましたが、通知のしきい値を自身でコントロールしたいと思ったことと自身のスキルチェック(API と Zabbix の連携)とあわせて構築することにしました。

構成

ざっくりこんな感じです。

[OpenWetherMap] <=== API ===> [自作スクリプト設置の PC等] === Zabbix Sender ===> [Zabbix Server]
  • PHP で書いた自作のスクリプトを用いて、OpenWeatherMap から API で 24時間後の気圧値を取得

  • スクリプトは取得した気圧値を Zabbix Sender を使用して Zabbix に送信

  • Zabbix は受信した気圧値をヒストリとして保存

  • Zabbix はトリガーで設定されている気圧値の変動があった際に通知をあげる

構築メモ

スクリプトを作成して GitHub に公開しました。
使い方をそちらに書いていますので、よければご参照ください。

github.com

現状の感じ

監視データの確認

Zabbix で保存されるデータは24時間後のデータなので、Zabbix でグラフを見る時は以下のように設定してみてください。
以下の画像はダッシュボードに表示させてみた例です。
凡例で 予報 となっているものが今回スクリプトで取得した24時間後の予報データです。(グラフで黄色の表示)
もう片方(グラフで緑の表示)は別途 API で現時点の気圧値を取得していて、あとで予報と実際の値を比較しようと思っています。

通知

最新データの時間からさかのぼって6時間の間に気圧の変動が 3hpa あった場合に通知するようにしてみました。
このアラートを受けたら変動前に薬を飲もうとおもっています。