FreeBSD 确定重启是否由于断电

FreeBSD 确定重启是否由于断电

我们正在运行 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

将日志保存到磁盘。您可以通过以下方式更改日志到磁盘的路径:这个实用程序或者手动更改路径。下次重启时你就可以找出原因。

相关内容