是否有AWS / Pagerduty服务会在没有通知的情况下提醒我

时间:2018-05-11 16:54:11

标签: amazon-web-services alert amazon-sns amazon-ecs pagerduty

我们在AWS ECS上运行了一个小的java调度程序。它正在做cron曾经在我们的旧巨石上做的事情。它在docker容器中启动(fargate)任务。我们每小时都有一项任务,对我们来说非常重要。我想知道它是否因任何原因崩溃或无法运行(例如,java调度程序失败,或有人关闭任务)。

我正在寻找一项服务,如果通知 ,它会提醒我。我想在每次脚本成功运行时调用通知系统。然后,如果警报系统没有得到" OK"按预期通知,它会发出警报。

我认为这种服务必须存在,我不想重新发明轮子试图自己构建它。我猜我的问题是,它叫什么?我在哪里可以得到那种东西? (我们明显使用AWS,并且我们有一个pagerDuty帐户)。

2 个答案:

答案 0 :(得分:1)

我们对这些类型的问题使用这种方法。首先,任务必须在S3或EFS中为时间戳写入文件。此文件是任务运行完成的外部证据。然后,您需要一个基于http的服务,该服务将读取该文件并计算时间戳是否有效,即在过去一小时内是否已更新。这可能是一个简单的php或nodejs脚本。此过程向公共网络公开,例如https://example.com/heartbeat.php。如果时间戳文件存在且有效,则此脚本返回http响应代码200,否则返回500。然后我们使用StatusCake来监控网址,并在发生事故时通过其Pager Duty集成通知我们。我们通常在响应中包含一条消息,以便人们可以看到错误的本质。

这看似乏味,但它是万无一失的。任何沿线的任何故障都将立即通知。 StatusCake有很好的免费服务水平。此方法可用于以相同方式监视任何关键任务。我们已经了解到关键cron类型任务和流程可能由于多种原因而失败的困难方式,并且您希望在它变得对客户至关重要之前了解它。 24x7x365监控这些类型的任务是必要的,并帮助我们在晚上睡得更好。

注意:我们每天都有一个日常系统测试事件,每天上午9点触发一次Pager Duty通知。对于真正的偏执狂,这确保了寻呼机本身没有以某种方式失败,例如错误配置等。我们的支持团队知道他们是否每天都没有得到测试警报,通知系统本身存在问题。值班技术人员必须根据SOP了解事件。如果他们不知道,那么它会升级到下一层,我们知道我们必须谈谈响应时间。它让人们保持警惕。这是确保您拥有强大监控基础架构的最后一块。

答案 1 :(得分:1)

OpsGene提供心跳服务,基本上是看门狗计时器。如果您没有在x分钟内对它们进行ping操作,则可以将其配置为呼叫您。

不幸的是,我不推荐他们。我使用它们已有4年了,他们两次更改了帐户系统,并让我的付费帐户默默地变成了孤儿。我一有空就必须尽快找到新的供应商。