Prometheus operator怎么添加targets和告警规则
使用 Prometheus Operator 来管理 Prometheus 实例、添加 targets 和告警规则是一个相对简单的过程。以下是如何通过 Prometheus Operator 添加 targets 和告警规则的详细步骤。
1. 安装 Prometheus Operator
如果尚未安装 Prometheus Operator,可以通过 Helm 或 Kubernetes 清单文件来安装。以下是使用 Helm 安装的示例:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack
2. 添加 Targets
Prometheus Operator 使用 ServiceMonitor
或 PodMonitor
对象来定义监控目标。以下是添加 targets 的步骤:
a. 使用 ServiceMonitor
创建一个 ServiceMonitor
对象,指定要监控的服务和相关配置。
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: my-service-monitor
labels:
app: my-app
spec:
selector:
matchLabels:
app: my-app # 匹配要监控的服务标签
namespaceSelector:
matchNames:
- default # 选择服务所在的命名空间
endpoints:
- port: http # 服务暴露的端口名称
interval: 30s # 抓取间隔
将上述 YAML 文件保存为 servicemonitor.yaml
,然后应用它:
kubectl apply -f servicemonitor.yaml
b. 使用 PodMonitor
如果需要监控 Pod,而不是通过服务,可以使用 PodMonitor
。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: my-pod-monitor
labels:
app: my-app
spec:
selector:
matchLabels:
app: my-app
namespaceSelector:
matchNames:
- default
podMetricsEndpoints:
- port: metrics # Pod 中暴露的端口名称
interval: 30s
同样,将上述内容保存为 podmonitor.yaml
并应用:
kubectl apply -f podmonitor.yaml
3. 添加告警规则
在 Prometheus Operator 中,告警规则通过 PrometheusRule
对象进行定义。以下是添加告警规则的步骤:
a. 创建 PrometheusRule
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: my-alerts
labels:
app: my-app
spec:
groups:
- name: example-alerts
rules:
- alert: HighErrorRate
expr: rate(http_requests_total{job="my-app"}[5m]) > 0.05
for: 10m
labels:
severity: warning
annotations:
summary: "High error rate detected in {{ $labels.instance }}"
description: "More than 5% of requests are failing over the last 10 minutes."
将上述 YAML 文件保存为 prometheusrule.yaml
,然后应用它:
kubectl apply -f prometheusrule.yaml
4. 查看和验证
-
查看 Targets:可以通过访问 Prometheus 的 UI,查看已添加的 targets。在浏览器中输入 Prometheus 的服务地址(例如
http://<prometheus-server>:9090/targets
)。 -
查看告警:同样,在 Prometheus 的 UI 中,可以查看触发的告警。
总结
使用 Prometheus Operator 添加 targets 和告警规则主要通过 ServiceMonitor
、PodMonitor
和 PrometheusRule
对象来完成。通过这些资源定义,可以灵活地监控 Kubernetes 中的服务,并配置相应的告警策略。确保在创建这些对象时,正确地设置标签和选择器,以便 Prometheus 能够成功抓取数据和触发告警。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?