使用prometheus抓取k8s的metrics作监控时,cAdvisor和kubelet配置有何差别?
按网上说法:
目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接口获取该节点所有容器相关的性能指标数据。1.7.3版本以前,cadvisor的metrics数据集成在kubelet的metrics中,在1.7.3以后版本中cadvisor的metrics被从kubelet的metrics独立出来了,在prometheus采集的时候变成两个scrape的job。
按新版本的标准配置,kubelet中的cadvisor是没有对外开放4194端口的。所以,我们只能通过apiserver提供的api做代理获取监控指标。
重要知识点来了。
cAdvisor的metrics地址: /api/v1/nodes/[节点名称]/proxy/metrics/cadvisor
kubelnet的metrics地址:/api/v1/nodes/[节点名称]/proxy/metrics
所以,prometheus配置cadvisor时,内容如下:
- job_name: 'cadvisor'
# 通过https访问apiserver,通过apiserver的api获取数据
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
#以k8s的角色(role)来定义收集,比如node,service,pod,endpoints,ingress等等
kubernetes_sd_configs:
# 从k8s的node对象获取数据
- role: node
relabel_configs:
# 用新的前缀代替原label name前缀,没有replacement的话功能就是去掉label name前缀
# 例如:以下两句的功能就是将__meta_kubernetes_node_label_kubernetes_io_hostname
# 变为kubernetes_io_hostname
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
# replacement中的值将会覆盖target_label中指定的label name的值,
# 即__address__的值会被替换为kubernetes.default.svc:443
- target_label: __address__
replacement: kubernetes.default.svc:443
# 获取__meta_kubernetes_node_name的值
- source_labels: [__meta_kubernetes_node_name]
#匹配一个或多个任意字符,将上述source_labels的值生成变量
regex: (.+)
# replacement中的值将会覆盖target_label中指定的label name的值,
# 即__metrics_path__的值会被替换为/api/v1/nodes/${1}/proxy/metrics,
# 其中${1}的值会被替换为__meta_kubernetes_node_name的值
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
metric_relabel_configs:
- action: replace
source_labels: [id]
regex: '^/machine\.slice/machine-rkt\\x2d([^\\]+)\\.+/([^/]+)\.service$'
target_label: rkt_container_name
replacement: '${2}-${1}'
- action: replace
source_labels: [id]
regex: '^/system\.slice/(.+)\.service$'
target_label: systemd_service_name
replacement: '${1}'
配置kubelet时,内容如下:
- job_name: 'kubelet'
# 通过https访问apiserver,通过apiserver的api获取数据
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
#以k8s的角色(role)来定义收集,比如node,service,pod,endpoints,ingress等等
kubernetes_sd_configs:
# 从k8s的node对象获取数据
- role: node
relabel_configs:
# 用新的前缀代替原label name前缀,没有replacement的话功能就是去掉label_name前缀
# 例如:以下两句的功能就是将__meta_kubernetes_node_label_kubernetes_io_hostname
# 变为kubernetes_io_hostname
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
# replacement中的值将会覆盖target_label中指定的label name的值,
# 即__address__的值会被替换为kubernetes.default.svc:443
- target_label: __address__
replacement: kubernetes.default.svc:443
#replacement: 10.142.21.21:6443
# 获取__meta_kubernetes_node_name的值
- source_labels: [__meta_kubernetes_node_name]
#匹配一个或多个任意字符,将上述source_labels的值生成变量
regex: (.+)
# 将# replacement中的值将会覆盖target_label中指定的label name的值,
# 即__metrics_path__的值会被替换为/api/v1/nodes/${1}/proxy/metrics,
# 其中${1}的值会被替换为__meta_kubernetes_node_name的值
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics
#or:
#- source_labels: [__address__]
# regex: '(.*):10250'
# replacement: '${1}:4194'
# target_label: __address__
#- source_labels: [__meta_kubernetes_node_label_role]
# action: replace
# target_label: role
看到没有,内容几乎一样,除了代理地址不一样。
使用prometheus抓取k8s的metrics作监控时,cAdvisor和kubelet配置有何差别?的更多相关文章
- 巧用Grafana和Arthas自动抓取K8S中异常Java进程的线程堆栈
前言 近期发现业务高峰期时刻会出现CPU繁忙导致的timeout异常,通过监控来看是因为Node上面的一些Pod突发抢占了大量CPU导致的. 问: 没有限制CPU吗?是不是限制的CPU使用值就可以解决 ...
- 【prometheus 抓取源】
配置prometheus从prometheus爬取数据 prometheus提供了下面这个端口来让其他prometheus来抓取(scrape)自己的时序数据: http://prometheus_i ...
- 【prometheus抓取间隔】scrape_interval
prometheus如何设置比较合理: https://www.robustperception.io/keep-it-simple-scrape_interval-id 总结:一般设置在10s-60 ...
- 解决Scrapy抓取中文结果保存为文件时的编码问题
import json import codecs # Define your item pipelines here # # Don't forget to add your pipeline to ...
- SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控
无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...
- prometheus的平台侧和应用侧结合,实现应用的metrics的抓取
这个细节,迷惑了我一段时间,前面也写过一篇blog,描述过这个问题. 今天看到一种更好的解决方法. 记录一下. prometheus在k8s集群里,抓取应用的metrics. 是需要平台侧和应用侧相互 ...
- 微信朋友圈转疯了(golang写小爬虫抓取朋友圈文章)
很多人在朋友圈里转发一些文章,标题都是什么转疯啦之类,虽然大多都也是广告啦,我觉得还蛮无聊的,但是的确是有一些文章是非常值得收藏的,比如老婆经常就会收藏一些养生和美容的文章在微信里看. 今天就突发奇想 ...
- git 常用命令--抓取分支-为自己记录(二)
二:抓取分支: 多人协作时,大家都会往master分支上推送各自的修改.现在我们可以模拟另外一个同事,可以在另一台电脑上(注意要把SSH key添加到github上)或者同一台电脑上另外一个目录克隆, ...
- Hawk: 20分钟无编程抓取大众点评17万数据
1. 主角出场:Hawk介绍 Hawk是沙漠之鹰开发的一款数据抓取和清洗工具,目前已经在Github开源.详细介绍可参考:http://www.cnblogs.com/buptzym/p/545419 ...
随机推荐
- ubuntu系统创建新用户并赋予sudo权限
1.创建新用户 创建新用户有两种方式:adduser和useradd adduser会为用户创建組./home目录下同名文件夹,密码,而useradd不会 因此推荐使用adduser创建用户,例: s ...
- 通过my.ini修改mysql默认编码为gbk
如何一次性修改后台显示语言为gbk 1. 找到my.ini(这是一个Mysql的配置文件) 1.1 要先打开显示隐藏文件的设置:https://jingyan.baidu.com/article/da ...
- MT【200】一道自招的不等式
(2018武汉大学自招)设$x,y,z\ge0,xy+yz+zx=1$证明:$\dfrac{1}{x+y}+\dfrac{1}{y+z}+\dfrac{1}{z+x}\ge \dfrac{5}{2}$ ...
- 【题解】 [SDOI2009] Elaxia的路线(最短路+拓扑排序)
懒得复制,戳我戳我 Solution: 题目大概意思就是找两条最短路后,找出最长公共部分 我们就只用以四个点为源点开始走\(SPFA\),然后我们就只用遍历每条边然后建立一个新的拓扑图,然后随便搞一下 ...
- Zabbix应用八:Zabbix监控MongoDB
利用Zabbix监控MongoDB 一.首先介绍mongodb采集到的数据含义: 1.状态采集命令: >db.serverStatus(); 2.输出内容: { "host" ...
- 位运算符和unity Layers
按位运算符:与(&).非(~).或(|).异或(^).<<(左移).>>(右移).位运算符主要用来对二进制位进行操作. 逻辑运算符:&&.||.!.逻辑 ...
- 集成maven和Spring boot的profile功能
思路:maven支持profile功能,当使用maven profile打包时,可以打包指定目录和指定文件,且可以修改文件中的变量.spring boot也支持profile功能,只要在applica ...
- css中实现ul两端的li对齐外面边缘
其实就是设置ul的宽度大一些就好
- Automate Tdxw
Automate trade module in Tdxw Code # coding: utf-8 """ Created on Thu Dec 07 10:57:45 ...
- 20155225 2016-2017-2 《Java程序设计》第八周学习总结
20155225 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 通用API 日志API 国际化基础 规则表达式 JDK8增强功能 教材学习中的问题和解决过程 ...