admin管理员组文章数量:1444232
k8s 1.31 一站式部署监控服务后 ,如何精简采集指标?
近日见闻
转眼间,10月已经悄然过去,距离上次与大家分享见闻的时光又过了一月有余。不知各位读者近来可好?愿你们都能好好照顾自己。
国庆假期,大家的选择都不尽相同,有的人选择外出旅行,去探亲访友,有的人则在家中享受宁静。而我则回了一趟老家,去看望爷爷奶奶,奶奶的身体欠佳,近来常住院。今年倒是因为这个原因,回家乡的次数是外出打工这几年里最多的。愈发意识到,踏入三十岁这个门槛后,不得不接受身边长辈逐渐老去的事实,而自己身心状态也无法像二十几岁时那般肆无忌惮了。
往年的长假,只要回到家乡,总是和朋友们聚在一起,去欣赏辽阔的戈壁滩、眺望连绵起伏的祁连山,或只是徜徉在一条清澈的小溪边。享受着当地鲜美的牛羊肉,搭配一口生蒜,再与好友畅聊聊外面的世界,高兴处将杯中的青稞酒一饮而尽,那时的快乐,真的是年轻时特有的滋味。
而这次回去那几天,几乎奔波于市县里的医院,心中祈祷着一切顺利,短暂几天后又回来打工干活,继续忙碌。有时候想想,这工作到底没有个头,而人生中的许多重要时刻,往往都是在短暂的假期中完成的,因此,那些时光显得格外珍贵,令人难以忘怀。
上次发文时,有读者留言表示对我技术文章不甚感兴趣,却对读书分享充满期待。这让我思索良久,与其单一地写技术文章,不如开设一个新栏目,如此不仅能保持公众号的专一性,也为读书分享提供一个归宿。我希望将自己读过的那些触动心灵的作品分享给大家,激发大家的阅读热情。即使现在忙碌无暇,也可以透过我的文字了解书中的大意,待有闲暇时再细细品味,欢迎大家关注我的新栏目。
技术分享
因为有一段时间没有写文章,所以对于业界新闻的了解收集就没有多少,就不在这里复制粘贴了,不过顺带推荐下国内外技术新闻网站,感兴趣的读者朋友们可以关注下:
/
/
Helm一站式部署k8s监控服务
在 Kubernetes 监控领域,一个备受欢迎的 Helm Chart 名为 kube-prometheus-stack,它能够同时部署 Prometheus、Grafana 及其他相关监控组件。该Helm Chart由 prometheus-community 维护,为用户提供了完整的Kubernetes 监控解决方案。
详细的安装方法在我之前的这一篇文章《k8s-1.30.1版本一站式部署监控服务》,今天,我将重点分享如何在完成安装后,仅采集所需的指标,以减少资源消耗并提升监控系统的效率。
项目地址:
chart包地址:/
k8s版本:v1.31.0
Helm chart版本:kube-prometheus-stack-65.5.1
promrtheus:v2.55.0
grafana:11.2.2
为什么要精简指标?
在默认配置下,kube-prometheus-stack 会采集大量指标,而并非所有指标都是用户所需的。通过精简指标,可以显著减少 Prometheus 的存储负担和查询开销,从而提升系统性能。
前提条件
- 一个 K8s 集群
- 一个prometheus实例
如何精简指标?
这里我们思考下,一般精简指标应该怎么做?我们可以通过以下几种方式来精简 Prometheus 的指标采集:
- 配置 Prometheus 的抓取规则:在定义 scrape_configs 时,可以使用 metric_relabel_configs 来过滤不需要的指标。
- 配置 Exporter:如 Node Exporter 或者 cAdvisor,可以通过命令行参数来启用或禁用特定的收集器。
- 开发应用程序:通过 Prometheus 客户端库选择性地导出所需指标,避免导出不必要的指标。
本文将重点介绍如何通过配置抓取规则精简指标。
常用组件指标概览
cadvisor
通常由 Kubernetes 的 Kubelet 集成,用于收集节点上运行的所有容器的资源使用情况,如 CPU、内存、文件系统和网络等。指标可以直接被 Prometheus 抓取和存储。
kube-proxy
kube-proxy 维护节点上的网络规则,允许 Kubernetes 服务之间的网络通信。监控 kube-proxy 的指标可以帮助了解服务间流量的行为和网络性能。
kube-scheduler
负责监控未调度的 Pod,并为其分配运行的节点。它的指标通常用于监控调度延迟、调度成功率等。
kubelet
它与 kube-apiserver 通信,并确保容器在 Pod 中运行。监控 kubelet 可以提供关于节点状态、Pod 生命周期管理以及资源使用的详细信息。
kube-apiserver
kube-apiserver 是 Kubernetes 控制平面的中心组件,处理所有 REST API 请求。监控它可以提供关于 API 请求速率、延迟和错误率的信息。
kube-state-metrics
这是一个用于生成关于 Kubernetes 集群状态的指标的服务。如 Deployment 的副本计数、Pod 的状态等。
kube-controller-manager
这是 Kubernetes 的一个核心组件,负责运行控制循环以实现集群的期望状态。监控它可以帮助理解控制器的性能和功能,如节点控制器、副本控制器等。
Node-exporter
node-exporter 是 Prometheus 官方提供的工具,用于公开机器级别的硬件和操作系统指标。它通常用于监控节点的 CPU、内存、磁盘 I/O 和其他系统级指标。
配置示例
以下是配置示例,展示如何为不同组件设置抓取规则及指标过滤:
代码语言:javascript代码运行次数:0运行复制kube-state-metrics:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: kube_pod_container_info
kubelet:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: kubelet_running_container_count
- sourceLabels: ["__name__"]
regex: container_cpu_usage_seconds_total
node-exporter:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: node_filesystem_files_free
kubeControllerManager:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: rest_client_request_duration_seconds_bucket
kubeApiServer:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: apiserver_current_inflight_requests
kubeScheduler:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: process_cpu_seconds_total
kubeProxy:
serviceMonitor:
interval: 30s
metricRelabelings:
- sourceLabels: ["__name__"]
regex: rest_client_requests_total
action: keep
解释配置项
可以发现,主要是加了这四行
代码语言:javascript代码运行次数:0运行复制metricRelabelings:
- sourceLabels: ["__name__"] # 要检测的label名称,__name__ 表示指标名称,也可以是任意这个点所带的label
regex: kube_node_info|kube_node_role # 上述label是否满足这个正则,在这里,我们希望__name__满足kube_node_info或kube_node_role
action: keep # 如果点满足上述条件,则保留,否则就自动抛弃
sourceLabels: 这是一个列表,用于指定应该从哪些标签中获取值进行匹配。["name"] 表示使用指标的名称作为匹配源。name 是一个内置标签,用于指代指标的完整名称。
regex: 这个是正则表达式,用于匹配 sourceLabels 中组合后的值。
action: 这个参数意思是在匹配成功后执行的操作。keep 表示保持这些匹配到的指标,而将未匹配的指标丢弃。 drop(丢弃匹配项)、replace(替换标签值)、labeldrop(删除标签)等。
以上配置为您提供了精简指标的整体思路与实践示例,可以根据自身需求采集自己想监控的指标。快去实践吧,打造属于自己的个性化监控面板!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-11-07,如有侵权请联系 cloudcommunity@tencent 删除服务集群监控配置部署本文标签: k8s 131 一站式部署监控服务后 ,如何精简采集指标
版权声明:本文标题:k8s 1.31 一站式部署监控服务后 ,如何精简采集指标? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748065410a2801332.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论