我在Rackspace服务器上托管了我的Web应用程序。它的本地主机上有DB。
我不知道为什么我的数据库意外关闭,并且在我的生产服务器上显示错误建立数据库连接。
当我重新启动mysql服务器时它工作正常。 service mysql restart
。
我们的mysql服务器何时关闭,是否可以触发邮件?
我需要进行设置。
我是否应该编写一个检查每个5段数据库连接的函数,如果不正常则会触发邮件?
还有其他最佳解决方案吗?
服务器配置:
OS : Ubuntu 14.04
RAM : 8GB
PHP version : 5.3.10
MYSQL version : 5.5.40
答案 0 :(得分:2)
你所描述的被称为"看门狗"。
是的,它通常是通过在常规基础上轮询要监控的服务来实现的,但是较低的频率应该没问题。你对这里的几秒钟不感兴趣。您可以使用cron
作业。
轮询并不一定意味着您必须实现完全成熟的数据库连接。也许套接字测试足以确认服务器仍在启动并响应。这将需要更少的资源,但显然结果陈述也是有限的。
另一个更强大的方法是使用像nagios
或zabbix
这样的监控解决方案,它可以监控任意服务,系统,事物,随着时间的推移可视化结果并发送各种形式的警报和触发。
针对您的特定情况的第三种替代方法是为发送消息的应用程序实现错误处理程序。这很有可能,因为失败的数据库连接不是致命问题,因此您的脚本将继续执行。
我的个人建议是,如果您在专业环境中行事,如果您在线开展业务,则开始使用监控解决方案。
答案 1 :(得分:0)
尝试使用cronjobs创建一个php页面,如果连接成功则创建与数据库的连接,然后确定。如果连接不成功,请发送电子邮件。
if(! $conn ) {
//die('Could not connect: ' . mysql_error());
// send email
}
答案 2 :(得分:0)
答案 3 :(得分:0)
上面的答案非常好。
您还可以考虑uptimerobot.com或pingdom.com或任何其他网站监控解决方案。我个人使用这两个。我有一个特殊的网址,可以测试数据库,外部api,redis和更多的东西,这个网址被正常运行的机器人调用。
这些工具不仅会让您知道出现问题,还可以获得有关停机时间的总体统计信息。
他们还提供了另外的方法来告知您这个问题,提到短信。