我们正在运行 FreeNAS(基于 FreeBSD 构建)来运行我们的数据存储系统。它运行在 APC Smart-UPS 750VA X 上。
有几次,我们的监控系统提醒我服务器已关闭。几分钟后,服务器恢复正常运行。
当我运行时,last
我可以看到服务器刚刚启动,检查时/var/log/messages
我可以看到它已经完成了整个启动过程,但我看不到任何崩溃或任何导致它关闭的原因。它实际上从正常状态变为输出启动信息。
所以这让我想知道是不是停电导致了这种情况的发生,但我如何才能确定这是事实?我想为 APC UPS 买一张互动卡并将其连接到网络是一种方法……还有其他方法可以让我立即找出为什么会发生这种情况吗?
答案1
我认为有几种显而易见的解决方案可以找到更多信息:
- 将另一台设备连接到同一 UPS 输出。如果两台设备同时重启,则表明存在电源问题。
- 连接一些可以监控UPS输出的实际电压输出并记录随时间的变化的设备。
答案2
您的机器无法真正分辨出断电时发生了什么:那些电子只是停止出现。UPS 可能知道(如果您断电,而不是电源不稳定或类似情况),但我认为您不能指望服务器能够告诉您。
答案3
FreeBSD 有一个名为的很棒的端口,sysutils/apcupsd
旨在与 APC 智能 UPS 进行交互。
使用 USB 电缆将您的 UPS 连接到主机。编辑 /usr/local/etc/apcupsd/apcupsd.conf:
###
UPSCABLE usb
UPSTYPE usb
DEVICE
POLLTIME 60
LOCKFILE /var/spool/lock
BATTERYLEVEL 15
MINUTES 10
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
KILLDELAY 120
UPSCLASS standalone
STATTIME 60
STATFILE /var/log/apcupsd.status
###
该配置意味着下一个行为:
当断电时间少于 ANNOYDELAY 秒时,UPS 将在无信号的情况下使用电池供电
ANNOYDELAY 秒后,UPS 开始发出蜂鸣声。
当(电池电量低于电池电量百分比)或(电池预计使用时间少于分钟)时,
apcupsd
将等待 KILLDELAY 秒并开始shutdown -h now
处理。此后 UPS 将关闭负载并进入休眠状态。
当电源恢复时,UPS 将为负载供电,并且如果它配置为断电后启动,它将正常启动并且循环完成。
答案4
将日志保存到磁盘。您可以通过以下方式更改日志到磁盘的路径:这个实用程序或者手动更改路径。下次重启时你就可以找出原因。