【问题标题】:Feedback requested for application / data monitoring solution申请/数据监控解决方案的反馈请求
【发布时间】:2010-09-13 03:41:40
【问题描述】:

我是我公司的一个非常敏感的系统的主要开发人员。这段代码设计得很好,但它有一些缺陷,使它有点不稳定。我们当然正在努力修复导致稳定性问题的缺陷,但与此同时,我们有时会出现一些问题。 “错误”的事情发生“错误”可能对公司非常不利,因此我们必须在此期间快速识别和解决问题。从长远来看,我希望有一个自动监控系统来对数据和其他事情进行完整性检查,以便在问题发生时通知我们。现在,虽然为了确保在我们到达那一点之前不会发生任何灾难性的事情,我正在寻求一些建议。

我们每天都会运行几项检查(主要是可以通过简单的 SQL 查询完成的数据检查)。其他应该每周运行,其他每月运行。过去,我将这些查询提供给其他人,并以确保它们在需要时运行为他们的工作。不幸的是,人类是不完美的,并且不可避免地会发生翻身,我们似乎总是最终发现一些比我们希望的更晚发生的事情,因为这些手动检查中的一项或多项没有运行。有人可以提供建议或让我知道一个可以帮助我管理这些脚本的应用程序,或者一个可以为我完成其中一些工作的现有应用程序吗?在这一点上,我唯一的选择是免费的应用程序,但如果有人对某些不免费的东西提出建议,我会将其列入稍后考虑的事项列表。我知道我的公司有一个开放式 NMS 监控系统,但负责人不会放弃对我的任何控制权,以便我可以为我的系统配置它,同时他们不会响应我设置监控的请求一点也不。我的公司过去也使用过 Nagios,但我认为这些都不能完全满足我的要求,因为我主要不是在寻找网络监控。

感谢任何帮助/建议。

【问题讨论】:

    标签: monitoring


    【解决方案1】:

    您需要编写一个非常简单的应用程序,该应用程序使用计时器定期触发操作(例如,运行 SQL 脚本并在查询失败时发送电子邮件或其他任何您想要的)。然后将此应用程序安装为 Windows 服务或 unix 守护程序,因此它始终在后台运行。或者,您可以使用任务调度程序 (windows) 或 cron (linux) 触发此应用程序。

    像 AlertGrid 这样的工具仍然很有用,因为即使您编写了这么小的应用程序并将其安装为服务/守护程序,您也永远不会知道它是否突然失败并由于某种原因停止(最坏的情况是主机运行向下)。问题是这样的:如果你自动化一个重复的任务,你消除了人为错误的可能性,但你开始面对另一个敌人:“无声”的失败。

    因此,要监控您的重复任务是否真的在运行,您必须有一些东西可以从您的应用接收“我还活着”消息,并在 x 分钟内未收到消息时发出警报。这东西必须 a)在托管您的应用程序的机器之外 b)可靠(因此它本身不会下降)。

    像 AlertGrid 这样的工具可以做到这一点,甚至更多。 AlertGrid 很好,因为它相对容易集成和使用。

    但这还不是全部。您写道:“因此,如果我检测到问题,我可以向 alert-grid.com 发送通知,它会向我们为其配置的所有各方发送通知?”。诀窍是你说你想检测问题。考虑另一种方法:配置 AlertGrid 以检测事件是否为事件。并非所有事件都必须是事件,大多数情况下,您的 SQL 脚本会顺利通过,对吗?为什么不报告成功呢?这样你就可以用一块石头杀死两只鸟:你通过定期检查任何事件(成功和失败)来监控你的应用程序是否正在运行,如果你在 x 时间内没有收到事件,则会发出警报,并且你会自动检测哪些事件是事件并通过电子邮件、短信或电话向适当的联系人发送通知。另一个优势:如果通知规则发生变化(例如,您想向 X 先生发送 SMS 而不是向 Y 夫人发送电子邮件)您不需要重新编译或重新部署您的应用程序,您只需在 AlertGrid 中重新配置即可。

    【讨论】:

    • 非常有帮助。这正是我正在寻找的信息。我曾希望找到一些易于实现且免费的东西,可以为我执行我的任务,但最终我知道我会转向更可定制的 Windows 服务或类似的东西。不过,我没有考虑过静默失败的解决方案,因此我非常感谢您的帮助以及您对如何将其与 alertgrid 等解决方案集成的建议。
    【解决方案2】:

    您可以尝试AlertGrid - 使用此应用您可以轻松设置通知规则,例如“如果我的计划任务没有及时完成 -> 发送短信”

    我们还使用 AlertGrid 来监控我们计划任务的一些逻辑统计信息(我们测量一些执行时间、已处理条目的数量),当然我们会在超过一些阈值时发出警报。

    有一个免费帐户可用(没有时间限制),可以使用一些提醒(价格主要取决于短信和电话提醒的数量)。与其他解决方案相比,与 AlertGrid 的集成非常容易。

    (我是 AlertGrid 团队的成员)

    【讨论】:

    • AlertGrid 是否允许我轻松地对数据库执行一些 SQL,分析结果,然后在这些结果不符合我们需要时发送警报?
    • AlertGrid 允许您触发外部 url(它可能是指向您的脚本的 url,它将运行必要的逻辑)。老实说,我从您的描述中判断出您已经有一些以预定方式执行的脚本,并且您希望在由于某些原因执行失败时收到警报。这两种情况都可以使用 AlertGrid。如果您提供更多详细信息,我们可以帮助您完成此集成。
    • 我们没有任何预定的脚本。我们有一些手动运行的 SQL 脚本。例如,可以查询一个表并确保没有 StatusID 为 27 的行。如果它找到行,则运行脚本的人知道会引发红旗。我们希望该脚本能够自动运行,并自动通知我们出现问题。
    • 据我了解,我看到的最简单的解决方案是让您的脚本自动化和安排。执行每个脚本后,您可以将有趣的参数发送到 AlertGrid 并围绕它们定义通知条件以自动执行警报过程。当然,您也可以针对由于某些原因计划任务未能完成或根本没有开始的情况设置警报。不确定在这种情况下什么是“举起红旗”。如果这意味着创建例如。由于 AlertGrid 中可用的 webhook 操作,这可能可以在外部应用程序中创建票证。
    • 很可能只是一封电子邮件。
    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    相关资源
    最近更新 更多