Smart-UPS 700とapcupsdを使ったLAN経由でのシャットダウン

自宅には、ヤフオク!で買った中古のSmart-UPS 700が2台あり、1台はシリアルケーブルを接続してこのサーバを監視してます。
停電等でバッテリーモードになると、自動的にシャットダウンしてくれます。

しかし、もう1台のUPSにはシリアルケーブルがありません。
Windows PCを接続していても瞬停には対応できますが、バッテリ残量が無くなればプチンと落ちてしまうわけです。
サーバ側では「apcupsd」というAPC社製UPSを管理できるフリーソフトを使っています。
このソフトのドキュメントなど読んでみると、シリアルケーブル接続していないPCをLAN経由でシャットダウンできるとあったので設定してみました。
今回は、Windows7とXPでテストしてみました。

まずはWindows用のapcupsdプログラムを各Windows PCにダウンロードしてインストールします。
最新バージョンの「winapcupsd-3.14.8.exe」をダウンロード。
セットアップは簡単です。
途中、インストールするコンポーネントの選択があります。
すべてインストールしてもいいと思いますが、「Tray Applet」と「Multimon CGI programs」は不要と思われたのでチェックを外しました。

インストール完了後は、apcupsd.confファイルの編集を行ないます。
マスターはこのサーバのapcupsdですので、こちらのapcupsd.confファイルの設定変更も行います。
まずは、スレーブ側のWindowsから。
C:\apcupsd\etc\apcupsd\apcupsd.confをエディタで開いて編集します。
スレーブはバッテリモードになってから約60秒でシャトダウンするようにしました。
UPSがSmart-UPSシリーズだと、バッテリ残量(BATTERYLEVEL)や残り稼働時間(MINUTES)でも制御できると思われますが、WindowsPCが無事に落ちてくれればいいので一定時間でシャットダウンする設定にしました。
また、マスターのapcupsdと通信するので、マスターが動作しているPC(ここではサーバ)のIPアドレスも調べておく必要があります。

UPSCABLE ether
UPSTYPE net
DEVICE サーバのIPアドレス:3551
# BATTERYLEVEL 10
# MINUTES 5
TIMEOUT 60

次に、サーバ側の設定変更。
/etc/apcupsd/apcupsd.confをviなどで編集します。
今回のために修正した箇所は以下の3つ。
Linux用のapcupsdのバージョンによっては、設定項目が異なる場合があります。
最新バージョンを使用するのが望ましいでしょう。

UPSNAME UPS_IDEN
UPSCLASS sharemaster
UPSMODE share

スタンドアロンで使用する場合のconfファイルの設定については、以下URLなどを参照してください。
使用環境によって設定状況は異なると思いますので、自己責任で・・・。
UPSを利用した電源対策(IT media)

マスターとスレーブのapcupsdを再起動します。
電源ケーブルを抜いてテスト。
テスト機とかじゃないだけに、ドキドキでした・・・。
約60秒後、Windowsが自動的にシャットダウンしました。

PC・Internet

Posted by simoyan