检查服务器是否closures的最简单方法是什么? 不使用第二台服务器或我的家用电脑。 最好是自我检测。
我正在考虑每隔几分钟使用一次cron job来使用libcurl来下载页面,看看是否有错误。
你不会安排可靠的自我检测。 一台机器可以logging“是的,我似乎在这里”,但是如果它是closures的或者完全挂起的话,它将不能够被login,因为它会被closures或者完全挂起。 此外,您可以检查您的networking服务器是否在本地运行,并能够logging影响服务器可以看到的所有内容的networking中断(通过使用libcurl从外部请求对象,或发送ping请求),但是不会能够检测到更细粒度的故障,阻止阿帕奇对外界可见。
虽然有很多便宜的监控服务,有些像pingdom ,提供免费帐户,您可以监控一个服务。 我会build议你尝试这样的事情。
编辑:
根据你的问题所附评论的讨论,有许多工具可以让机器监视自己的状态以及(或者取而代之)。 我使用collectd (可以在Debian和Ubuntu标准库中find,也可以很容易地在其他发行版中获得)来收集有关CPU负载,I / O负载,内存使用和许多其他variables的数据以及这个略有修改的版本cgi脚本来绘制结果数据集的graphics。 用于监视怪异的情况,例如无法解释的CPUD负载增加,我看到VMWare虚拟机强加(一旦你重新启动虚拟机就会消失,只能慢慢爬回去)。 有一些类似的工具,所以你应该能够find一个接近于你想要的工具。 collectd有很多内置的插件 ,你可以用C,perl或者只是一个shell脚本来编写你自己的脚本,如果你需要的东西不是标准的话。
我仍然推荐一个外部监视器,因为有几个提供商会以合理的频率监视一台服务器。
如果您指的是服务,而不是服务器本身,那么我以前使用Monit来进行单服务器设置。
古代,但是,非常简单和容易,做非常基本的检查。
您应该描述在您的特定情况下“停机时间”意味着什么。
如果您只对在单个服务器上运行的应用程序的运行状况感兴趣,那么运行testing以确保应用程序能够访问所需的所有资源以便“启动”,这可能会在出现问题时提醒您。
如果您感兴趣的是networking连接,则可以编写一个代理来检查接口状态(上/下,链接速度等)和中间节点。 但是,如果它已经closures了,服务器将无法报告。
所以在你的问题中有很多IF。 您应该花时间客观地确定您对监控有什么兴趣,然后从那里出发。 您可能会发现一些情况,如果没有第二台服务器的帮助,将无法监控。
你打算如何处理这些数据?
如果是某个月末的审计/报告,那么你可以很容易地编写一个perl脚本,logging每分钟到达一个文件/数据库,如果它启动了,是否可以连接到互联网。
如果警告你服务器发生故障,那么你需要某种外部服务。
像往常一样,这里最大的问题是你想达到什么目的?
尽pipe别人提出了什么build议 – 有可能有一台机器衡量自己的可用性 – 有专门devise的硬件工具 ,以确保良好的正常运行时间没有远程监控(有看门狗的谷歌)。
监测有什么限制?
你可以安装硬件吗? 你有root权限吗? 这是一个托pipe的机器吗? 你有服务提供商的SLA吗?
监控的最大问题是,最终不仅要监控目标,还要监控目标与监控之间的联系以及监控系统本身。
很多人现在有一个iPHone所以这里是另一个想法,并build立在以下概念, http ://geekness.eu/content/istat-pfsense-and-server-monitoring基本上,您的路由器上的DDWRT监视您的服务器。 然后,iPhone将定期与您的路由器进行健康数据连接。 显然,iPhone中还有额外的工具可以在出现问题时进行进一步的诊断。 http://www.dd-wrt.com/phpBB2/viewtopic.php?p=537279我见过一个Android端口,但似乎是不可靠的。 鉴于智能手机世界的发展速度,我不会感到惊讶,如果有其他可行的替代scheme。