我有Docker swarm充满了容器。我需要监控什么时候上升或下降。我可以通过两种方式做到这一点:
事件的问题在于可能会有巨大的流量,如果某些事件没有得到处理,我们会简单地删除有关最新情况的信息。
对我来说,获得即时结果并不是非常重要,但要掌握正确的信息。
现实生活中的任何利弊?
答案 0 :(得分:1)
根据我的经验,检查某些内容是启动还是停机应该使用运行状况检查来完成,并且应该与运行服务的基础架构无关(否则每次更改平台时都必须编写新的运行状况检查) 。当然 - 您可能拥有无法以这种方式监控的特定需求的服务 - 如果是这种情况,欢迎您对此发表评论。
如果您仅使用Swarm进行无状态服务,我建议创建一个运行状况检查路由,该路由可以验证服务是否正常,甚至可以将错误的容器与服务断开连接。
如果你正在运行状态良好的东西,这可能会比较棘手,但也有解决方案,通常在你的statefull容器上使用某种监控代理(我们使用的是cloudwatch,因为我们在AWS上运行,但有很多替代品)
希望这有帮助。
答案 1 :(得分:1)
倾听事件 - 它是即时的,但有风险,好像您的事件监听程序因任何原因而崩溃,您将错过重要信息并导致错误的结果。此Registrator程序基于事件。 轮询 - 最终一致的结果。但如果它解决了你的问题,那么获取数据就不那么痛苦了。无论您的程序崩溃还是重新启动。我们正在使用这种方法在我们的项目中进行服务发现,到目前为止它已经达到了目的。