apcupsdの設定

サーバのUPS設定をしていなかったので、apcupsdを使って自動シャットダウン等するようにしてみました。

  • UPSAPCのCS350
  • USB接続
  • ブラウザからステータス確認できるようにする
  • apcupsdのパッケージはyumで入れる
  • OSはCentOS 5

apcupsdの導入

リポジトリ設定については以下を参照のこと。
CentOS5 で RPMforge を使う

# yum --enablerepo=rpmforge install apcupsd 

apcupsd-3.10.18-1.2.el5.rfが入りました。少し古いバージョンだけどUSB接続に対応してるのでOKとします。

設定

/etc/apcupsd/apcupsd.conf を書き換えます。
長いので差分だけ置いときます。.orgがデフォルトのファイルです。

# diff /etc/apcupsd/apcupsd.conf /etc/apcupsd/apcupsd.conf.org
22c22
< UPSCABLE usb
---
> UPSCABLE smart
44c44
< UPSTYPE usb
---
> UPSTYPE smartups
67c67
< DEVICE /dev/hiddev0
---
> DEVICE /dev/ttyS0
94c94
< BATTERYLEVEL 10
---
> BATTERYLEVEL 5
115c115
< TIMEOUT 300
---
> TIMEOUT 0
項目 説明
UPSCABLE 接続に用いるケーブルの種類
UPSTYPE UPSの種類
DEVICE UPSを繋いだポート
BATTERYLEVEL バッテリ残量が指定したパーセンテージを下回った場合にシャットダウンする
TIMEOUT バッテリに動作が切り替わってからシャットダウンする秒数 0ならシャットダウンしない
MINUTES バッテリ稼働可能と思われる予想残り時間が指定の時間(分)を切った場合にシャットダウンする(今回はデフォルトのまま)

BATTERYLEVEL, TIMEOUT, MINUTESの最初に該当したものでシャットダウン処理がなされるっぽい。

起動設定

# /etc/init.d/apcupsd start 
# chkconfig apcupsd on

ブラウザからステータスを参照する

下記のファイルが作成されているので、allow fromを追記すればOKです。デフォルトだと127.0.0.1からしか参照できません。
/etc/httpd/conf.d/apcupsd.conf

ScriptAlias /apcupsd/ /var/www/apcupsd/
<Directory /var/www/apcupsd/>
        DirectoryIndex upsstats.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 127.0.0.1 192.168.0.
</Directory>

http://localhost/apcupsd/upsstats.cgi からステータスを参照でます。