网站首页 > 技术文章 正文
简单介绍
prometheus-operator 中的每个 Prometheus CRD 资源,Operator 都会以 StatefulSet 形式在相同的命名空间下部署对应配置的资源,Prometheus Pod 的配置是通过一个包含 Prometheus 配置的名为 <prometheus-name> 的 Secret 对象声明挂载的。
该 CRD 根据标签选择来指定部署的 Prometheus 实例应该覆盖哪些 ServiceMonitors,然后 Operator 会根据包含的 ServiceMonitors 生成配置,并在包含配置的 Secret 中进行更新。
如果未提供对 ServiceMonitor 的选择,则 Operator 会将 Secret 的管理留给用户,这样就可以提供自定义配置,同时还能享受 Operator 管理 Operator 的设置能力。
本文主要介绍如何在不创建ServiceMonitor 的情况下直接通过修改Secret 从而修改prometheus配置
要修改由prometheus-operator部署的Prometheus实例的配置文件,可以使用以下步骤:
- 首先,通过kubectl命令行工具连接到您的Kubernetes集群。
- 找到prometheus实例的名称,例如:
kubectl get prometheus
这将列出您的Kubernetes集群中所有prometheus实例的名称。
- 执行以下命令,将prometheus实例的配置文件导出到本地文件中:
kubectl get secret <prometheus-operator-name>-prometheus -o jsonpath="{.data['prometheus\.yaml\.gz']}" | base64 --decode |gzip -d > prometheus.yml
其中,是您的prometheus-operator实例的名称。此命令将把prometheus实例的配置文件解码为prometheus.yml文件。例如:
kubectl -n kubesphere-monitoring-system get secret prometheus-k8s -o jsonpath="{.data['prometheus\.yaml\.gz']}" | base64 --decode | gzip -d > prometheus.yml
- 然后,您可以使用任何文本编辑器来修改prometheus.yml文件中的配置。例如,您可以添加或删除抓取目标,配置告警规则或修改抓取的时间间隔。
- 修改后,使用以下命令将新的配置文件重新导入到prometheus实例中:
kubectl create secret generic <prometheus-operator-name>-prometheus --from-file=prometheus.yml -n <namespace> --dry-run=client -o yaml | kubectl apply -f -
其中,是您的prometheus-operator实例的名称,是您的prometheus实例所在的Kubernetes命名空间。 例如:
kubectl create secret generic prometheus-k8s --from-file=prometheus.yml -n kubesphere-monitoring-system --dry-run=client -o yaml | kubectl apply -f -
最后,重启prometheus实例,以便它可以加载新的配置文件。 这些步骤应该可以帮助您修改prometheus-operator部署的Prometheus实例的配置文件。
然而这样并没有奏效[手动狗头]:
如果你是通过helm部署的,直接修改serviceMonitor相关文件。
我这里是通过ks-install Kubesphere集成您自己的 Prometheus 方式安装的,主要是为了修改kubesphere自带prometheus监控中被过滤掉的指标( 基于 kube-prometheus 的定制版本生成)比如:
我需要 node-exporter 中node_filefd_allocated,node_cpu_seconds_total,node_filesystem_avail_bytes等指标 或者 container 中container_start_time_seconds、 container_fs_reads_bytes_total 、container_spec_memory_limit_bytes等等指标
就需要分别修改ks-installer/roles/ks-monitor/files/prometheus/node-exporter/node-exporter-serviceMonitor.yaml 和 ks-installer/roles/ks-monitor/files/prometheus/kubernetes/kubernetes-serviceMonitorKubelet.yaml 中的metricRelabelings部分
如图:
总结:在prometheus-operator方式下prometheus的配置文件是Operator 根据包含的 ServiceMonitors 生成配置,并在包含配置的 Secret 中进行更新,最终以Secrt对象将配置文件挂载到prometheus 中,同时也实现了配置文件的自动更新
猜你喜欢
- 2024-10-26 kubernetes1.25对接DELL分布式存储ISILON 9.4.0.14
- 2024-10-26 OpenShift 平台企业版 OCP 4.11.9 部署(基于KVM,CentOS, CoreOS)
- 2024-10-26 寻找 k3OS 替代方案?为边缘 K8s 选择容器操作系统
- 2024-10-26 Jenkins 基于 Kubernetes 的动态和静态节点
- 2024-10-26 开源容器镜像仓库工具-Harbor(开源镜像文件是什么)
- 2024-10-26 Kubernetes系列(四)Ingress(kube ingress)
- 2024-10-26 连载3の充分利用VSCODE编辑器(vscode作为文本编辑器)
- 2024-10-26 Kubernetes 集成 KubeEdge 需要注意的问题汇总
- 2024-10-26 Openshift 4.4 静态 IP 离线安装系列:准备离线资源
- 2024-10-26 教你将已越狱的iPhone还原至干净状态
- 1517℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 594℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
-
- PS所有滤镜的说明(六)(ps滤镜详解)
- 5款小白也能用的在线图片编辑器!电商效率飙升就靠它!
- Java变量(java变量有什么作用)
- Java面试常见问题:Java注解(java中的面试题)
- Java编程入门第一课:HelloWorld(java编程从入门到实践)
- Java基础教程:Java继承概述(java里继承的概述)
- java基础之——访问修饰符(private/default/protected/public)
- 如何规划一个合理的JAVA项目工程结构
- 将机器指令翻译成 JavaScript -- 终极目标
- Web 服务器基准测试:Go vs. Node.js vs. Nim vs. Bun
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)