2010-03-11 42 views
3

对不起,我真的不知道以正确的方式来问这一个如此忍受我...如何显示我的服务器当前的响应时间,平均用户

我们有一个运行在Web应用程序一个数据中心(不在我们的办公室)的一组服务器 我们希望能够以某种方式向我们的客户/用户“广告”我们的服务器的可用性或响应时间全天符合标准。

我被要求提出一个标准指标,我们可以在我们的登录屏幕上轻松做出广告宣传,每隔x分钟显示当前“标准响应时间”。

我的想法是,我需要从服务器(无论是在我们的办公室,亚马逊,等等)捕获traceroute的结果到其中一个数据中心服务器,并拿出一个红色/黄色/绿色类型的登录屏幕通知程序,让用户知道我们的测试正常响应,如果他们有延迟问题,它可能是他们的网络或连接到互联网。我们在农村地区有很多客户连接不畅,我们正试图让他们知道任何缓慢可能是他们的最终目的,而不是我们的。

我已经有LAMP堆栈可以使用,但是这也可以是其他一些系统,只要它可以使用结果更新主服务器即可。

我已经有pingdom报告可用,但这有点比人们想要阅读有时更多。

关于我能做什么的任何想法?

分辨率

我结束了Tim的PEAR Net_Ping想法去。我使用了以下内容:

$ping->setArgs(array('count' => 6)); 
$results = $ping->ping('x.x.x.x'); 
$avgPing = $results->_round_trip['avg']; 

为了获得平均6 ping到服务器。然后我将结果存储在数据库中,并能够显示最近5次检查的平均值,以提供健康的想法。我们会看到客户喜欢它。

+1

你是怎么设法输入所有这些信息的?它一定已经把你*小时!* – Drew 2010-03-11 08:38:31

+0

只是想弄清楚细节 – Jason 2010-03-12 01:26:28

+0

我猜的太模糊了。我指的是你的塑料C形手。 ASDF JKL;必须是*婊子!* – Drew 2010-03-12 02:08:17

回答

3

如果你所关心的是网络延迟(不是像服务器负载),为什么不从服务器ping 一组已知的良好的主机。然后向用户报告平均ping时间(使用不同响应范围的色阶)。

然后,您还可以ping用户的IP并显示“状态”,因为目标是说明'滞后'的位置。

这似乎比从外部服务器(至少对我)进行延迟检查更好更简单。

要执行实际的ping命令,您可以使用cron作业并使用php脚本处理结果,或者使用ping库。 PEAR的Net_Ping没有维护,但确实有效。

对于比ping更复杂的事情,您可以获取一些页面(或图像),然后计算获取时间/响应大小。如果带宽负载是一个潜在的问题,这可能是一个更好的指标(这是“速度测试”网站背后的基本概念)。

+0

我正在尝试Net_Ping ...当我使用示例 (print_r($ ping-> ping('192.168.123.1'));)时,它提供了大量信息。 你知道我怎么能自己从[_round_trip]中获得[avg]值吗? – Jason 2010-03-12 02:39:13

+0

我从Net_Ping获取数据时遇到了问题,在一种情况下,我只是最终解析了原始输出(这与运行ping命令并解析它非常相似)。 – 2010-03-12 05:22:15

1

NagiosOpenNMS这样的网络监控应用程序会给你你可能需要的任何统计信息,至少Nagios已经有了web interface。我相信OpenNMS也是如此,但它需要Tomcat。

我只和Nagios合作过,那是很多年前的事情(对于一个区域拨号ISP,每天都有很多这样的电话)。我不得不刮取Web界面,并借用一些生成的图形图像用于我自己的显示,但很容易通过cron自动化每小时。如果它没有某种附加组件,现在可以简化这个过程,如果不是适当的API,我会感到惊讶。

+0

感谢您的想法。我正在为我的用户寻找简单的东西,但我最终可能会将其作为内部工具使用。 – Jason 2010-03-12 01:25:45

相关问题