「UPSが逆にサーバーを落とすとき」APC BR550Sのバッテリー劣化とapcupsdログ解析
概要
自宅サーバー運用において、最後の砦となるのがUPS(無停電電源装置)です。しかし、メンテを怠るとUPS自体がSPOF(単一障害点)となり、逆にサーバーをクラッシュさせる原因になるという教科書通りの事象を経験しました。
今回は、APC BR550Sのバッテリー寿命末期における挙動と、apcupsd のログから読み取れる「死の予兆」について共有します。
環境とハードウェア
- UPS: APC BR550S (BR550S-JP)
- OS: Linux (Debian)
- 管理ツール: apcupsd 3.14.14
- 購入日: 2021年4月12日
- 障害発生日: 2025年11月27日(稼働期間:約4年7ヶ月)
- 予兆: 障害の約1ヶ月前からバッテリー交換警告(赤ランプ&アラート)が発生
APC 無停電電源装置 UPS 550VA/330W BR5...
中小規模ビジネス、家庭向けのUPS ー 中小規模ビジネス、家庭向けの大容量でかつ、自動電圧調整機能(AVR)が付いた電源バックアップソリューション(UPS)です。
何が起きたか
結論から言うと、「劣化したバッテリーを積んだUPSがセルフテスト(自己診断)を行い、その瞬間に電圧を維持できずサーバーごと落ちた」 という事象です。
商用電源(コンセント)からは電気が来ているにも関わらず、UPSの挙動によって電源が断たれました。
ログによる解析
1. 頻発する「死のロシアンルーレット」
通常、APCのUPSはデフォルトで 14日(2週間)に1回 のセルフテストを行います。しかし、バッテリー交換警告が出ている末期状態では、挙動が異なりました。
以下は syslog の抜粋です。
864489:2025-11-24T12:46:04.978346+00:00 gmk apcupsd[1630084]: UPS Self Test switch to battery.
864490:2025-11-24T12:46:05.257428+00:00 gmk apcupsd[1630084]: UPS battery must be replaced.
864501:2025-11-24T12:46:07.025059+00:00 gmk apcupsd[1630084]: UPS Self Test completed: Warning
1166439:2025-11-25T01:30:53.985560+00:00 gmk apcupsd[1630084]: UPS Self Test switch to battery.
1166610:2025-11-25T01:30:54.989559+00:00 gmk apcupsd[1630084]: UPS Self Test completed: Warning
1579590:2025-11-25T14:15:40.478205+00:00 gmk apcupsd[1630084]: UPS Self Test switch to battery.
1579650:2025-11-25T14:15:50.698265+00:00 gmk apcupsd[1630084]: UPS Self Test completed: Warning
1911424:2025-11-26T03:00:33.260875+00:00 gmk apcupsd[1630084]: UPS Self Test switch to battery.
1911434:2025-11-26T03:00:35.334053+00:00 gmk apcupsd[1630084]: UPS Self Test completed: Warning
ご覧の通り、 約12時間〜13時間おき に UPS Self Test switch to battery(バッテリーへの切り替えテスト)が走っています。
バッテリーが完全に死んでいる状態で、半日に1回、強制的にバッテリー駆動テストが行われる──つまり、 1日に2回「運が悪ければ落ちる」ロシアンルーレットが自動実行されている状態 でした。
2. ログを残さず「即死」する瞬間
そして迎えた11月26日の夜。
2423952:2025-11-26T18:46:48.927315+00:00 gmk apcupsd[1630084]: UPS battery must be replaced.
(ここでログが途絶える)
2530548:2025-11-26T22:48:09.951429+00:00 gmk systemd[1]: Starting apcupsd.service - UPS power management daemon...
18:46の定期ログを最後に、次は22:48の起動ログまで飛んでいます。
通常、apcupsdがシャットダウンをトリガーした場合は apcupsd exiting, signal 15 といったログが残りますが、今回はそれすらありません。
これは以下のプロセスで落ちたと推測されます。
- 何らかの理由(セルフテスト、あるいは瞬断)でUPSがバッテリー駆動に切り替わろうとする。
- バッテリーの内部抵抗が高すぎて、負荷(サーバー)を支えきれず電圧が瞬時にゼロになる。
- OSはログをディスクに書き込む暇もなく、物理的に電源が落ちる(Dirty Shutdown)。
- その後、商用電源が安定しているため、BIOSの「AC Power Recovery」設定により自動再起動。
まさに 「UPSがついているからこそ落ちた(スルー出力なら耐えたかもしれない)」 という本末転倒な事態です。
教訓と対策
1. アラートが出たら即交換、あるいはバイパスする
「まだ動いてるし、来週交換しよう」は危険です。アラートが出ているUPSは、保護装置ではなく時限爆弾です。 交換用バッテリーが手元にない場合は、サーバーのコンセントをUPSから抜き、壁のコンセント(商用電源)に直結する方が、テストによる自爆リスクがない分だけ安全です。
2. apcupsdの設定見直し
今回の設定(/etc/apcupsd/apcupsd.conf)を確認したところ、以下のようになっていました。
BATTERYLEVEL 5
MINUTES 3
「残り5%」または「残り3分」まで粘る設定です。 新品バッテリーならこれで良いですが、劣化したバッテリーでは「残り3分」と表示されていても、負荷がかかった瞬間に電圧降下で落ちる可能性があります。
安全マージンを取り、以下のように早めに倒す設定へ変更することをおすすめします。
BATTERYLEVEL 15 # 15%を切ったらシャットダウン
MINUTES 10 # 残り10分を切ったらシャットダウン
まとめ
- APC BR550S の寿命は4年半もちました。
- バッテリー警告が出ると、高頻度(半日ごと)でセルフテストが走り、リスクが跳ね上がります。
- ログに
Power failureやSwitch to batteryが頻発し始めたら、即座に運用を停止して交換しましょう。
2025年11月27日、新しいUPSへのリプレイスが完了し、平穏なログが戻ってきました。皆さんの家のUPSも、バッテリーランプが赤く光っていないか今すぐ確認を。