Prometheus监控邮件告警配置

一、简介

  • Alertmanager除了提供基本的告警通知能力以外,还主要提供了如:分组、抑制以及静默等告警特性

二、先决条件

  • 已经成功部署 prometheus 、mysql_exporter 或 node_exporter 等

三、部署告警

[root@centos ~]# mkdir -p /data/alertmanager/{base,conf,data,software}
[root@centos ~]# cd /data/alertmanager/software
[root@centos software]# wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
[root@centos software]# tar xf alertmanager-0.21.0.linux-amd64.tar.gz -C /data/alertmanager/base
[root@centos software]# mv /data/alertmanager/base/alertmanager-0.21.0.linux-amd64 /data/alertmanager/base/0.21.0
[root@centos software]# mv /data/alertmanager/base/0.21.0/alertmanager.yml /data/alertmanager/conf/alertmanager.yml
  • 创建一个 alertmanager.service 管理文件,由 systemd 管理,减少少量运维成本。
[root@centos ~]# vim /etc/systemd/system/alertmanager.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/data/alertmanager/base/0.21.0/alertmanager --config.file=/data/alertmanager/conf/alertmanager.yml --storage.path=/data/alertmanager/data
Restart=on-failure
[Install]
WantedBy=multi-user.target

[root@centos ~]# systemctl start alertmanager.service
[root@centos ~]# systemctl enable alertmanager.service

四、关联普罗米修斯

  • 添加配置到 prometheus 文件中,关联 Prometheus 与 Alertmanager
  • 位置:global 标签的下一个大标签
[root@centos ~]# vim /data/prometheus/conf/prometheus.yml
alerting:
  alertmanagers:
    - static_configs:
        - targets: ['10.186.60.54:9093']

五、普罗米修斯告警

  • 位置:alerting 标签的下一个大标签
[root@centos ~]# mkdir /data/prometheus/conf/rules
[root@centos ~]# vim /data/prometheus/conf/prometheus.yml
rule_files:
  - '/data/prometheus/conf/rules/*.yml'
  • 配置内存使用超越 30% 就告警
[root@centos ~]# vim /data/prometheus/conf/rules/node.yml
groups:
- name: "test"
  rules:
  - alert: 内存使用率过高
    expr: 100-(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100 > 30
    for: 1m  # 告警持续时间,超过这个时间才会发送给alertmanager
    labels:
      severity: warning
    annotations:
      summary: "Instance {{ $labels.instance }} 内存使用率过高"
      description: "{{ $labels.instance }} of job {{$labels.job}}内存使用率超过30%,当前使用率[{{ $value }}]."

# 校验告警配置文件是否存在错误
[root@centos ~]# /data/prometheus/base/2.19.2/promtool check rules /data/prometheus/conf/rules/node.yml
Checking /data/prometheus/conf/rules/node.yml
  SUCCESS: 1 rules found
  • 内存使用量的确超越 30% 后,prometheus 会进行告警,当超越设置的 1m 时间后还未处理,就会通知到 Alertmanager 进行告警发送。

  • Alertmanager 接收到的告警信息( 通过 amtool 命令也可以查看告警信息 )
[root@centos ~]# /data/alertmanager/base/0.21.0/amtool alert --alertmanager.url=http://10.186.60.54:9093
Alertname  Starts At                Summary                  
内存使用率过高    2020-08-30 06:33:13 UTC  Instance centos 内存使用率过高

六、配置腾讯邮箱告警

[root@centos ~]# vim /data/alertmanager/conf/alertmanager.yml 
global:
  resolve_timeout: 5m
  smtp_from: '885097398@qq.com'
  smtp_smarthost: 'smtp.qq.com:465'
  smtp_auth_username: '885097398@qq.com'
  smtp_auth_password: 'tuumffkbngwnbedh'
  smtp_require_tls: false
  smtp_hello: 'qq.com'

route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'email'
receivers:
- name: 'email'
  email_configs:
  - to: "885097398@qq.com"
    send_resolved: true
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论