logo Technical Power
HOME | Index | Blog | BBS | About
apcupsd
apcupsdとは
UPS(無停電源装置)のユーティリティーです。
以下の機能があります。

1. UPSのシリアルケーブル経由で、イベントシャットダウン
2. UPSの状態を通知・表示
3. ネットワーク経由で、イベントシャットダウン
4. Web経由で一元的なUPSステータスを提供

APCのPowerChuteとほぼ同等です

UPSのシリアルケーブルは本数が限られています。
全てのServerにシリアルケーブルを渡すことは出来ませんし面倒です。

そこで、1つのServerをマスターとして、UPSが切れそうになった際、
ネットワーク経由で通知を行い、スレーブは各々シャットダウンする仕掛けです。

当然ですが、ネットワーク経由でイベント通知をする為、
HubもServerもUPSから電源を取っている必用があります。

気になる対応OSですが、WindowsXP,2000,FreeBSD,Linux,Solarisなど
ほぼすべてのOSに対応しています。
スキーム
shutdownの仕組み


    1.UPSがシリアルケーブルより電源断を通知
    2.apcupsdが、slaveであるapcupsdに、ネットワークを通じて電源断を通知
    3.各apcupsdが設定に従ってshutdownを開始



利用ポートなど





UPSを複数を管理する場合



管理画面
上から順に、NetMaster、NetSlave、別サーバのMasterです。


詳細画面
上記、管理画面のSystemの項目をクリックすると、この詳細画面が表示されます
UPSと、apcupsdのshutdownの設定、過去のEvnetが表示されます。


install
http://www.sibbald.com/apcupsd/ からDownloadします。

最新版は不安定であった為、安定している apcupsd-3.8.6 を利用しました。

FreeBSD: apcupsd-3.8.6.tar.gz
Windows: winapcupsd-3.8.6.tar.gz

FreeBSD
# tar xvzf apcupsd-3.8.6.tar.gz # make # make insatall /usr/local/etc/apcupsd にインストールされる


Windows 2000 Server
winapcupsd-3.8.6.tar.gz を解凍したものを、c:\apcupsd以下に設置。 付属の install.bat を利用するといい。 c:\apcupsd ├-bin binary, bat群 │ ├-etc │ └-apcupsd 設定ファイル、イベントログ、PIDファイルフォルダ │ ├-examples 設定ファイルサンプル、ソース │ └-manual マニュアル(HTML)
設定
主要パラメータの詳細を載せます。
自分の都合に合わせてください。
設定項目説明
物理設定UPSCABLE接続に用いるケーブルの種類を設定。 APC SmartUPSならsmart
UPSTYPEUPSの機種を設定。 APC SmartUPS は smartups
DEVICEUPSシリアルを繋いだポート FreeBSDでCOM1に繋いだのなら、大抵 /etc/ttyd0 で良い思われる
シャットダウン設定BATTERYLEVELバッテリ残量が指定したパーセンテージを下回った場合にシャットダウンを行う
MINUTESバッテリ稼働可能と思われる予想残り時間が指定の時間(分)を切った場合にシャットダウンを行う
TIMEOUTバッテリに動作が切り替わってからシャットダウンする秒数 0だとシャットダウンしない
UPS管理設定NETSERVERcgiを利用したUPSステータスプログラムを利用するか、しないか
NISPORTNETSERVERで利用するポート番号
EVENTFILEイベントログの保管場所 (起動・電源断・バッテリー交換など)
UPSNAMEステータス表示に使うUPS名前
ネットUPS設定UPSCLASSnetmaster,netslave,standalone などを設定
UPSMODE共有、net、等のモード
NETACCESSネットワークアクセスをさせるか
NETTIMEマスタ・スレーブ間でのデータ転送間隔(sec)
NETPORTネットワークで利用するTCPポート番号
MASTERマスターIPを設定 (スレーブのみ設定)
SLAVEスレーブIPを設定 複数可 (マスターのみ設定)
USERMAGICスレーブ識別子。同一UPS内で重複不可

ネットワーク経由シャットダウンや、UPSステータス一覧表示の設定例です。

項目初期値MasterSlave1Slave2
UPSCABLEsmartsmartetherether
UPSTYPEsmartupssmartupssmartupssmartups
DEVICE/dev/usv/dev/ttyd0必要なし必要なし
BATTERYLEVEL551010
MINUTES3355
TIMEOUT0555
NETSERVERonononon
NISPORT7000700070007000
EVENTFILE初期値初期値初期値初期値
UPSNAMEUPS_IDENUPS_IDENUPS_IDENUPS_IDEN
UPSCLASSstandalonenetmasternetslavenetslave
UPSMODEdisablenetnetnet
NETACCESStruetruetruetrue
NETTIME#NETTIME 100NETTIME 100NETTIME 100NETTIME 100
NETPORT#NETPORT 6666NETPORT 6666NETPORT 6666NETPORT 6666
MASTER#MASTER#MASTERMASTER 192.168.0.1MASTER 192.168.0.1
SLAVE#SLAVESLAVE 192.168.0.2
SLAVE 192.168.0.3
#SLAVE#SLAVE
USERMAGIC#USERMAGIC#USERMAGICSlave1Slave2
#はコメントアウトされていることを示します。

Tree figure
./usr/local/etc/apcupsd │ ├-cgi cgiディレクトリ Webから読めるようにすると動作する。 │ ├-multimon.cgi Webステータスチェックプログラム(Index) │ ├-multimoncss.cgi │ ├-upsfstats.cgi │ ├-upsimage.cgi │ └-upsstats.cgi │ ├-apccontrol このプログラムが他のスクリプトをキックする ├-apcupsd.conf 設定ファイル ├-changeme ├-commfailure ├-commok ├-hosts.conf cgi上で閲覧するリストを記載するファイル ├-mainsback └-onbattery


プロセス
43534 ?? Is 0:00.01 apcupsd: apcmain (apcupsd) 43537 ?? S 0:01.48 apcupsd: apcmst (apcupsd) 43538 ?? I 0:00.03 apcupsd: apcnis (apcupsd) 43539 ?? S 1:55.01 apcupsd: apcser (apcupsd)

hosts.confに記述することで、スキームにあるUPS詳細一覧(multimon.cgi)に載る。
netlsave,netmaster,standalone 何でもよく、7000番をあけておく必要がある。
# MONITOR <address> "<host description>" # # Please note, MONITOR must start in column 1 (no spaces permitted) # # Example: # MONITOR 10.64.1.1 "Finance department" # MONITOR 10.78.1.1 "Sierra High School data room #1" # MONITOR IPアドレス "CGI上での表記名" MONITOR 127.0.0.1 "alice.xa10.com" 一覧画面で表記させたいものを列挙 netslave,netmaster,standaloneもOK MONITOR 192.168.0.251 "WindowsAD FileServer"


起動
# /usr/local/etc/rc.d/apcupsd.sh start 起動 # /usr/local/etc/rc.d/apcupsd.sh stop 停止 # /usr/local/etc/rc.d/apcupsd.sh restart 再起動 # /usr/local/etc/rc.d/apcupsd.sh status 状態表示
現在のサービスの状態
上記、起動の「状態表示」か、/usr/local/etc/apcupsd/cgi/multimon.cgi を
ブラウザで閲覧します。(スキームの管理画面

もちろん、後者の場合は、Apache等のWebでの設定が必要です。
cgi実効権限を付与しURLで叩けるようにしておいてください。


コマンドラインからの状態確認
    # /usr/local/etc/rc.d/apcupsd.sh status DATE : Mon Feb 16 18:46:53 JST 2004 HOSTNAME : windy.xa10.com 調査対象のホスト RELEASE : 3.8.6 UPSNAME : UPS_IDEN UPSの名前 CABLE : Custom Cable Smart MODEL : SMART-UPS 1400 X172 UPSMODE : Net Master STARTTIME: Tue Feb 10 10:43:47 JST 2004 SHARE : NetworkUPS STATUS : ONLINE LOWBATT REPLACEBATT LINEV : 098.8 Volts LOADPCT : 23.4 Percent Load Capacity BCHARGE : 100.0 Percent TIMELEFT : 3.0 Minutes MBATTCHG : 5 Percent バッテリー残量5%を切ったらシャットダウン MINTIMEL : 3 Minutes バッテリー維持可能な時間が3minを切ったらシャットダウン MAXTIME : 60 Seconds 電源切断時、60Secでシャットダウン MAXLINEV : 100.1 Volts MINLINEV : 098.1 Volts OUTPUTV : 098.8 Volts SENSE : High DWAKE : 000 Seconds DSHUTD : 180 Seconds DLOWBATT : 02 Minutes LOTRANS : 092.0 Volts HITRANS : 110.0 Volts RETPCT : 000.0 Percent ITEMP : 37.3 C Internal ALARMDEL : 5 seconds BATTV : 27.9 Volts LINEFREQ : 60.0 Hz LASTXFER : Automatic or explicit self test NUMXFERS : 0 TONBATT : 0 seconds CUMONBATT: 0 seconds XOFFBATT : N/A SELFTEST : NO STESTI : 336 STATFLAG : 0x0C8 Status Flag DIPSW : 0x00 Dip Switch REG1 : 0x00 Register 1 REG2 : 0x00 Register 2 REG3 : 0x00 Register 3 MANDATE : 06/27/00 SERIALNO : QS0027210782 BATTDATE : 06/27/00 NOMOUTV : 100 NOMBATTV : 24.0 EXTBATTS : 0 FIRMWARE : 70.1SX172.A APCMODEL : KWA END APC : Mon Feb 16 18:46:59 JST 2004

    cgi 上でも同様の情報が得られます。
    その場合は各項目が数値ではなく、グラフでみることができるのでお奨めです。
運用・管理
上記、起動の「状態表示」か、/usr/local/etc/apcupsd/cgi/multimon.cgi を
ブラウザで閲覧します。(スキームの管理画面


SERIALNO : QS0027210782 BATTDATE : 06/27/00 NOMOUTV : 100 NOMBATTV : 24.0 EXTBATTS : 0 FIRMWARE : 70.1SX172.A APCMODEL : KWA END APC : Mon Feb 16 18:46:59 JST 2004

cgi 上でも同様の情報が得られます。
その場合は各項目が数値ではなく、グラフでみることができるのでお奨めです。
参考文献
ようこそさいとうのほーむぺーじへ HOME http://www.ail.cs.gunma-u.ac.jp/~saito/ups.html
HOME | Index | Blog | BBS | About
Copyright (c) 2006 Technical Power http://www.xa10.com