Prometheus-Operator模式下的Prometheus配置

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: Prometheus是常用的系统监控工具。本文介绍在Prometheus-Operator模式下如何使用自定义资源cr配置Prometheus。

Prometheus是常用的系统监控工具。当直接运行二进制格式的Prometheus时,我们可以通过修改yaml格式的配置文件来自定义Prometheus。在运行时使用运行参数 -config.file 指定配置文件,默认为 prometheus.yml

当在集群中部署时,Prometheus团队提供了一种更加云原生的方式,即以Prometheus-Operator的模式部署Prometheus服务。在该模式下,存在一个Operator控制器作为整个系统的控制中心,由Operator根据自定义资源(Custom Resource Definition / CRDs)来部署和管理 Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理。

既然在Prometheus-Operator模式下,Prometheus应用本身不再由用户手动启动和维护,我们应该如何修改Prometheus的相关配置呢?

我们知道,原始的Prometheus配置文件具有以下格式:

# Prometheus全局配置项global:  scrape_interval:     15s # 设定抓取数据的周期,默认为1min  evaluation_interval: 15s # 设定更新rules文件的周期,默认为1min  scrape_timeout: 15s # 设定抓取数据的超时时间,默认为10s  external_labels: # 额外的属性,会添加到拉取得数据并存到数据库中   monitor: 'codelab_monitor'# Alertmanager配置alerting: alertmanagers: - static_configs:   - targets: ["localhost:9093"]# 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口# rule配置,首次读取默认加载,之后根据evaluation_interval设定的周期加载rule_files: - "alertmanager_rules.yml" - "prometheus_rules.yml"# scape配置scrape_configs:- job_name: 'prometheus'# job_name默认写入timeseries的labels中,可以用于查询使用  scrape_interval: 15s # 抓取周期,默认采用global配置  static_configs: # 静态配置  - targets: ['localdns:9090']# prometheus所要抓取数据的地址,即instance实例项- job_name: 'example-random'  static_configs:  - targets: ['localhost:8080']

其实Operator作为控制器,会去创建Prometheus、ServiceMonitor、AlertManager以及PrometheusRule4个CRD资源对象,然后会一直监控并维持这4个资源对象的状态。

  • Prometheus:管理集群中的 Prometheus StatefulSet 实例;
  • ServiceMonitor:而ServiceMonitor就是exporter的各种抽象,exporter是用来提供专门提供metrics数据接口的工具,Prometheus就是通过ServiceMonitor提供的metrics数据接口去 pull 数据,通过 Label Selector 选取需要监控的 Endpoint 对象;
  • Alertmanager:管理集群中的 Alertmanager StatefulSet 实例;
  • PrometheusRule:将告警规则配置动态加载到 Prometheus 实例中。


其中cr Prometheus 相当于原配置文件中的全局配置 global 和抓取配置 scrape_configs ;cr PrometheusRule 相当于用于配置Recording Rules和Alerting Rules的 rule_files;cr Alertmanager 相当于对原来配置Alertmanager的 alerting

以添加新的Recording Rules为例,我们可以新建一个PrometheusRulecr,保存为prometheusrule.yaml,执行命令kubectl apply -f prometheusrule.yaml部署到集群中。PrometheusRule的对应controller会自动将配置写入configmap中供Prometheus读取。

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:  labels:    app: ack-prometheus-operator
    release: ack-prometheus-operator
  name: test-rules
  namespace: monitoring
spec:# 此处替换为规则文件

需要注意的是,在配置Recording Rules和Alerting Rules时,如果想让配置的规则生效,PrometheusRule 对象的labels字段中需要包含cr Prometheus 中标签选择器里的标签,所如果标签选择器为空则不带标签也可以。

# Prometheus cr中可能包含如下标签选择器ruleSelector:  matchLabels:    app: ack-prometheus-operator
    release: ack-prometheus-operator

在spec中添加需要的recording rules和alert rules,和使用rule_files文件的格式一致。详细用法参考官方文档:

https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheusspec

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
7月前
|
Prometheus Cloud Native Java
微服务框架(二十三)Prometheus + Grafana 安装、配置及使用
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Prometheus + Grafana 安装、配置及使用 本系列文章中所使用的框架版本为Spring ...
|
4月前
|
Prometheus 监控 Cloud Native
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
|
1月前
|
Prometheus Kubernetes Cloud Native
Prometheus的告警配置
【10月更文挑战第31天】Prometheus的告警配置
45 1
|
3月前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
226 1
|
4月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
4月前
|
存储 Prometheus 监控
Prometheus 的报警机制:Alertmanager 的配置与使用
【8月更文第29天】Prometheus 是一个非常强大的监控系统,它不仅能够收集和存储时间序列数据,还能通过 Alertmanager 提供灵活的报警机制。Alertmanager 负责接收 Prometheus 发送的警报,并根据配置的规则执行相应的通知动作。本文将详细介绍如何配置 Alertmanager 以及如何使用它来实现基于 Prometheus 指标的报警通知。
879 0
|
4月前
|
存储 Prometheus Cloud Native
[prometheus]配置alertmanager和钉钉告警
[prometheus]配置alertmanager和钉钉告警
216 0
|
7月前
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
253 6
|
7月前
|
Prometheus 监控 Cloud Native
springboot配置Prometheus
springboot配置Prometheus
|
7月前
|
Prometheus 监控 Cloud Native
Prometheus 安装与配置
Prometheus 安装与配置
下一篇
DataWorks