prometheus基于基于DNS服务发现
Posted 知识摆渡人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了prometheus基于基于DNS服务发现相关的知识,希望对你有一定的参考价值。
参考文档: https://edu.51cto.com/course/30254.html
一、为什么需要服务发现
Prometheus Server 的数据抓取工作基于 Pull 模型,因而,它必须要事先知道各 target 的位置,然后才能从相应的 Exporter 或 Instrumentation 中抓取数据。
对于小型的系统环境,使用 static_configs 指定各 target 即可解决问题,但是对于较大的集群不适用,尤其不适用于使用容器和基于云的实例的动态集群,因为这些实例会经常出现变化、创建、或销毁的情况。Prometheus 为此专门设计了一组服务发现机制,以便于能够基于服务注册中心自动发现、检测、分类可被监控的各 target ,以及更新发生了变动的 target。
Prometheus 可以集成到多种不同的开源服务发现工具上,以便动态发现需要监控的目标。Prometheus 可以很好的集成到 Kubernetes 平台上,通过其 API Server 动态发现各类被监控的 Pod、Service、Endpoint、Ingress 及 Node 对象,还支持基于文件实现的动态发现。
二、prometheus目前支持的服务发现类型
prometheus目前支持的服务发现类型主要有如下几种:
1、基于文件的服务发现
2、基于consul的服务发现
3、基于k8s API的服务发现
4、基于eureka的服务发现
5、基于nacos的服务发现
6、基于DNS的服务发现
三、什么是基于DNS的服务发现
如果基于文件的服务发现不适合你,或者你的源或服务不支持任何现有的服务发现工具,则可以选择基于DNS的服务发现。实际使用场景中,我们的服务器IP地址有时可能会出现变动,但是域名却是固定的,甚至于某些情况下,会存在一个域名对应多个IP地址的情况,比如百度,此时使用基于DNS的服务发现会是一种比较好的方案。
DNS服务发现允许你指定DNS条目列表,然后查询这些条目中的记录以发现目标列表。它依赖于A、AAAA或SRV DNS记录查询。提示 DNS记录将由Prometheus服务器上本地定义的DNS服务器解析。例如,Linux上的“/etc/resolv.conf”或“/etc/hosts”,也算是一种本地DNS。
具体实现案例请详情请看参考文档
以上是关于prometheus基于基于DNS服务发现的主要内容,如果未能解决你的问题,请参考以下文章