## 服务发现概述
## 一、手动添加主机的弊端
手动添加客户端非常耗时间,增加人力、时间成本。为了满足监控企业成千上万台服务器,Prometheus提供了自动发现与自动注册的功能,自动批量发现网络中的服务器,并自动添加到Prometheus监控平台。
![](https://img.kancloud.cn/2a/ea/2aea15c5bdca95a710ca2ce90486b15e_563x226.png)
Prometheus有若干种可以提升运维效率的自动发现/注册类型
* 基于文件的服务发现
* 基于Consul的服务发现
* 基于DNS的服务发现
* 基于K8s的api-server服务发现
<br><hr><br>
## 二、基于文件的服务发现
Prometheus允许我们进行自定义的发现集成,可以通过watch 一组本地文件来获取抓取目标以及标签信息,也就是我们常说的基于文件的服务发现方式。
![](https://img.kancloud.cn/39/36/39362c55f584eae906536d3c0774665b_475x410.png)
<br>
## 三、基于Consul的服务发现
什么是Consul
一款基于 golang 开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务一发现和配置管理的功能提供服务注册/发现、健康检查、Key/value 存储、多数据中心和分布式一致性保证等功能
ConsuI服务发现的原理
将可以进行数据采集的服务注册到consu中,用于自动发现同时使用prametheus 做为client端获取 consul上注册的服务,从而进行动态获取数据。
![](https://img.kancloud.cn/8b/27/8b27ec9dadcaa68912acea9a8e2daa32_475x306.png)
<br>
## 四、基于DNS的服务发现
基于 DNS 的服务发现针对一组 DNS 域名进行定期查询,以发现待监控的目标查询时使用的DNS 服务器由 /etc/resolv.conf文件指定
在prometheus.yml配置中,使用DNS记录返回目标列表(dnssd_config)
<br>
## 五、基于K8s的api-server服务发现
- Prometheus教程
- 一. dokcer 安装
- 二. 安装docker-compose
- 三. docker-compose安装Prometheus
- 四. 配置grafana的数据源
- 五. Prometheus的Exporter
- 六. Prometheus的基本术语
- 七. 监控Linux
- 八. 监控redis和mongodb
- 九. 监控mysql数据库
- 十. 监控go程序
- 十一. 监控nginx
- 十二. 监控消息队列
- 十三. 监控docker
- 十四. 监控进程
- 十五. 域名监控
- 十六. SNMP监控
- 十七. 黑盒监控
- 十八. 自定义监控
- 十九. go实现自定义监控
- 二十. 服务发现概述
- 二十一. 基于文件的服务发现
- 二十二. 基于Consul的服务发现
- 二十三. relabeling机制