我有一个现有的 AWS 基础设施,它与 DataDog 集成,负责监控各种指标,例如 SQS 队列、ELB 等。
我想为一些网站和 API 设置健康检查。据我所知,可以通过 AWS ELB 健康检查来实现。但是,我想模拟最终用户体验,以便请求从外部世界发送并通过 ELB 传输到应用程序。此外,目前并非所有应用程序都具有 ELB。我决定使用 DataDog 的 HTTP 检查。问题是,我是否应该有一个单独的 EC2 实例来安装代理?我当然不想将代理安装在与网站相同的机器上并对其进行 ping,因为这样会错过各种网络问题。
我也考虑过由 DataDog 监控的 Route 53 健康检查,但我认为它不够快,因为与 DataDog 的代理报告相比,DataDog 和 AWS 之间的通信通常会延迟。
更新:目前我决定使用 Route 53 健康检查和 CloudWatch 警报。DataDog 负责在触发某个警报时发送通知。正如预期的那样,警报和 DataDog 的反应之间存在一些延迟,但事实证明这是可以接受的。
为了进行更深入、更严肃的分析,我还考虑了 New Relic 和 Application Insights。它们似乎都提供了所需的健康检查,尽管 New Relic 相当昂贵,而 Application Insights 与 Azue 的集成效果更好。
答案1
我建议为此使用第三方服务。由于我们已经安装了 newrelic,因此我们使用了随附的可用性监控来 ping 一些 API 端点。它也应该与 datadog 很好地集成。仅就 ping 检查而言,newrelic 可能太贵了,但还有其他可用的选项,例如https://www.host-tracker.com/可以使用其 API 进行集成。