ping一个站点是检查它是否已关闭的好方法吗?

时间:2010-12-27 13:55:46

标签: web monitoring ping uptime downtime

我正在尝试编写一个小型网站监控程序,它可以检查我的网站主机是否已关闭,并计算正常运行时间或警告我是否已关闭。它将是一个独立的应用程序。

我想知道ping是否是查找网站是否已关闭的好方法?

提前致谢。

5 个答案:

答案 0 :(得分:3)

这是一个你可以做的事情,但无论如何都不是确定的。

某些网站会忽略ICMP数据包,因此不会给出ping响应。即使Web服务器(或您正在使用的任何服务)关闭,某些站点也会响应ping。

您可以确定给定网站提供服务的唯一方法是使用该服务。没有其他事情会如此准确。

更好的方法是提供一系列步骤,以检测故障所在的位置,至少在您可以控制的基础架构中。例如:

  • 允许收到ping并采取行动。
  • 在网络服务器中有一个静态网页。
  • 在应用程序服务器中有一个动态页面,用于提供静态内容。
  • 在使用数据库的应用程序服务器中有一个动态页面。

然后,您的测试客户只会尝试“联系”这四点并报告成功。由于您希望您的网站大部分时间都处于启动状态,我只需检查第四个选项,看看是否一切正常,只有在发现问题时才进行其他检查。

答案 1 :(得分:2)

这取决于你如何定义ping。如果您正在谈论“低级别”ICMP回声,那么它不可能是您网站是否已关闭的良好指标。最好让实际应用程序从您的站点下拉页面以确保HTTP服务器正在运行。有很多服务,也可以从谷歌下载一些代码。 http://www.dailyblogtips.com/test-if-a-website-is-down-for-everyone-or-just-for-your/

答案 2 :(得分:2)

  

您可以确定给定网站提供服务的唯一方法是使用该服务。没有其他事情会如此准确。

完全同意。因此,最好的方法是创建一个脚本,在您的网站上进行事务监控(有时也称为真实用户监控)。您可以使用Perl(Mechanize),免费的iMacros for Firefox插件或在Windows上使用webbrowser控件。

Bur为什么不简单地使用(免费)第三方监控服务?有一些服务提供事务监控(Keynote,...)。 AlertFox还有free transaction monitoring计划。这可以帮助您入门(和/或将第三方结果与您自己的结果进行比较)。

答案 3 :(得分:1)

ICMP可以证明服务器还活着。

TCP检查可以显示Web服务器正在运行,但不能显示该站点。

要执行站点检查,您应该执行http GET请求(有时甚至HEAD不起作用)以确保页面正常。(返回状态200)

您可以编写自己的检查系统或使用某些第三方网站,例如http://allping.net/

答案 4 :(得分:0)

ping可让您深入了解特定位置的延迟,并指出可能的网络问题(数据包丢失)。如前面的答案中所述,某些服务器不响应ping请求,在这种情况下ping无用。 要从全球50多个地点检查服务器,请查看此免费工具:http://just-ping.com/