#はじめに
自宅PCサーバが原因もわからず、ハングアップして困ったことはないでしょうか?
いざ、自宅PCサーバを利用したい時に利用できないのは困りますよね。
そこで、手間をかけずにハングアップした際に再起動する方法を考えました。
#解決方法
PCがハングアップしたことをMackerelで検知させて、RaspberryPiでPCをリセットすることで、自動再起動を実現します。
よく似た解決策として、リモート電源タップなどを利用する方法もあるかもしれませんが、この解決策のポイントはハングアップした際に自動で再起動されることです。
また、この方法はノンプログラミングで実現可能です。
#前提条件
この仕組みを利用するためには、以下の機器が必要になります。
-
Mackerelエージェント対応のOSであること
https://mackerel.io/ja/docs/entry/howto/install-agent -
RaspberryPi
リレーを動かすために必要です。
OSとnode-redをあらかじめセットアップしておいてください。 -
リレー
リセット端子をショートさせるために必要です。
必ず高レベルトリガーのものを準備してください。
※値段が安かったので、低レベルトリガーのものを購入してみたのですがどうしても電源オン時に必ずリレーが動作してしまい、強制リセットになるため、注意して下さい。
#制限事項
今回の解決方法は起動中のサーバの再起動のみです。
電源のON/OFFはできません。
#設定手順
-
Mackerelエージェントのインストール
Mackerelのサイトを参考にインストールしてください。
https://mackerel.io/ja/docs/entry/howto/install-agent -
Mackerel設定
PCサーバとMackerelの接続が途絶えた場合に通知をメールに送るようにしてください。
メール送信先は誤動作を防ぐために専用のアカウントを取得した方がいいと思います。 -
Node-redの設定
node-redでメールをチェックさせて、PCサーバと通信できない旨のメールが届いたら、以下のスクリプトを実行し、GPIO端子3番をHIGHにして、5秒後にLOWにするようにしました。
工夫した点としては、関係のないメールが届く場合もあるため、対象のメールであるかを「switch」でチェックして誤動作を防ぐようにしました。
#結果
元々、3、4ヶ月に一度の頻度でPCサーバがハングアップしていた状態なので、まだ、効果の程はわかりません。