Prometheus监控学习笔记之prometheus的federation机制

网友投稿 321 2022-11-01

Prometheus监控学习笔记之prometheus的federation机制

0x00 概述

有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目。也就是说整个监控系统不是部署在k8s cluster中。非in-cluster的prometheus怎么监控k8s是今天需要讨论的问题。

在上一篇文章解读了prometheus提供的监控k8s的配置文件,我们知道主要是采集node,cadvisor,service,endpoint,ingress和pod 6个方面。集群外部署,我们通过更改配置文件,

kubernetes_sd_configs: - role: node api_server: bearer_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt14dmTJfPP5XNYiwPBW-ffe84w1zA0PaIUISUXGWUr5Ak9dFkJz4-ho0pPRKuPj-KZ8C4APt4NVKFXnO3WisR63ShCYqYYrOAjerCZIfrokMdvhPG1S6Dw_swWtYTSbBVXMeyHrC9OqvXz3jdi4vnKYJgA tls_config: insecure_skip_verify: true

也能利用prometheus的service discovery功能监控一些指标,比如node,cadvisor,但是其他的无法全部获取metrics了,因为自动发现了一些k8s中service网络层的地址,这个是从外部无法访问的。我们的解决方案是prometheus的federation模式来解决该问题。

0x01 Prometheus的Federation简介

联邦允许一个prometheus server 从另外一个prometheus server 获取metrics。

官方给出的配置:

- job_name: 'federate' scrape_interval: 15s honor_labels: true metrics_path: '/federate' params: 'match[]': - '{job="prometheus"}' - '{__name__=~"job:.*"}' static_configs: - targets: - 'source-prometheus-1:9090' - 'source-prometheus-2:9090' - 'source-prometheus-3:9090'

联邦机制也实现了promethues的扩展。大致上纵向和横向两种思路。

由此出发,就能形成一种树状的prometheus集群,实现了高可用和分片。我们的集群外prometheus监控k8s的方案就基于此。

0x02 通过Federation监控k8s

采取上一篇文章的配置文件,在k8s集群中部署一个prometheus server,集群外的prometheus server 定期获取集群中prometheus的数据。

然后通过设置match即可

'match[]': - '{job="prometheus"}' - '{__name__=~"job:.*"}'

​​官方的federation的解释​​

0x03 总结

此外联邦模式可以实现prometheus监控prometheus。遵循以下两点:

网格模式。在同一个数据中心,每个prometheus监控其他的prometheus。上下级模式。上一级的prometheus监控数据中心级别的prometheus。

​​参考​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:手持VH501TC多功能混合传感器信号采集读数仪各接口说明
下一篇:如何分清usb-c和type-c的区别 usb-c和type-c和其他接口有什么不同
相关文章

 发表评论

暂时没有评论,来抢沙发吧~