为什么我们需要在普罗米修斯进行服务发现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我们需要在普罗米修斯进行服务发现?相关的知识,希望对你有一定的参考价值。
要告诉Prometheus要监控的内容,我们将为其提供节点导出器详细信息。在那种情况下,我无法得到在这种情况下我们需要服务发现的实际原因?
在这种情况下,您提供的详细信息是服务发现,可能是通过static或file_sd。
如果问题是为什么普罗米修斯需要发现,这很容易。
假设你在gcp(GKE)上有一个Kubernetes集群,节点数量,计算实例,可以改变很多。
发现服务将允许我们仅使用带有标记或其他内容的gcp特定发现项来提供特定详细信息。
这样,您无需在计算机后面检查实例的群集号是否正在移动。
Why not just use local configuration ? (rather than service discovery)
如今人们不想管理手动监控的服务列表:服务太多,服务变化太频繁等。
此外,我们现在通常拥有适当的配置管理工具(选择您喜欢的任何工具...... docker,kubernetes,Puppet,Ansible ......),这些工具通常都有服务的中央库存(实际上,不仅仅是库存而是描述配置和自上而下的管理工具)。
所以选项是:
- 手动管理代理列表
- 监控解决方案有一个要监控的服务数据库:一个必须实施一个解决方案,以使中央库存与监控解决方案同步。
- 监控解决方案没有要监控的服务数据库:监控只是从中央库存中获取最新的服务列表(kubernetes,Puppet ......或CMDB,以获取最新的服务)。
注意:Prometheus本身并不打算支持每个可能的服务注册表。相反,建议通过查询您最喜欢的服务注册表来生成YAML或JSON。
Service discovery & the Push-vs-Pull dilemma
有些人主张监控代理应该简单地将指标推送到服务器上本地配置的监控平台(即推送指标而不是从监控平台中调整)。我不会在这里重述整个讨论(参见Push needs Service Discovery和Why do you pull rather than push?)
其中一个观点(来自Robust-Perception的Brian Brazil)监控通常是关于检查:检查你知道你已经部署了什么,为什么要部署它,它应该如何表现,为什么它应该以某种方式运行(哪个应用程序,哪种模式使用...)。因此,监控平台必须配置服务列表和预期状态。
以上是关于为什么我们需要在普罗米修斯进行服务发现?的主要内容,如果未能解决你的问题,请参考以下文章