文章目录

  • 一、使用方法
  • 1.alertmanager介绍和安装
  • 2.alertmanager分组告警规则
  • 3.grafana介绍和安装
  • 总结


一、使用方法

1.alertmanager介绍和安装

Alertmanager 处理客户端应用程序(例如 Prometheus 服务器)发送的警报。它负责对它们进行重复数据删除、分组和路由到正确的接收器集成,包括静音、抑制、聚合和通过电子邮件、待命通知系统和聊天平台等方法发送通知。

docker拉取alertmanager镜像:

docker pull prom/alertmanager:latest

2.alertmanager分组告警规则

官网alertmanager地址:https://github.com/prometheus/alertmanager
介绍的很详细,有兴趣的可以了解一下。
alertmanager.yml文件格式参考:

global:
  # The smarthost and SMTP sender used for mail notifications.
  resolve_timeout: 5m #处理超时时间,默认为5min
  smtp_smarthost: 'smtp.163.com:25' # 邮箱smtp服务器代理
  smtp_from: 'abc@163.com' # 发送邮箱名称
  smtp_auth_username: 'abc@163.com' # 邮箱名称
  smtp_auth_password: '1234567890' # 邮箱密码或授权码
  smtp_require_tls: false

# 定义邮件内容模板
#templates:
#  - '/etc/alertmanager/*.tmpl'

#每个警报都会进入的根路由,根路径不能有任何的匹配,因为它是入口点,所以提醒,不要匹配任何子路由的发送给别人。
route:
  receiver: 'Operations-mails'  #默认分组即所有分组都未匹配到
  group_by: ['hostmonitor', 'wavedetection'] 
  group_wait: 30s  #当传入的警报创建一组新的警报时,至少等待30秒以发送初始通知。这样可以确保您获得该启动同组的多个警报烧成后不久,另一是分批在一起第一通知。
  group_interval: 30s  #
  repeat_interval: 2m  #如果警报已成功发送,等待多久重新发送它们
#以上所有属性都被所有子路由继承,并且可以在每个子路由上覆盖。
  routes:
  - match_re:
      service: ^(foo1|foo2|baz)$
    receiver: Operations-mails

  - match:
      team: Operations
    receiver: Operations-mails

    routes:
    - match:
        severity: critical
      receiver: Operations-supervise-mails

  - match:
      team: Develop
    receiver: Development-mails

    routes:
    - match:
        severity: critical
      receiver: Development-supervise-mails

inhibit_rules:
- source_matchers:
    - severity="critical"
  target_matchers:
    - severity="warning"
  equal: ['hostmonitor', 'wavedetection']


receivers:
- name: 'Operations-mails'
  email_configs:
  - to: 'zacharyzzj@outlook.com'
    #html: '{{ template "test.html" . }}' # 设定邮箱的内容模板
    headers: { Subject: "[WARN1]  运维报警邮件"} # 接收邮件的标题

- name: 'Operations-supervise-mails'
  email_configs:
  - to: 'zacharyzzj@outlook.com'
    headers: { Subject: "[WARN2] 运维报警邮件"} 

- name: 'Development-mails'
  email_configs:
  - to: 'zacharyzzj@outlook.com'
    headers: { Subject: "[WARN3] 开发报警邮件"} 

- name: 'Development-supervise-mails'
  email_configs:
  - to: 'zacharyzzj@outlook.com'
    headers: { Subject: "[WARN4] 开发报警邮件"}

3.grafana介绍和安装

grafana 是开源可视化和分析软件。它允许您查询、可视化、警报和探索您的指标、日志和跟踪,无论它们存储在哪里。它为您提供了将时间序列数据库 (TSDB) 数据转换为富有洞察力的图表和可视化的工具。与您的团队一起创建、探索和共享漂亮的仪表板。

docker拉取alertmanager镜像:

docker pull grafana/grafana:latest

grafana默认版本中没有一些插件,需要进行安装仪表盘才能正常显示,可以命令行安装,我这边用的是dockfile把插件打包到镜像里面。
Dockerfile文件内容:

FROM grafana/grafana:latest
#WORKDIR /usr/share/grafana  #工作目录
COPY ./grafana.ini /etc/grafana/
#时钟图
Run grafana-cli plugins install grafana-clock-panel
# 饼图
Run grafana-cli plugins install grafana-piechart-panel
# 气泡图
Run grafana-cli plugins install digrich-bubblechart-panel
# worldPing插件
Run grafana-cli plugins install raintank-worldping-app
# json数据
Run grafana-cli plugins install grafana-simple-json-datasource
##zabbix报警
#Run grafana-cli plugins install alexanderzobnin-zabbix-app

总结

安装过程就不过多叙述了,网上一搜一堆,需要考虑到以下几点:

1.alertmanager通过标签匹配发给不同组不同人邮件,需要考虑的是抑制问题,如何避免邮件轰炸问题?
2.grafana也是可以发邮件告警的,又与alertmanager邮件告警区别是什么?