使用 PHP 检查 SMTP/HTTP/FTP 状态

使用 PHP 检查 SMTP/HTTP/FTP 状态

我需要一段代码来检查网站是否正常运行或关闭。我认为这可以用 php curl 或 fsockopen 来完成。但我确实想检查其他服务(如 ftp、smtp、https、mysql 等)是正常运行还是关闭。有人能告诉我一种使用 php 实现此操作的方法吗?我有一个网站需要持续监控,但只需要一个简单的脚本。

答案1

马雷克是对的——你应该看看一些更复杂的东西。

您已经有多个服务需要检查 - 并且您需要一个安排这些检查的机制 - 并且您需要一个报告问题的机制 - 并且很快您就会希望您有某种保留机制来建立基线和趋势。

有些公司为网站提供非常基本的协议级别检查(其中许多公司可能使用 nagios 来实现这一点)。您可能仍然处于边缘地带,不知道是直接使用这样的服务更有效,还是咬紧牙关,自己实施监控。我会选择一条路线强烈建议您不要尝试编写自己的监控平台 - 无论您的要求看起来多么简单。

您不一定需要使用 NRPE - nagios(以及大多数监控解决方案)允许您配置(和编写)简单的脚本以间隔运行并整理结果。有许多预先编写的脚本可用。并且实现您自己的脚本非常简单:

<?php

$started=microtime(true);
if ($page=file_get_contents($argv[1])) {
   if (0.5<(microtime()-$started) && strstr($file, 'some string from page')) {
       print "OK";
       exit 0;
   } else if (strstr($file, 'some string from page')) {
       print "WARNING";
       exit 1;
   }
   print "CRITICAL";
   exit 2;
}
print "UNKNOWN";
exit 3;

(标准监视器中捆绑了比这更好的脚本)。

答案2

您可以使用 nagios 的一部分(称为 nagios-nrpe),并使用 PHP 连接到它:

http://blog.cactiusers.org/2012/02/18/nagios-nrpe-client-via-php/

相关内容