由于我们是一家网络软件开发公司,因此我们有许多应用程序在不同的服务器上运行。有时,我们会收到通知,其中有一些由于不同的问题而失败。

是否有服务器/应用程序/工具在给定具体间隔的情况下依次检查给定url的状态(执行原始HTTP GET请求)?如果我们可以添加一个邮件服务器配置以便在站点关闭时通知管理员,这也将很有趣。

构建我们自己应该没有那么复杂,但是我只想检查一下为了避免重新发明轮子,有一些可用的方法。

该工具应提供以下功能:


我们可以在我们的Web服务器中安装该工具,而不必依赖第三方服务
可以手动启动/停止的服务
轻量级解决方案
至少可以在Linux上运行,在Windows上也可以运行它
开源/廉价替代品


评论

关于要求的一个评论:几年前,我们编写了一种工具来实现此目的,并将其运行在我们自己的服务器上。我们需要知道a.s.a.p.当我们的(托管)服务器之一关闭时。自己运行它有一个缺点,那就是必须提供我们自己的连接断开的可能性。我们通过ping完全不相关的可靠站点来解决此问题。因此,这成为一种“分布式”测试。 (商业)外部服务将在不同位置进行测试,甚至可能通过SMS提醒您。底线:我建议外部服务。

@JanDoggen,您的反馈很好。实际上,除了内部服务器之外,我们的某些应用程序确实在外部运行。该方法将包含在我们自己的Web服务器和外部Web服务器中的工具中。这样,我们可以让每台服务器测试所有服务。这样做有几个缺点,那就是每次我们设置新服务时都必须更新要检查的地方。但这就是我的问题。实际上,我们也在考虑运行外部服务,因为uptimerobot.com
有一些有趣的免费选项。
´loop:curl url和sleep 600和goto loop´?

我使用免费的网站监控服务upnow.info,它是开源的,基于Sails JS + Angular(NodeJS)

#1 楼

您要查找的内容属于监视软件类别。

我使用过mon。现在,我不是专家,所以我无法真正说出它与现有的许多其他监视工具相比如何,但是根据您的描述,它应该对您来说很好。


我们可以在我们的Web服务器上安装的工具→apt-get install monyum install mon或您发行版中的任何内容
可以手动启动/停止的服务种类→service mon start/stop
轻量级解决方案→该程序及其文档大约需要1MB
至少可以在Linux上运行,也可以在Windows上运行→在所有主要的Linux发行版中都应该很有趣;
开源→是的,它是Debian兼容的免费软件。

Mon很容易上手。当同一盒上的Apache服务器出现故障时,它在Debian / Ubuntu上开箱即用,会向我发送电子邮件(root)。显然,您必须编辑配置文件以使其监视其他主机。 Mon附带了对主机(ping),HTTP,FTP,SMTP,MySQL,可用磁盘空间和许多其他服务的监视,并且您可以运行任意命令来监视非内置的服务。警报可以通过电子邮件,SNMP或自定义方法发送。

Mon不会尝试重新启动已发生故障的服务,这超出了其工作范围。

您可能想要在Unix&Linux和Server Fault上浏览monitoring标记,以查看是否有其他选择适合您。

评论


似乎满足了所有要求(+1)。就像一个旁注:最近的更新似乎是从2010年开始的。但这对于简单的后台服务而言并不意味着什么:)一个可比较的(也是最新的)项目是PHP Server Monitor。但没有使用它,我无法详细说明...

– Izzy♦
2014-02-24 18:56



@Izzy我必须亲自尝试在Windows上进行尝试,并且一直关注该主题。

–尼克·迪金森·威尔德
2014年2月24日19:49

@NickWilde如果您要谈论的是PHP Server Monitor(我假设是这样),欢迎您通过创建答案将您的尝试转换为代表。查看该项目的评级,我很确定这是值得的!

– Izzy♦
2014年2月24日在20:12

@Izzy是的,一旦我尝试过,我一定会把它变成一个答案,如果我匹配它的外观以及它的外观,谢谢:)

–尼克·迪金森·威尔德
2014年2月24日20:30在

#2 楼

这是Nagios设计的目的之一。它可以通过所谓的NRPE监视几乎任何外部可见的服务(HTTP,IMAP,POP,MySQL,SSH等)以及服务器上的任何内部内容(磁盘使用,系统负载,进程数)。它将发送有关服务问题的电子邮件,视情况而定(有限制条件(不要在工作时间以外发送电子邮件给Joe)),以任意复杂地将收件人映射到计算机上的服务。它将保留有关服务何时启动/紧急/停机的日志。也可以将其设置为对服务故障执行其他操作(如果关闭,则重新启动MySQL)。它是免费和开源的(有一个付费版本,其功能超出了您的需求),并且有大量文档。 Nagwin至少有一个Windows(Cygwin)端口。

评论


我想添加一个插件可以很容易地通过NRPE进行检查。创建一些根据状态返回0、1、2或3的脚本,将该脚本添加到commands.cfg文件并检查所需内容。最重要的是,您还拥有用于监视Nagios的移动应用程序。值得一读:signalvnoise.com/posts/3178-nagios-monitoring-performance

–xbello
2014年2月25日在17:17

#3 楼

我为此使用Monit,它是免费的开源(AGPL)和可用的Debian软件包。

它支持:


Daemon模式-轮询程序指定的时间间隔
监视模式-主动,被动或手动
程序的启动,停止和重新启动
分组和管理程序组
进程依赖性定义
登录到syslog或自己的日志文件
配置-全面的控制文件
运行时和TCP / IP端口检查(tcp和udp)
SSL支持端口检查
Unix域套接字检查
进程状态和进程超时
进程cpu使用率
进程内存使用率
进程僵尸检查
检查系统平均负载
检查文件或目录时间戳
警报,停止或根据其特性重新启动进程
通过monit启动和停止的程序的MD5校验和
有关程序超时,重新启动,校验和,停止的警报通知
资源和时间戳错误
灵活和可定制电子邮件警报消息
协议验证。 HTTP,FTP,SMTP,POP,IMAP,NNTP,SSH,DWP,
LDAPv2和LDAPv3
http接口具有可选的SSL支持,可通过Web浏览器访问monit



#4 楼

如果您愿意为服务付费,那么Pingdom会让我感到非常满意。


您可以配置检查间隔
停机时间通知是通过电子邮件,SMS消息或Twitter发送的。
它们具有合并的仪表板,可提供有关以下内容的摘要和历史数据:您正在监视的网站。
如果您想尝试一下,他们有一个免费计划,可以监视单个URL。


评论


看起来很有趣。但是我宁愿拥有一些内部的东西,而不是依赖第三方(和付费)服务...

– Xtreme Biker
2014年2月24日14:15



可以在无法通过Internet访问的服务器上工作吗?

–吉尔斯'所以-不再是邪恶的'
2014年2月24日18:00

@吉尔斯,不,不是。

–耶利米·奥尔(Jeremiah Orr)
2014年2月24日19:44

@XtremeBiker在原始问题中没有提到的那些,尽管我看到您现在已经对其进行了更新。

–耶利米·奥尔(Jeremiah Orr)
14年2月24日19:45在

#5 楼

SoapUI的所有者SmartBear提供了这样的服务。目前,基本服务的起价为$ 12 /月(可免费试用所有级别的服务)。

它涵盖了您的规格以及更多内容。我不确定您是否会认为这样的服务过大,因为它似乎比您的问题要大得多。它确实包括您想要的性能阈值监视,并且它同时包含电子邮件和有关任何问题的SMS通知。

我过去(和现在)曾多次使用SmartBear的产品,对此感到非常满意他们。如果您想对该服务进行测试,请查看其免费演示。只要将您的URL放入其中,它就会根据您的站点创建报告。

所有这些,如果您想进行简单的上/下检查,我只需要亲自编写一个pinger即可。这些其他选项非常适合监视,发现瓶颈并在问题出现之前加以解决,而这正是它们的价值所在。而且从价格上来说,它比负载和性能测试便宜很多。

评论


看起来很有趣,但是看起来它是一个更完整的工具,还可以对应用程序进行整体测试。我只想通知它是否出现故障! (在获取页面时检测404响应就足够了)

– Xtreme Biker
2014年2月24日14:11在

我对此没有经验,但是看起来很适合您的需求。 Ping for Life看起来非常基础。这样可以更好地满足您的需求吗?

– Paul Muir
2014年2月24日14:33