Prometheus基于k8s的自动发现配置监控

文章介绍了在Kubernetes(k8s)环境中配置Prometheus监控时,如何通过kubernetes_sd_configs实现自动发现服务端点,避免手动配置servicemonitor的繁琐过程。同时,对比了使用consul注册中心进行自动发现的方法,虽然能动态加载监控项,但可能增加系统复杂性。文章详细展示了基于kubernetes_sd_configs的配置步骤,包括创建配置文件、更新Prometheus的ClusterRole权限以及在pod中添加自动发现的注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s配置Prometheus监控时,可以通过servicemonitor的方式增加job,以此来增加监控项,但这种方式进行监控配置,只能手工一个一个的增加,如果k8s集群规模较大的情况下,这种方式会很麻烦。

一种方式是采用consul注册中心的方式进行自动发现。

另外一种方式是基于kubernetes_sd_configs的自动发现的方式配置增加监控项,本文主要讲解此种配置方式。

基于consul的自动发现

在安装consul后,可以通过指定consul读取特定配置文件的方式发现并加载监控项

 但这种方式和Prometheus基于文件的动态发现没有本质区别,甚至还增加了系统的复杂度,并不可取。

可以通过调用consul的API的方式,让程序自动向consul进行注册,在Prometheus中配置consul的相关项,让其自动增加监控Target

#Prometheus主配置文件增加如下内容
#以便可以从consul中自动获取监控信息
   - job_name: 'consul-prometheus'
     consul_sd_configs:
       - server: '10.0.12.8:8500'
         services: []

# 注册服务
curl -X PUT -d '{"id": "consul-redis","name": "redis","address": "10.0.12.8","port": 6379,"tags": ["service"],"checks": [{"http": "http://10.0.12.8:6379/","interval": "5s"}]}' http://10.0.12.8:8500/v1/agent/service/register
 
# 查询指定节点以及指定的服务信息
[root@iZ2zejaz33icbod2k4cvy6Z ~]# curl http://10.0.12.8:8500/v1/catalog/service/consul-redis
 
#删除指定服务 redis为要删除服务的id
curl -X PUT  http://10.0.12.8:8500/v1/agent/service/deregister/consul-redis

基于kubernetes_sd_configs的自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值