計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

APC無停電電源装置との接続による自動シャットダウンシステムの構築


準備
  無停電電源装置
    APC Smart-UPS 750 を各マシン(Ubuntu, Solaris)に取り付けている

  ソフトウェアの準備
    監視ツールには apcupsd を使う

    Ubuntuの場合
      sudo apt install apcupsd

    Solarisの場合
      https://sourceforge.net/projects/apcupsd/ から apcupsd-3.14.xx.tar.gz
      をダウンロードしてソースから構築

接続
  市販のUSBケーブルを使う (スキャナなどについてくるタイプA-タイプB)
  シリアルポートがあれば純正のスマートケーブルが使えそうだがうまく行かないので諦めた

マスターとスレーブ
  おのおのそれぞれのSmart-UPSと通信させるのは面倒なので, apcupsdの設定が簡単な
  Ubuntuマシン1台をマスターサーバとし, そのほかはスレーブサーバとする.

apcupsdマスターサーバの設定 (Ubuntu, ここでは IP=10.192.20.1, HOST=ibsen)

  1. apt を使ってインストールした時点でapcupsdサーバが起動している.

    sudo systemctl status apcupsd

  2. しかしこのままでは「communications lost with UPS」となってUPSとは接続できていない.
  /etc/apcupsd/apcupsd.conf を次のように編集する
    DEVICE設定をコメントアウト
    NISIPを0.0.0.0としてネットワークマシンからアクセス可とする

*** /etc/apcupsd/apcupsd.conf.orig	2024-10-01 14:23:24.207766554 +0900
--- /etc/apcupsd/apcupsd.conf	2024-10-01 14:49:01.310768818 +0900
***************
*** 87,93 ****
  #                            (helpful if you have more than one USB UPS).
  #
  UPSTYPE usb
! DEVICE /dev/ttyS0
  
  # POLLTIME <int>
  #   Interval (in seconds) at which apcupsd polls the UPS for status. This
--- 87,93 ----
  #                            (helpful if you have more than one USB UPS).
  #
  UPSTYPE usb
! #DEVICE /dev/ttyS0
  
  # POLLTIME <int>
  #   Interval (in seconds) at which apcupsd polls the UPS for status. This
***************
*** 206,212 ****
  #  NIS will listen for connections only on that interface. Use the
  #  loopback address (127.0.0.1) to accept connections only from the
  #  local machine.
! NISIP 127.0.0.1
  
  # NISPORT <port> default is 3551 as registered with the IANA
  #  port to use for sending STATUS and EVENTS data over the network.
--- 206,212 ----
  #  NIS will listen for connections only on that interface. Use the
  #  loopback address (127.0.0.1) to accept connections only from the
  #  local machine.
! NISIP 0.0.0.0
  
  # NISPORT <port> default is 3551 as registered with the IANA
  #  port to use for sending STATUS and EVENTS data over the network.

  3. apcupsdサーバを再起動

    sudo systemctl restart apcupsd

  4. 稼働確認
  
    apcaccess

    例えば次のように表示される.

APC      : 001,027,0653
DATE     : 2024-10-01 14:27:09 +0900  
HOSTNAME : ibsen
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : ibsen
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2024-10-01 14:11:04 +0900  
MODEL    : Smart-UPS 750 
STATUS   : ONLINE 
BCHARGE  : 100.0 Percent
TIMELEFT : 137.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
ALARMDEL : 30 Seconds
BATTV    : 27.1 Volts
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000008
MANDATE  : 2019-07-23
SERIALNO : J11930110834  
NOMBATTV : 24.0 Volts
FIRMWARE : UPS 09.5 / ID=18
END APC  : 2024-10-01 14:27:12 +0900  

apcupsdスレーブサーバの設定 (Ubuntu)

  1. apt を使ってインストールした時点でapcupsdサーバが起動している.

    sudo systemctl status apcupsd

  2. /etc/apcupsd/apcupsd.conf を次のように編集する
    UPSCABLE, UPSTYPE, DEVICEを編集し, マスターに接続するようにする. 

** /etc/apcupsd/apcupsd.conf.orig	2024-10-01 14:35:41.915461776 +0900
--- /etc/apcupsd/apcupsd.conf	2024-10-01 14:39:52.626500707 +0900
***************
*** 29,35 ****
  #     940-1524C, 940-0024G, 940-0095A, 940-0095B,
  #     940-0095C, 940-0625A, M-04-02-2000
  #
! UPSCABLE usb
  
  # To get apcupsd to work, in addition to defining the cable
  # above, you must also define a UPSTYPE, which corresponds to
--- 29,35 ----
  #     940-1524C, 940-0024G, 940-0095A, 940-0095B,
  #     940-0095C, 940-0625A, M-04-02-2000
  #
! UPSCABLE ether
  
  # To get apcupsd to work, in addition to defining the cable
  # above, you must also define a UPSTYPE, which corresponds to
***************
*** 86,93 ****
  #                            that apcupsd binds to that particular unit
  #                            (helpful if you have more than one USB UPS).
  #
! UPSTYPE usb
! DEVICE /dev/ttyS0
  
  # POLLTIME <int>
  #   Interval (in seconds) at which apcupsd polls the UPS for status. This
--- 86,93 ----
  #                            that apcupsd binds to that particular unit
  #                            (helpful if you have more than one USB UPS).
  #
! UPSTYPE net
! DEVICE 10.192.20.1:3551
  
  # POLLTIME <int>
  #   Interval (in seconds) at which apcupsd polls the UPS for status. This

  3. apcupsdサーバを再起動

    sudo systemctl restart apcupsd

  4. 稼働確認
  
    apcaccess

    例えば次のように表示される.

APC      : 001,027,0688
DATE     : 2024-10-01 14:55:31 +0900  
HOSTNAME : wells
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : ibsen
CABLE    : Ethernet Link
DRIVER   : NETWORK UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2024-10-01 14:51:31 +0900  
MASTERUPD: 2024-10-01 14:55:31 +0900  
MASTER   : 10.192.20.1:3551
MODEL    : Smart-UPS 750 
STATUS   : ONLINE SLAVE 
BCHARGE  : 100.0 Percent
TIMELEFT : 146.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
BATTV    : 27.1 Volts
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000408
SERIALNO : J11930110834
NOMBATTV : 24.0 Volts
FIRMWARE : UPS 09.5 / ID=18
END APC  : 2024-10-01 14:56:22 +0900  


計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp