自动重启服务器

自动重启服务器

目前我在德国有一台 Hetzner 的网络服务器 VPS。他们提供免费的负载均​​衡器服务。我考虑在他们的芬兰站点克隆我的 VPS(即添加另一个具有克隆设置/内容的 VPS)以进行每日备份,这也可以通过负载均衡器提高我的站点的可用性。

使用两个 VPS 是否可行,还是我需要一个额外的 VPS 用于存储/数据库?我基本上是想实现 RAID-1 结构,但使用两个 VPS 而不是两个硬盘。

在 Debian 10 上设置此功能的最佳方法是什么,以便每当其中一台服务器发生故障时,另一台服务器可以发送命令自动重启?

答案1

分为两个部分,第一部分是检测服务器是否宕机,第二部分是发送重启命令。

对于检测,我建议使用从多个站点监控的服务,例如Hetrix工具(还有很多其他的)。如果您只是从其他 VPS 进行监控,则存在“误报”的风险,即由于 Hetzner 数据中心之间的某些网络问题,其他 VPS 被视为“关闭”,但可从大多数位置访问,从而导致不必要的重启。

要发送重启命令,请使用Hetzner 的 API(查看“软重启服务器”)。大多数监控服务都有“webhook”通知,您可以使用它来调用 API。如果没有(或者您不想向监控服务透露您的 API 密钥),那么您可以将 webhook 指向您自己的 Web 服务器并从那里调用 API。

更一般而言,在检测到服务器宕机后立即重启服务器不一定是最好的主意。您不知道原因(Hetzner 是否即将进行定期维护?)并且如果问题是暂时的,不受控制的重启可能会导致更多的停机时间而不是更少的停机时间。宕机通知通常也会在服务器宕机后立即发生,并且不会再发生,这可能是重启的最糟糕时间。可能需要更复杂的算法,例如等待 X 分钟并在至少 Y 分钟后重试,而不是在检测到宕机时盲目重启。但这超出了您原始问题的范围。

相关内容