当 mysql 服务器关闭时触发邮件

Trigger a mail when mysql server is down

我在 Rackspace 服务器上托管了我的 Web 应用程序。它在其本地主机上有数据库。 我不知道为什么我的数据库意外关闭,并且在我的生产服务器上显示错误建立数据库连接。 当我重新启动 mysql 服务器时,它工作正常。 service mysql restart.

我们可以在 mysql 服务器宕机时触发邮件吗?

哪里需要设置

我是否应该编写一个函数来检查每 5 个部分的数据库连接,如果不正常,它会触发邮件?

还有其他最佳解决方案吗?

服务器配置:

OS : Ubuntu 14.04 RAM : 8GB PHP version : 5.3.10 MYSQL version : 5.5.40

你描述的是 "watchdog"。

是的,它通常是通过定期轮询要监视的服务来实现的,但是较低的频率应该没问题。你对这里几秒钟不感兴趣。为此,您可以使用 cron 作业。

轮询并不一定意味着您必须实现完全成熟的数据库连接。也许套接字测试足以确认服务器仍在运行并响应。这将需要更少的资源,但显然结果声明也是有限的。

另一种更强大的方法是使用像 nagioszabbix 这样的监控解决方案,它允许监控任意服务、系统、事物,随着时间的推移可视化结果并发送各种形式的警报和触发器。

针对您的特定情况的第三种选择是为发送消息的应用程序实施错误处理程序。这是很有可能的,因为失败的数据库连接不是致命问题,所以您的脚本会继续执行。


我个人的建议是,如果您在专业环境中行事,如果您在线开展业务,则开始使用监控解决方案。

尝试使用 cronjobs 创建一个 php 页面,如果连接成功,则在其中创建与数据库的连接。如果连接不成功,请发送电子邮件。

if(! $conn ) {
  //die('Could not connect: ' . mysql_error());
  // send email

}

您可以使用pm2-mysql

pm2 install pm2-mysql

然后通过 https://keymetrics.io/ 连接它,如果它出现故障,您会收到通知

上面的回答都很好。

您还可以考虑 uptimerobot.com 或 pingdom.com 或任何其他网站监控解决方案。我个人使用这两个。我有一个特殊的 url 可以测试数据库、外部 api、redis 和其他一些东西,这个 url 由 uptime 机器人调用。

这些工具不仅会让您知道出现问题,而且您还可以获得有关停机时间的总体统计信息。

他们还提供了通知您问题的替代方式,比如短信。