关于如何监控(微)服务的建议?

时间:2016-02-23 21:54:58

标签: service spring-boot monitoring microservices spring-boot-actuator

我们正在从单块应用程序服务器上的构建应用程序转换到Spring Boot上面向更多面向微服务的应用程序。我们将通过HTTP或JMX与SB Actuator一起发布健康信息。

监控服务的选项/最佳做法有哪些,总共约为30-50?感谢您的投入!

1 个答案:

答案 0 :(得分:2)

不了解您的架构和服务的详细信息,以下是一些建议,这些建议代表了我在生产过程中所使用的系统中已经过验证的策略(的一部分)。为此,我假设您每个微服务使用一个容器/ VM:

  • 如果您的服务是无状态的(因为它们应该是:-)并且您有冗余(因为您应该:-))然后您设置负载均衡器以在每个实例上调用您的/ health并且如果运行状况检查失败则负载平衡器应该使实例不再旋转。根据系统的容忍程度,您可以设置定义故障的各种规则,而不仅仅是单个故障(例如,连续3次等)
  • 在每个实例上运行一个Nagios代理,该代理在localhost上调用您的运行状况检查(/ health)。如果此操作失败,则生成一个警报,指定哪个实例失败。
  • 如果您的实例对于给定服务都不健康,您还希望确保生成更高级别的警报。您可以在负载均衡器中进行设置,也可以在负载均衡器外部设置监控进程,定期调用您的服务,如果没有得到任何响应(即没有任何实例响应),那么它应该响起所有警报。希望这种情况永远不会在生产中触发,因为您处理了其他警报。
  • 高级:在云环境中,您可以使用自动缩放功能连接警报。通过这种方式,每当监控系统认为服务实例不健康时,不健康的实例就会被拆除,健康的实例会被自动启动