apcupsd

  • APC の SmartUPS をてにいれた!
    • シリアルケーブルをてにいれた!
    • しかし、ゆうしゃは PowerChute をもっていない!
    • ゆうしゃはていでんにおびえてうごけない!
  • そんなあなたに apcupsd
    • PowerChuteばりの電源管理を行ってくれます。
    • 1台のUPSを複数台のマシンで共有していても、通信して電源管理を行ってくれます。

インストール

  • ダウンロード
  • コンパイル&インストール
    • tar zxvf apcupsd-3.14.6.tar.gz
    • cd apcupsd-3.14.6
    • ./configure --enable-cgi
      • --enable-cgi でモニタリング用の CGI もコンパイルする
    • make install
      • Turbolinux なので、起動スクリプトとかmanとか入れてくれなかった。。。
  • 起動スクリプト
    • cp platforms/unknown/apcupsd /etc/init.d/
    • chmod 755 /etc/init.d/apcupsd
  • 設定
    • vi /etc/apcupsd/apcupsd.conf
      UPSNAME SU1400
      UPSCABLE smart
      UPSTYPE apcsmart
      DEVICE /dev/ttyS0
      NISIP 127.0.0.1
      • UPSNAME に識別名(8bytes)
      • UPSCABLE にケーブル種類(今回はSmartUPS純正ケーブル)
      • UPSTYPE に UPS 種類(今回はSmartUPS)
      • DEVICE にUPS通信ケーブルポート(今回はシリアルポート)
      • NISIP に通信させる相手の IPアドレス(今回は自機にモニタリングさせる)
      • 詳細は下のほうのどこかに
  • 起動
    • /etc/init.d/apcupsd start

いろいろする

  • ステータス
    • /etc/init.d/apcupsd status
    • apcaccess status
      • どっちでも表示されるものは同じ
  • UPSの設定
    • apctest
      • いろいろメニューが出てくる。
      • 時間の余裕のあるときにバッテリのキャリブレーションを一度やっておくといいかも。
        稼働時間を再測定してくれる(めちゃくちゃ時間かかる)

シャットダウン

テスト中

/etc/apcupsd/ - いろいろ設定ファイル

/etc/apcupsd/apcupsd.conf

書きかけ

  • General configuration parameters
  • UPSNAME UPS_IDEN
    • UPS名
  • UPSCABLE smart
    • UPSケーブルの種類
    • smart : APC Smartケーブル
  • UPSTYPE apcsmart
    • UPSの種類
    • apcsmart : APC SmartUPS(シリアルケーブル接続とマスターapcupsdに接続する場合)
    • netでAP9617ネットワークカードを使ったSmartUPSに接続できる
  • DEVICE /dev/ttyS0
    • UPSケーブルの接続ポート
    • /dev/ttyS0 : Linux RS-232C シリアルポート接続(UPSTYPE apcsmart の場合)
    • ホスト名:3551 : netでネットワークカードに接続する場合
  • POLLTIME 60
    • apcupsdがUPSに状態を取りに行く間隔
    • デフォルト(未定義)は60秒
  • LOCKFILE /var/lock
  • SCRIPTDIR /etc/apcupsd
  • PWRFAILDIR /etc/apcupsd
  • NOLOGINDIR /etc
  • Configuration parameters used during power failures
  • ONBATTERYDELAY 6
    • バッテリー動作検出時間
      • 短時間のバッテリー駆動を停電と見なさない閾値秒数
  • BATTERYLEVEL 5
    • シャットダウンするバッテリ残量(%)
  • MINUTES 3
    • シャットダウンする稼働時間残量(分)
      • BATTERYLEVELかMINUTESの先に到達した方で判断する
  • TIMEOUT 0
    • バッテリ動作開始からシャットダウンするまでの秒数
    • 0 : 無効
      • 通常は BATTERYLEVEL と MINUTES を使う。
  • ANNOY 300
  • ANNOYDELAY 60
  • NOLOGON disable
  • KILLDELAY 0
  • Configuration statements for Network Information Server
  • NETSERVER on
    • ネットワーク機能 on/off
  • #NISIP 0.0.0.0
    • ネットワーク機能をモニタさせるIPアドレス
  • NISPORT 3551
    • ネットワーク機能ポート番号
  • EVENTSFILE /var/log/apcupsd.events
  • EVENTSFILEMAX 10
  • Configuration statements used if sharing
  • UPSCLASS standalone
  • UPSMODE disable
  • Configuration statements to control apcupsd system logging
  • STATTIME 0
  • STATFILE /var/log/apcupsd.status
  • LOGSTATS off
  • DATATIME 0
  • #FACILITY DAEMON
  • Configuration statements used in updating the UPS EPROM
    # UPS name, max 8 characters
    #UPSNAME UPS_IDEN
    
    # Battery date - 8 characters
    #BATTDATE mm/dd/yy
    
    # Sensitivity to line voltage quality (H cause faster transfer to batteries)
    # SENSITIVITY H M L        (default = H)
    #SENSITIVITY H
    
    # UPS delay after power return (seconds)
    # WAKEUP 000 060 180 300   (default = 0)
    #WAKEUP 60
    
    # UPS Grace period after request to power off (seconds)
    # SLEEP 020 180 300 600    (default = 20)
    #SLEEP 180
    
    # Low line voltage causing transfer to batteries
    # The permitted values depend on your model as defined by last letter
    #  of FIRMWARE or APCMODEL. Some representative values are:
    #    D 106 103 100 097
    #    M 177 172 168 182
    #    A 092 090 088 086
    #    I 208 204 200 196     (default = 0 => not valid)
    #LOTRANSFER  208
    
    # High line voltage causing transfer to batteries
    # The permitted values depend on your model as defined by last letter
    #  of FIRMWARE or APCMODEL. Some representative values are:
    #    D 127 130 133 136
    #    M 229 234 239 224
    #    A 108 110 112 114
    #    I 253 257 261 265     (default = 0 => not valid)
    #HITRANSFER 253
    
    # Battery charge needed to restore power
    # RETURNCHARGE 00 15 50 90 (default = 15)
    #RETURNCHARGE 15
    
    # Alarm delay
    # 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = n
    ever
    # BEEPSTATE 0 T L N        (default = 0)
    #BEEPSTATE T
    
    # Low battery warning delay in minutes
    # LOWBATT 02 05 07 10      (default = 02)
    #LOWBATT 2
    
    # UPS Output voltage when running on batteries
    # The permitted values depend on your model as defined by last letter
    #  of FIRMWARE or APCMODEL. Some representative values are:
    #    D 115
    #    M 208
    #    A 100
    #    I 230 240 220 225     (default = 0 => not valid)
    #OUTPUTVOLTS 230
    
    # Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
    # SELFTEST 336 168 ON OFF  (default = 336)
    #SELFTEST 336

apcupsd + mrtg

  • apcupsdとMRTGを使ってオーソドックスに取得する方法
  • vi /usr/local/sbin/apcaccess2netsnmp
    #!/bin/bash
    if [ -z $1 ]; then
      exit
    fi
    /sbin/apcaccess status | awk "/^$1/ {print \$3*100}"
    • apcaccess status 叩いて 引数の項目の数字を100倍して表示するスクリプト
    • usage: /usr/local/sbin/apcaccess2netsnmp LINEV
    • 念のため、引数つけなかったら動かないようにしている。
  • chmod 755 /usr/local/sbin/apcaccess2netsnmp
  • vi /etc/snmp/snmpd.conf
    extend .1.3.6.1.4.1.2021.54 apcaccess_LINEV /usr/local/sbin/apcaccess2netsnmp LINEV
    extend .1.3.6.1.4.1.2021.55 apcaccess_OUTPUTV /usr/local/sbin/apcaccess2netsnmp OUTPUTV
    extend .1.3.6.1.4.1.2021.56 apcaccess_LOADPCT /usr/local/sbin/apcaccess2netsnmp LOADPCT
    extend .1.3.6.1.4.1.2021.57 apcaccess_BCHARGE /usr/local/sbin/apcaccess2netsnmp BCHARGE
    • apcaccess -> NET-SNMP -> mrtg とするためにちょっと面倒だけど
    • .1.3.6.1.4.1.2021.XX は他に exec とか extend とダブらないように
    • 詳しくは Tips/Linux/MRTG 参照
  • /etc/init.d/snmpd restart
  • vi /etc/mrtg.conf
    #---------
    # apcupsd
    #---------
    Directory[_]:ups
    Options[_]: growright, nopercent, pngdate, printrouter, withzeroes, unknaszero, gauge
    MaxBytes[_]: 200
    LegendI[_]:
    LegendO[_]:
    Legend1[_]:
    Legend2[_]:
    YLegend[_]:
    ShortLegend[_]:
    kMG[_]:
    Factor[_]: 0.01
    YTicsFactor[_]: 0.01
    
    # VOLTAGE #
    Title[su700j_voltage]: APC SmartUPS 700J for Katae, Hibaru
    PageTop[su700j_voltage]: <H1>APC SmartUPS 700J for Katae, Hibaru</H1>
    Target[su700j_voltage]: 1.3.6.1.4.1.2021.55.4.1.2.17.97.112.99.97.99.99.101.115. \
    115.95.79.85.84.80.85.84.86.1&1.3.6.1.4.1.2021.54.4.1.2.15.97.112.99.97.99.99.10 \
    1.115.115.95.76.73.78.69.86.1:snmp_jamfunk@localhost
    LegendI[su700j_voltage]: output
    LegendO[su700j_voltage]: input
    Legend1[su700j_voltage]: UPS output voltage
    Legend2[su700j_voltage]: UPS input voltage
    YLegend[su700j_voltage]: voltage (V)
    ShortLegend[SU700J_voltage]: V
    
    # LOAD & CHARGE #
    Title[SU700J_load]: APC SmartUPS 700J for Katae, Hibaru
    PageTop[SU700J_load]: <H1>APC SmartUPS 700J for Katae, Hibaru</H1>
    Target[SU700J_load]: 1.3.6.1.4.1.2021.56.4.1.2.17.97.112.99.97.99.99.101.115.115 \
    .95.76.79.65.68.80.67.84.1&1.3.6.1.4.1.2021.57.4.1.2.17.97.112.99.97.99.99.101.1 \
    15.115.95.66.67.72.65.82.71.69.1:snmp_jamfunk@localhost
    LegendI[SU700J_load]: load
    LegendO[SU700J_load]: battery charged
    Legend1[SU700J_load]: UPS load
    Legend2[SU700J_load]: UPS battery charged
    YLegend[SU700J_load]: load&charge (%)
    ShortLegend[SU700J_load]: %
    • 最後に \ のついている行は次の行と続けること。
    • voltageが out in の順番になっているのは、グラフが見やすかったから。
  • /etc/init.d/mrtg restart

参考にさせていただいたサイト

シリアルケーブル型番のメモ

  • APC UPS の制御用ケーブル
    • 正直、何種類あるのか、何の違いがあるのかわからない。
    • とりあえず 940-0024C(黒)があれば apcupsd が使えているので、困ってはいない。
  • APC 940-0024C
    • スマートシグナルケーブル
    • 結線図(apcupsdから引用)
      APC 940-0024C
    • 実績 SU700J, SU500J, SU1400RM -> Turbolinux 11 Server + apcupsd, TeraTerm + AP9606
  • APC 940-0020B
    • Widnows版 PowerChute用ケーブル
  • APC AP9823
    • UNIX版 PowerChute用ケーブル
    • APC Interface Kit: B
      ベーシックポートとPowerChute plus for Unix、Linux接続用
      Simple Signaling専用ケーブル
  • APC AP9824LJ
    • Linux版 PowerChute用ケーブル
    • Interface Kit: C
      アドバンスポートもしくはPC間の接続用Smart Signaling専用ケーブル
  • apcupsd のサイトのドキュメントが詳しい

940-0024C自作コネクタ

  • DSUB9メス(DB9F)→ストレートLANケーブルメス(RJ45F)変換コネクタと、RJ45F→DB9M変換コネクタがあれば、あとはLANケーブルでいくらでも長く引き回せるので、楽。 APC 940-0024C
    • なかなかRJ45→DB9Mが売ってないのが悩み

添付ファイル: fileapcupsd_940-0024C_make.png 43件 [詳細] fileSmart-UPS_940-0024D.png 520件 [詳細]