我浏览了这里的论坛,想知道监控“整个”网站(不仅仅是主页)状态的最佳做法是什么?就优先级而言,如果您的主页瘫痪,通常整个网站都会瘫痪。但从更细微的层面来说,我想知道如何监控我们网站的某个部分或页面是否没有响应。
我们没有预算购买 webmetrics 或 gomez 等高端工具。我查看了 pingdom 和 bello,这两个工具似乎只是检查您的主页是否正常运行。
我们是一家窗户商店,拥有 300,000 多个页面的网站。我知道监控每个页面是不现实的。只运行一个脚本来检查网站上的主要页面是否正常,这有意义吗?例如,如果我们检查主要服装页面是否正常,那么我们可以假设其子页面(男装、女装)也正常。
任何建议都将不胜感激。谢谢!
答案1
你可以使用 Nagios。有一个 check_http 插件,你可以多次使用。给一个实例一个 URLhttp://我的服务器/,另一个http://我的服务器/服装,三分之一http://我的服务器/硬件等等。还举一个例子http://myserver.mydomain.com检查 FQDN 的使用情况。
来自 check_http 文档:此插件将尝试打开与主机的 HTTP 连接。成功连接返回 STATE_OK,拒绝和超时返回 STATE_CRITICAL,其他错误返回 STATE_UNKNOWN。成功连接,但主机的响应消息不正确会导致返回 STATE_WARNING 值。
答案2
在 Apache 中,我确信在 IIS 中(或 Windows 下的 Apache),您可以将 5xx 系列错误页面捕获到您自己的处理程序中。如果您在前面运行 varnish/squid/pound,则可以设置一个后备主机,该主机将在发生故障时显示特定页面。该后备主机可能是一个非常简单的小型堆栈 Web 服务器,它除了设置您监视的页面的状态外什么也不做。5xx 处理程序也可以拦截并记录该数据。
我不太喜欢 5xx 错误生成电子邮件/分页,因为数据库服务器可能已关闭,并且您的 300k 页面中的每一个都可能立即开始生成错误。但是,拦截处理程序并使用它来写入/修改受监控的页面或状态将为您省去抓取大量页面样本的麻烦。
答案3
虽然这可能不是“最干净”的解决方案,但您能否简单地编写一个(状态)页面来检查系统中的所有各个层?如果此页面返回任何内容,但不是某种成功消息,则意味着该层中的某个地方出现故障,您可能会收到警报。
再说一遍,不要声称这是一个灵丹妙药 - 或者甚至是最强大的解决方案 - 但是如果你需要某些东西,并且需要快速得到它,那么它可能会起作用。
答案4
你可以尝试http://www.catchpoint.com用于外部监控,类似于 webmetrics 和 gomez,但更直观且具有一些有价值的功能。
您还可以访问 www.splunk.com 来挖掘您的日志,但这并不能告诉您您的用户是否无法访问您的网站。