B3S
menu close

電子工作

[電子工作] Raspberry Piでネットワーク負荷検知ランプを作った(前編)


はち

更新日:2021/08/11


ご無沙汰しておりました。はちです。
早いもので今年も、もうあと2ヶ月となりました。
この時期は野球が終わるシーズンでもありますので、非常に寂しい時期です…。

以前
10万PV/日を、さくらVPSとApache2で耐えた話(前編)
10万PV/日を、さくらVPSとApache2で耐えた話(後編)
を記事で投稿させていただきましたが、弊社では負荷を可視化できるツールとして、「rrdtool」と「cacti」を主に使用しております。(定番ですよね)

しかし、常日頃から可視化しているグラフを見ていればサーバー監視としては勿論十分すぎるくらいなのですが、サーバーが重くない時間帯などは、ぶっちゃけ言うと、いちいち監視しているのはめんどくさいです。
負荷が高いときや、異常が起きた場合だけ気づければ良いわけですからね。

そこで、今回はサーバーの負荷が高い場合、または接続できない状態になった場合、「点灯したり、音を鳴らすランプシステム」をRaspberry Piを用いて開発してみましたのでご紹介させていただきます。

仕組み自体は、非常に簡単なもので、

  • rrdtoolを入れているサーバー上でrrdデータをdumpまたはfetchして「CSV」または「xml」を出力する
  • ↑のシェルファイルを作成し、Cronを用いて定期的にファイル出力する
  • Raspberry Pi側で、↑の出力ファイルをCronを用いて定期的に取得し、読み込み+解析する
  • 閾値を超えていたらGPIOを操作し、ランプを点灯させたり音を鳴らす

機材選定

※今回は↑のように単品で購入したわけではなく、電子工作キットのチープなLEDを使用しています。
本当はもっとカッコいいランプを作りたいところなんですが、時間の都合でまずはブレットボードとLEDで仮組みすることにしました。
↑で紹介している圧電ブザーは12Vのもので、ラズパイで動くかはわかりませんが、僕が使った小さいものだと、音が全くしなかったので出来ればちゃんと音のなるものをつけるのをお薦めします。

GPIOの操作はどんな形でも良いのですが、今回はPHP上から操作します。
PHP上から操作すると言っても、提供されているライブラリ等を使用するわけではありません。

機材が揃ったので、実際に作っていきます。

次回へ続く。