淘先锋技术网

首页 1 2 3 4 5 6 7

Linux下安装Docker请参考:Linux安装Docker

简介

Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email, Slack,等告警方式, 也可以通过webhook接入钉钉等国内IM工具。

安装前准备

创建挂载目录

/opt/alertmanager/config目录,准备用来放置alertmanager的配置文件
#/opt/alertmanager/template目录,准备用来挂载放置alertmanager的模板文件

mkdir -p /opt/alertmanager/{config,template}```
## 授权权限

```linux
chmod -R 777 /opt/alertmanager/config
chmod -R 777 /opt/alertmanager/template

AlertManager配置文件

cat > /opt/alertmanager/config/alertmanager.yml << \EOF
global:
  resolve_timeout: 5m
  # 发件人
  smtp_from: [email protected]'
  # 邮箱服务器的 POP3/SMTP 主机配置 smtp.qq.com 端口为 465 或 587
  smtp_smarthost: 'smtp.qq.com:465'
  # 用户名
  smtp_auth_username: [email protected]'
  # 授权码 或 密码
  smtp_auth_password: '你的qq授权码'
  smtp_require_tls: false
  smtp_hello: 'qq.com'
templates:
  # 指定预警内容模板
  - '/etc/alertmanager/template/email.tmpl'
route:
  # 指定通过什么字段进行告警分组(如:alertname=A和alertname=B的将会被分导两个组里面)
  group_by: ['alertname']
  # 在组内等待所配置的时间,如果同组内,5 秒内出现相同报警,在一个组内出现
  group_wait: 5s
  # 如果组内内容不变化,合并为一条警报信息,5 分钟后发送
  group_interval: 5m
  # 发送告警间隔时间 s/m/h,如果指定时间内没有修复,则重新发送告警
  repeat_interval: 5m
  # 默认的receiver。 如果一个报警没有被任何一个route匹配,则发送给默认的接收器
  receiver: 'justrydeng163email'
  #子路由(上面所有的route属性都由所有子路由继承,并且可以在每个子路由上进行覆盖)
  routes:
  # 当触发当前预警的prometheus规则满足:标签alarmClassify的为normal时(标签名、标签值可以自定义,只要和编写的prometheus的rule里面设置的标签呼应上即可),往justrydeng163email发送邮件
  - receiver: justrydeng163email
    match_re:
      alarmClassify: normal
  # 当触发当前预警的prometheus规则满足:标签alarmClassify的值为special时(标签名、标签值可以自定义,只要和编写的prometheus的rule里面设置的标签呼应上即可),往justrydengQQemail发送邮件
  - receiver: justrydengQQemail
    match_re:
      alarmClassify: special
receivers:
- name: 'justrydeng163email'
  email_configs:
  # 如果想发送多个人就以 ',' 做分割
  - to: [email protected]'
    send_resolved: true
    # 接收邮件的标题
    headers: {Subject: "alertmanager报警邮件"}
- name: 'justrydengQQemail'
  email_configs:
  # 如果想发送多个人就以 ',' 做分割
  - to: [email protected]'
    send_resolved: true
    # 接收邮件的标题
    headers: {Subject: "alertmanager报警邮件"}
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']
EOF

预警内容模板文件


cat > /opt/alertmanager/template/email.tmpl << \EOF
{{ define "email.html" }}
<table >
    <tr>
        <td>报警项</td>
        <td>实例</td>
        <td>报警阀值</td>
        <td>开始时间</td>
        <td>告警信息</td>
    </tr>
    {{ range $i, $alert := .Alerts }}
    <tr>
         <td>{{ index $alert.Labels "alertname" }}</td>
         <td>{{ index $alert.Labels "instance" }}</td>
         <td>{{ index $alert.Annotations "value" }}</td>
         <td>{{ $alert.StartsAt }}</td>
         <td>{{ index $alert.Annotations "description" }}</td>
     </tr>
   {{ end }}
</table>
{{ end }}   EOF

启动

启动命令

docker run -d --name=alertmanager \
    -p 9093:9093 \
    -v /etc/localtime:/etc/localtime:ro \
-v /opt/alertmanager/config/alertmanager.yml:/etc
/alertmanager/alertmanager.yml \
-v /opt/alertmanager/template:/etc
/alertmanager/template \
prom/alertmanager

编辑Prometheus.yml

若未安装Prometheus部分,请参考Docker安装并配置Prometheus

vim /opt/prometheus/config/prometheus.yml
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # alertmanager在容器内的地址
          - 172.31.113.186:9093

查看启动情况

docker ps -a

在这里插入图片描述UP状态,启动成功,端口9093

访问AlertManager

URL:IP:端口号(本次设置为9093)

在这里插入图片描述
访问成功
操作结束


同系列文章

Linux安装Docker

Docker搭建并配置Prometheus

Docker拉取并配置Grafana

Docker安装并配置Node-Exporter

Docker安装并配置cAdvisor

Prometheus+Grafana+AlertManager监控Linux主机状态

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知