やっぱりサーバーにはUPS付けたいですよね
FreeBSDの場合、そのまま電源が落ちると遅延書き込みしているファイルは死んでしまい
fsckでチェックするとそのファイルは削除しないとクリーンにならないのと
アクセス中だとセクターエラーして使用できなくなります。
個人でも比較的購入し易いAPC製のBR550G-JPを導入し監視しましょう
バッテリーも秋月で格安にて購入できるタイプですのでお薦めです
監視ソフトにはapcupsdが有り、APC社のUPSはほとんど対応しています。
まずインストールしますオプションでONしたのは
# cd /usr/ports/sysutils/apcupsd
# make install clean
CGI USB_DRV SNMP_DRV
などがある事を確認しておきます。
あとapcupsdのCGIが有り、これもなかなかいいのでオプションでONします。
SNMPは・・・使用した事ないんですが将来のためにONしました
勉強しなければ(^_^;
設定ファイルをコピーします
# cp /usr/local/etc/apcupsd/apcupsd.conf.sample /usr/local/etc/apcupsd/apcupsd.conf
では設定しましょう
上の方の行を消すと動きませんので、できるだけ必要箇所のみ触りましょう
変更あるいは確認するところは下記のとおりです
/usr/local/etc/apcupsd/apcupsd.conf
あとはバッテリー残量がどれくらいでシャットダウンするかとかは各自お好みで設定して下さい。
# 名前なので何でもよい
UPSNAME BR550G-JP
UPSCABLE usb
UPSTYPE usb
# DEVICEは不要
また、高度な設定になると1台のUPSでマシンを複数台接続し順次シャットダウンする事もできます
起動時にapcupsdを走らせるので
/etc/rc.conf へ追記する
apcupsd_enable="YES"
出来上がったら動かして見ましょう。
コマンドラインから
# /usr/local/etc/rc.d/apcupsd start
うまく動いているかはpsコマンドなどで確認して見てください
うまく動いていれば
とやるとroot宛にステータスがメールされます
# /usr/local/etc/rc.d/apcupsd status
apcupsdの良いところで遠隔からでもHP経由で見る事ができます
そのためにインストール時にCGIをONしてあります。
ちなみにパッケージだとOFF何ですよね〜
まずはApacheのconfファイルに下記を追記しましょう
一応あまり公開したくないのでSSLにして .htaccess で制限して見ました
/usr/local/etc/apache24/extra/httpd-ssl.conf
あとは
Alias /ups/ "/usr/local/etc/apcupsd/cgi/" <Directory "/usr/local/etc/apcupsd/cgi/"> Options -Includes FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Deny from アクセスさせたくないドメイン </Directory>
/usr/local/etc/apcupsd/cgi/.htaccess
で制限しておきましょう
.htaccess の例
.htaccessの解説は他のHPを見て下さい
AuthUserFile /usr/home/****/.password
AuthGroupFile /dev/null
AuthName "By Password"
AuthType Basic
Options Includes ExecCGI
DirectoryIndex multimon.cgi
<Limit POST GET PUT>
require user *****
</Limit>
Apacheを再起動させconfを反映したら
https://hogehoge.url/ups/
をアクセスすれば
とこんな感じで出れば成功です。
Systemの下のLocalHostをクリックすると
とこんな感じで出ます
右の「All Data」をクリックすると
ずらずらっとテキストで出て来ます。
apcupsdのまたもや良いところでコマンドラインからも値をかえしてくれるので
これを利用してMRTGでカーブが書けます。
コマンドラインから
とたたけば、ずらずらっと出て来ます
# apcaccess status
この中で
・UPSバッテリー容量
・UPSへの入力電圧
・UPS負荷
・UPSで稼働可能な時間
をモニターします
最初は温度もやっていたのですが、CS500だとず〜っと29.4℃なので
ちゃんとモニター出来ないようでしたのでやめました。
他のUPS(smart UPSなど)であれば可能でしたので、一応試して見てください。
それではそれぞれシェルを作成します
■容量
#!/bin/sh
export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
apcaccess status | awk '/^BCHARGE/ {print int($3)}'
■入力電圧
#!/bin/sh
export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
apcaccess status | awk '/^LINEV/ {print int($3)}'
■負荷
#!/bin/sh
export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
apcaccess status | awk '/^LOADPCT/ {print int($3)}'
■稼働可能時間
#!/bin/sh
export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
apcaccess status | awk '/^TIMELEFT/ {print int($3)}'
■温度
#!/bin/sh
export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
apcaccess status | awk '/^ITEMP/ {print int($3)}'
それぞれ実行権限を与えておき好きなファイル名で保存して下さい。
あとはこれをsnmp経由でもよいのでmrtgに設定すればカーブが書けます。