Alertmanager的路由配置
一.配置Alertmanager
1.修改Alertmanager的配置文件
[root@prometheus-server32 alertmanager-0.27.0.linux-amd64]# cat alertmanager.yml
route:
group_by: ['alertname']
group_wait: 1s
group_interval: 3s
repeat_interval: 1m
# 默认发给"sre_system"组用户
receiver: 'sre_system'
continue: false
# 配置子路由
routes:
- receiver: 'sre_dba'
match_re:
job: oldboyedu_mysqld_exporter
# 建议将continue的值设置为true,表示当前的条件是否匹配,都将继续向下匹配规则
# 这样做的目的是将消息发给最后的系统组(sre_system)
continue: true
- receiver: 'sre_bigdata'
match_re:
job: oldboyedu_flink_exporter
continue: true
- receiver: 'sre_k8s'
match_re:
job: oldboyedu_istio_exporter
continue: true
- receiver: 'sre_system'
match_re:
job: .*
continue: true
receivers:
- name: 'sre_dba'
webhook_configs:
- url: 'http://10.0.0.42:6666/oldboyedu/alert'
http_config: {}
max_alerts: 0
send_resolved: true
- name: 'sre_bigdata'
webhook_configs:
- url: 'http://10.0.0.42:7777/oldboyedu/alert'
http_config: {}
max_alerts: 0
send_resolved: true
- name: 'sre_k8s'
webhook_configs:
- url: 'http://10.0.0.42:8888/oldboyedu/alert'
http_config: {}
max_alerts: 0
send_resolved: true
- name: 'sre_system'
webhook_configs:
- url: 'http://10.0.0.42:9999/oldboyedu/alert'
http_config: {}
max_alerts: 0
send_resolved: true
[root@prometheus-server32 alertmanager-0.27.0.linux-amd64]#
2.运行Alertmanager
[root@prometheus-server32 alertmanager-0.27.0.linux-amd64]# ./alertmanager
二.准备接受者的url
1.下载go程序
[root@node-exporter42 ~]# wget http://192.168.15.253/Resources/Prometheus/softwares/Alertmanager/oldboyedu-alertmanger-receiveData
2.添加执行权限
[root@node-exporter42 ~]# chmod +x oldboyedu-alertmanger-receiveData
[root@node-exporter42 ~]#
[root@node-exporter42 ~]# ll oldboyedu-alertmanger-receiveData
-rwxr-xr-x 1 root root 27207714 Nov 14 15:39 oldboyedu-alertmanger-receiveData*
[root@node-exporter42 ~]#
3.运行go程序
[root@node-exporter42 ~]# ./oldboyedu-alertmanger-receiveData -addr :6666
[root@node-exporter42 ~]# ./oldboyedu-alertmanger-receiveData -addr :7777
[root@node-exporter42 ~]# ./oldboyedu-alertmanger-receiveData -addr :8888
[root@node-exporter42 ~]# ./oldboyedu-alertmanger-receiveData -addr :9999
三.Prometheus添加规则
1.修改Prometheus的配置文件
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# vim prometheus.yml
...
rule_files:
...
- "oldboyedu-linux95-rules.yml"
- "oldboyedu-linux95-rules-alertmanager.yml"
scrape_configs:
...
- job_name: "oldboyedu_mysqld_exporter"
static_configs:
- targets:
- 10.0.0.41:9100
- job_name: "oldboyedu_flink_exporter"
static_configs:
- targets:
- 10.0.0.42:9100
- job_name: "oldboyedu_istio_exporter"
static_configs:
- targets:
- 10.0.0.43:9100
2.编写规则文件
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# cat oldboyedu-linux95-rules-alertmanager.yml
groups:
- name: xixi
rules:
- alert: yinzhengjie_mysqld_exporter-alert
expr: up{job="oldboyedu_mysqld_exporter"} == 0
labels:
severity: critical
apps: mysql80
annotations:
summary: DBA机器异常
- name: haha
rules:
- alert: yinzhengjie_bigdata_exporter-alert
expr: up{job="oldboyedu_flink_exporter"} == 0
labels:
severity: warning
apps: flink
annotations:
summary: 大数据集群机器异常
- name: hehe
rules:
- alert: yinzhengjie_k8s_exporter-alert
expr: up{job="oldboyedu_istio_exporter"} == 0
labels:
severity: warning
apps: k8s
annotations:
summary: k8s集群机器异常
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]#
3.检查配置文件是否生效
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 2 rule files found
SUCCESS: prometheus.yml is valid prometheus config file syntax
Checking oldboyedu-linux95-rules.yml
SUCCESS: 2 rules found
Checking oldboyedu-linux95-rules-alertmanager.yml
SUCCESS: 3 rules found
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]#
四.热加载Prometheus
[root@prometheus-server31 prometheus-2.53.3.linux-amd64]# curl -X POST http://10.0.0.31:9090/-/reload
五.验证配置是否生效
[root@node-exporter41 ~]# reboot
可以查看Alertmanager的WebUI
http://10.0.0.32:9093/#/alerts
观察42节点的各个终端
不难发现,仅有sre_dba和sre_system收到了告警消息
标签:
prometheus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类