Prometheus 常用报警插件alertmanager插件的安装与alertmanager.yml配置文件说明 – 21运维
通知: .-...

Prometheus 常用报警插件alertmanager插件的安装与alertmanager.yml配置文件说明

prometheus 21运维 310浏览

一,alertmanager介绍
根据prometheus官网介绍,Prometheus 报警是通过 AlertManager插件来实现的,Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道(电话,微信,短信,邮件等多种 方式),而且很容易做到告警信息进行去重,降噪,分组等。
alertmanager官网地址: https://prometheus.io/docs/alerting/alertmanager/ 后续设定route路由以及设定报警模板会经常翻阅参数。

架构图:

prometheus对alertmanger配置说明:

# Alertmanager configuration:告警配置,集成alertmanager插件
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - 127.0.0.1:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files: # 告警规则
  # - "first_rules.yml"
  # - "second_rules.yml"

二,alertmanager安装
1,官网下载二进制安装包
官网下载地址 https://prometheus.io/download/

2,安装(和server、prometheus的node_exporter一样)

wget -c https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz
tar zxvf alertmanager-0.20.0.linux-amd64.tar.gz
mv alertmanager-0.20.0.linux-amd64/* alertmanager
pwd #当前alertmanager的工作目录为:(/usr/local/prometheus/server/alertmanager)

supervisor配置:

[[email protected] server]# cat  /etc/supervisord.d/alertmanager.conf 
[program:alertmanager]
command=/usr/local/prometheus/server/alertmanager/alertmanager
directory=/usr/local/prometheus/server/alertmanager/
stdout_logfile=/logs/prometheus/alertmanager.log
autostart=true
autorestart=true
redirect_stderr=true
user=root
startsecs=3

启动:

supervisorctl start alertmanager

alertmanager默认监听的是9093端口。

可以通过alertmanager的http访问: http://ip:9093/#/alerts

3,配置prometheus ,集成alertmanager
作用:集成alertmanager插件以及设置报警对象(这里和prometheus部署到同一个机器的,于是填写本地ip和9093端口)

# Alertmanager configuration:告警配置,集成alertmanager插件。
alerting:
alertmanagers:
- static_configs:
- targets:
- 127.0.0.1:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "rule/*.yml"
# - "first_rules.yml"
# - "second_rules.yml"

重启prometheus 生效。

三,alertmanager配置文件说明
多查看官方文档: https://prometheus.io/docs/alerting/configuration/
alertmanger.yml主要作用有三个:
(1)设定告警媒介
(2)设定告警模版
(3)路由告警对象。
alertmanger的配置文件放到了alertmanger 安装目录下,文件名:alertmanager.yml,默认配置内容文件如下:

[[email protected] alertmanager]# cat alertmanager.yml
global:
resolve_timeout: 5m

route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']

alertmanager主要处理流程(引用:https://www.kancloud.cn/huyipow/prometheus/527563,对alertmanager做了很全面到位的解释)
接收到Alert,根据labels判断属于哪些Route(可存在多个Route,一个Route有多个Group,一个Group有多个Alert)
将Alert分配到Group中,没有则新建Group
新的Group等待group_wait指定的时间(等待时可能收到同一Group的Alert),根据resolve_timeout判断Alert是否解决,然后发送通知
已有的Group等待group_interval指定的时间,判断Alert是否解决,当上次发送通知到现在的间隔大于repeat_interval或者Group有更新时会发送通知

配置文件说明:
global:
resolve_timeout: 5m # 恢复的超时时间,默认是5分钟
#路由树的根节点,每个传进来的报警从这里开始
route:
group_by: ['alertname'] #将传入的报警中有这些标签的分为一个组
group_wait: 10s #指分组创建多久后才可以发送压缩的警报,也就是 初次发警报的延时
group_interval: 10s #当第一个通知发送,等待多久发送压缩的警报
repeat_interval: 1h #如果报警发送成功,等待多久重新发送一次,zabbix阶段告警类似
receiver: 'web.hook'# 用于请求接口等,
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/' # 是发送post请求,还携带了 告警的数据内容。--接口就可以入库了。多个告警系统放到同一个数据库来。就 可以统计每周,每个月的告警数量以及相似的告警数量排行
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning' # 告警级别 # 如果警报名称相同,则静音
equal: ['alertname', 'dev', 'instance']

转载请注明:21运维 » Prometheus 常用报警插件alertmanager插件的安装与alertmanager.yml配置文件说明