:wq!

TP-Link TL-SG105PEのPoE Auto Recovery機能とPoE HATでRaspberry Piを簡易監視する

ども、takiponeです。

遠隔に配置する機器の監視は、運用における悩みの種の一つではないでしょうか。クラウドであれば監視サービスの利用が一般的ですが、さまざまな場所にばら撒くような機器の監視は一筋縄では行きません。機器へのアクセス回線が不安定だと機器の故障と回線不調の判別が難しく、再起動などのリカバリ命令自体が届かないケースも考えられるため、ある程度現地での自律的な死活判定とリカバリの実施が望ましいところです。そこで本ブログでは、現地で比較的手軽にできる監視&リカバリ構成としてPoEをキーにしたAuto Recovery構成をご紹介します。

PoE Auto Recoveryの概要

TP-Link TL-SG105PE(以下TL-SG105PE)は5ポート中4ポートでPoE PSE(給電)をサポートするスマートスイッチで、そのPoEポートにPoE Auto Recovery機能が設定できます。PoE Auto Recoveryの仕組みは非常にシンプルです。TL-SG105PEが監視対象にPingを定期的に送出し、Pingの応答が滞ったらPoEの電源断→入して再起動します。

  • 00:08 : PoEの電源断
  • 00:23 : PoEの電源入

設定はWeb管理画面の[PoE]-[PoE Auto Recovery]で行います。画面はこんな感じ。

まずGlobal Configで[Enable]を選択し[Apply]ボタンを先にクリックして有効化します。その後Auto Recoveryを設定するポートの[Select]チェックボックスをクリックし、以下の設定項目のテキストボックスを埋めて下の[Apply]ボタンをクリックすれば有効になります。

  • Ping IP Address
  • Startup Delay
  • Interval
  • Failure Threshold
  • Break Time
  • Status

Ping IP Addressは、任意のIPアドレスを設定することが可能です。送信元は[System] - [IP Setting]のIPアドレスからPingが送出されるので、監視対象のファイヤーウォールでICMPを制限している場合は許可しましょう。他の項目はいずれも初期値で無難な値なので、特別な理由が無い限りはそのまま利用するのが良いと思います(適当にいじっていたら即座にFailureと判定され無限ループ状態した失敗談がありますw)。すごく地味な設定ですが、Break Time(電源断から電源入にするときの待ち時間)が最小3秒あるので、USBドングルなどRasPiに接続する周辺機器も確実にリセットできそうでいいなと思っています。

↑のスクリーンショットはその後何度かICMPを遮断して擬似的にFailureを起こしているところです。5回までFailureを検出すると...

電源断→入が発動し、Failuresは0にリセット、Rebootsが1になりました。

Raspberry Piの構成

Raspberry Pi 3B+および4BにはPoE向けのコネクタがあるので、PoE HATを装着することでPoE PD(受電)が可能です。手元の機材で試した限りでは、4B(メモリ8GB)では給電開始が上手くいかず、給電開始から1秒ほどで電源断、そのあと給電というループを繰り返す挙動がありました。USB-Cの給電で起動させておいてUSB-Cケーブルを抜いてPoEに切り替えることでPoEの動作自体はできたため、突入時の電力に支障がありそうです。3B+は良好に動作しました。

Pingに応えないとFairure判定というシンプルさから、OS自体が無反応なケースのほかに「Raspberry Piで検出できるなんらかの問題を検出したら、Pingに応えないようにiptablesでフィルタをかける」いった応用も出来そうです。あ、DHCPだとIPアドレスが変わってしまう(&スイッチはそれに気づかずPingを空振りしてFailureとしてみなす)ので、あらかじめStaticなIPアドレス構成に変更しておきましょう。

また、Auto Recoveryによって電源供給が停止されるときRaspberry Pi側でそれを予期することはできないため、OverlayFS構成など電源断に備えたシステム構成が求められます。この辺りは最近公開された以下の記事が詳しいです。せっかくAuto Recoveryで復旧しようとしたのにRaspberry Piのトラブルで起動に失敗してしまうという事態は避けたいところですよね。

Raspberry Piは本当に壊れやすいのか
Raspberry Pi OSのrootfs ROM 化 ― RAMディスク化しつつ、好きなパッケージを後から追加する方法 - Qiita
IoT においては、特に現場のデバイスの運用がこれから課題になります。というのは、日常の運用で発生する程度の問題は、専門的な技能が無くとも自己解決ができる仕組みが必要です。この 専門的な技能が無くとも自己解決ができる仕組み の一番...

まとめ

TP-Link TL-SG105PEのPoE Auto Recovery機能とPoE HATでRaspberry Piを簡易監視する構成をご紹介しました。現場に置く機器の監視方法の一つとして参考になれば幸いです。