我是公司非常敏感系统的主要开发人员。这段代码设计得很好但是它有一些缺陷使它有点不稳定。我们当然正在努力解决导致稳定性问题的缺陷,但与此同时我们不时会遇到一些问题。 “错误”的事情对于公司来说可能是非常糟糕的,但是在此期间我们必须非常快速地识别并解决问题。从长远来看,我希望有一个自动监控系统来对数据和其他事情进行健全性检查,以便在出现问题时通知我们。现在虽然为了确保在我们达到这一点之前没有发生任何灾难性的事情,我正在寻求一些建议。
我们每天都会运行几项检查(主要是使用简单的SQL查询进行数据检查)。其他应该每周运行,其他人每月运行。在过去,我已经向其他人提出了这些问题,并确保他们在需要时运行。不幸的是,人类不完美并且不可避免地翻身,我们似乎总是发现一些不好的事情发生在我们希望的时间之后,因为这些手动检查中的一个或多个没有运行。有人可以提供建议或让我知道可能有助于我管理这些脚本的应用程序,或者可能是现有的应用程序可以为我做一些这项工作吗?在这一点上,我唯一的选择是一个免费的应用程序,但如果有人建议不自由的东西,我会把它放在稍后要考虑的事项列表中。我知道我的公司有一个Open NMS监控系统,但负责人不会放弃任何控制权,以便我可以为我的系统配置它,同时他们不响应我设置监控的请求一点都不我的公司过去也曾使用Nagios,但我不认为其中任何一个完全我想要的东西,因为我主要不是在寻找网络监控。
感谢任何帮助/建议。
答案 0 :(得分:2)
您需要的是编写一个非常简单的应用程序,该应用程序使用计时器定期触发操作(例如,在查询失败时运行SQL脚本并发送电子邮件或您想要的任何其他内容)。然后您将此应用程序安装为Windows服务或unix deamon,因此它始终在后台运行。或者,您可以使用任务计划程序(Windows)或cron(linux)触发此应用程序。
像AlertGrid这样的工具仍然可以提供帮助,因为即使你编写这么小的应用程序并将其安装为服务/守护程序,你也永远不会知道它是否突然失败并因某些原因而停止(最糟糕的情况是托管机器正在运行)下)。问题是:如果你自动执行一个重复任务,你就消除了人为错误的可能性,但你开始面对另一个敌人:“沉默”失败。
因此,要监视您的重复任务是否真正在运行,您必须拥有可以从您的应用程序接收“我还活着”消息的内容,并在x分钟内未收到消息时发出警报。这件事必须 a)在托管您的应用程序的机器的外面 b)可靠(所以它本身不会下降)。
像AlertGrid这样的工具就是这样做的,等等。 AlertGrid很不错,因为它相对容易集成和使用。
但这不是全部。您写道:“因此,如果我发现问题,我可以向alert-grid.com发送通知,它会向我们配置的所有各方发送通知吗?”。诀窍是你说你想要发现问题。考虑另一种方法:配置AlertGrid以检测事件是否是事件。并非所有事件都必须是事件,大多数情况下,您的SQL脚本会毫无错误地通过,对吗?为什么不报告成功呢?这样你就可以一举两得:你通过定期检查任何事件(包括成功和失败)监视你的应用是否正在运行,如果你没有在x时间内得到一个事件,你会发出警报,并自动检测哪些事件是事件,并通过电子邮件短信或电话发送通知给适当的联系人。另一个优点:如果通知规则发生变化(例如,您希望向X先生发送短信而不是向Y太太发送电子邮件),您不需要重新编译或重新部署您的应用程序,您只需在AlertGrid中重新配置它。
答案 1 :(得分:1)
您可以尝试AlertGrid - 使用此应用,您可以轻松设置通知规则,例如“如果我的预定任务尚未及时完成 - >发送短信”
我们还使用AlertGrid来监控我们计划任务的一些逻辑统计数据(我们测量一些执行时间,已处理条目的数量),当然我们在超过某些阈值时会发出警报。
有一个免费帐户(不受时间限制),可以使用一些警报(价格主要取决于短信和电话提醒的数量)。与其他解决方案相比,与AlertGrid的集成非常容易。
(我是AlertGrid团队的成员)