应用程序监控的最佳实践

本文关键字:最佳 监控 应用程序 | 更新日期: 2023-09-27 18:27:07

我正试图为我们的运营部门创建一个监控应用程序,以便在处理遇到问题的系统时保持主动。我创建了一个能完成这项工作的应用程序,但它有一些缺点:

  1. 运行的应用程序的每个副本都会向系统提供单独的ping,而1次ping就足够了
  2. 我有3个不同的api来获取我们系统的状态,这取决于它托管的IIS、WCF还是桌面

为了解决第一个问题,我将创建一个数据库,由临时服务(应用程序)(监视器)进行ping,然后应用程序将查询数据库以获取更新。经过思考,我意识到了第二个问题,并决定这是一个未来的问题。

因此,我的想法是,与其让临时应用程序对系统进行ping,不如让每个系统都有一个接口,在该接口中,它每x次向数据库发布一次状态。但后来我遇到了WCF和IIS服务的问题。这些服务可能会持续数天,而没有人真正使用该服务。我将如何让这些服务继续发布其数据?

我的问题是:

在这种情况下,请求数据还是推送数据更好?

如果请求,在多个平台(IIS、WCF、Desktop)上维护单个API的建议做法是什么?

若PUSHED,那个么您将如何处理基于实例且不连续运行的Web服务的情况?

应用程序监控的最佳实践

对于web服务,一种解决方案可能是实现健康检查端点,您可以简单地调用它,比如:webservice/isServiceUp?

我更希望这些信息是PULLED。如果一个服务/web服务/应用程序出现故障,那么您就不可能依赖它来向数据库写入内容。。。这是可能的,但风险很大,而且不可靠。

在现实世界中,它比这更复杂一点,因为在您的服务主机和消费者之间可能会发生一些事情(例如DNS问题),在这种情况下,您可能需要考虑从isServiceUp没有得到任何回报的情况(没有真没有假,只有400 lvl错误)。。。

考虑使用负载平衡器检查APPS/web服务,并在出现问题时主动切换到其他IP。。。这是可能的。