朝、UPS がピーピー鳴って、サーバの電源が落ちた。
電子レンジにコーヒーサーバが重なると、ブレーカーが落ちる前に UPS が反応することがある。
我が家では、サーバが DHCP サーバとなっているから、ルータなどが生きていても、ネットワークが一切使えなくなる。
UPS の劣化などを疑うけど、更新は2017年1月なので、バッテリー状態も最悪なほどでもないはず。
apcupsdによる電源停止は正しく動作
UPS が再び正常に通電できるまで、少し手間取ったけど、復旧後に状態を確認。サーバが死ぬ前にシャットダウンを開始し、正常に電源停止が出来ている。
# grep apcupsd /var/log/syslog Jan 11 08:59:30 perrine apcupsd[823]: Power failure. Jan 11 08:59:36 perrine apcupsd[823]: Running on UPS batteries. Jan 11 08:59:42 perrine apcupsd[823]: Reached run time limit on batteries. Jan 11 08:59:42 perrine apcupsd[823]: Initiating system shutdown! Jan 11 08:59:42 perrine apcupsd[823]: apcupsd exiting, signal 15
apcupsd-cgi をインストール
UPS の状態を確認するが、電源電圧が朝の起床に合わせて95[V]を下回っている。
しかし、munin では、サンプリング感覚が5分なので、落ちる瞬間にどういう状態になっているのか確認したい。ひとまず、apcupsd を CGI から表示するパッケージが出ているので、それをインストール。
apcupsd/apccontrol
apcupsd の設定ファイルを見ていると、/etc/apcupsd/apccontrol というスクリプトから、状態に応じて様々な警告が出ている。電源が UPS の電源に切り替わる時には onbattery スクリプトから、管理者宛にメールを出している。改めてメールを確認すると、
perrine UPS perrine Power Failure !!! DATE : 2020-01-11 08:59:35 +0900 HOSTNAME : perrine VERSION : 3.14.14 (31 May 2016) debian UPSNAME : perrine CABLE : USB Cable DRIVER : USB UPS Driver UPSMODE : Stand Alone STARTTIME: 2019-12-30 16:18:32 +0900 MODEL : APC ES 550G STATUS : ONBATT LINEV : 88.0 Volts LOADPCT : 23.0 Percent BCHARGE : 100.0 Percent TIMELEFT : 19.7 Minutes MBATTCHG : 5 Percent MINTIMEL : 3 Minutes MAXTIME : 5 Seconds SENSE : Low
落ちる瞬間の電圧は、88[V] 。ちょうど、ママの朝トーストとバリスタのスイッチを入れていたあたりだな。
どちらにしろ、onbattery スクリプト起動から、killpower 開始まで若干の15秒ほどの時間があるし、メールだけでなく google-home-notifier を使って、電源異常を喋らせるようにしてみた。