Prometheus Operator配置Alertmanager告警
1、管理 Alertmanager configuration
1.1 方式一,使用存储在Kubernetes secret中的本地Alertmanager配置文件
1、编写alertmanager配置alertmanager.yaml
route:
group_by: ['job']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'webhook'
receivers:
- name: 'webhook'
webhook_configs:
- url: 'http://example.com/'
2、创建secret资源
kubectl create secret generic alertmanager-k8s-alertmanager --from-file=alertmanager.yaml -n monitoring
# secret命名必须为alertmanager-{ALERTMANAGER_NAME},secret中保存配置数据的密钥的名称必须为alertmanager.yaml,如果要使用不同的secret名称,可以在Alertmanager资源中定义spec.configSecret字段
同样可以引用模板文件
apiVersion: v1
kind: Secret
metadata:
name: alertmanager-example
data:
alertmanager.yaml: {BASE64_CONFIG}
template_1.tmpl: {BASE64_TEMPLATE_1}
template_2.tmpl: {BASE64_TEMPLATE_2}
Alertmanager配置引用
templates:
- '/etc/alertmanager/config/*.tmpl'
1.2 方式二,定义主Alertmanager配置选择哪些AlertmanagerConfig对象
1、编写AlertmanagerConfig配置清单,alertmanagerconfig.yaml
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: config-example
labels:
alertmanagerConfig: example
spec:
route:
groupBy: ['job']
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'webhook'
receivers:
- name: 'webhook'
webhookConfigs:
- url: 'http://example.com/'
2、Alertmanager配置引用
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
name: example
spec:
replicas: 3
alertmanagerConfigSelector:
matchLabels:
alertmanagerConfig: example
1.3 方式三,使用AlertmanagerConfig进行全局配置
1、编写AlertmanagerConfig配置清单,alertmanagerconfig.yaml
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: config-example
labels:
alertmanagerConfig: example
spec:
route:
groupBy: ['job']
groupWait: 30s
groupInterval: 5m
repeatInterval: 12h
receiver: 'webhook'
receivers:
- name: 'webhook'
webhookConfigs:
- url: 'http://example.com/'
2、Alertmanager配置引用,使用AlertmanagerConfig资源来代替secret配置
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
name: example
namespace: default
spec:
replicas: 3
alertmanagerConfiguration:
name: config-example
---
# 名为example-config的AlertmanagerConfig资源在命名空间中default将是一个全局警报管理器配置。当operator 从中生成Alertmanager配置时,不会对路由和禁止规则强制使用名称空间标签。
2、管理Prometheus Rules配置
1、编写PrometheusRule配置清单,prometheusrule.yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
creationTimestamp: null
labels:
prometheus: example
role: alert-rules
name: prometheus-example-rules
spec:
groups:
- name: ./example.rules
rules:
- alert: ExampleAlert
expr: vector(1)
2、Prometheus配置引用
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: example
spec:
serviceAccountName: prometheus
replicas: 2
alerting:
alertmanagers:
- namespace: default
name: alertmanager-example
port: web
serviceMonitorSelector:
matchLabels:
team: frontend
ruleSelector:
matchLabels:
role: alert-rules
prometheus: example
ruleNamespaceSelector:
matchLabels:
team: frontend
---
# ruleSelector、ruleNamespaceSelector会选择具有定义相关属性标签的PrometheusRule。默认情况下,Prometheus资源仅发现同一命名空间中的PrometheusRule资源。要从所有名称空间中发现规则,传递一个空的{}(ruleNamespaceSelector: {})。
3、其他
# 查询自定义资源列表
kubectl get prometheuses,servicemonitors,podmonitors,prometheusrules,alertmanagers,alertmanagerconfigs,probes,thanosrulers --all-namespaces
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。
分类:
Kubernetes
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~