Alertmanager配置钉钉+邮件同时告警

本文详细描述了如何配置Prometheus警报通过Webhook-dingtalk插件发送到钉钉群,包括创建机器人、安装插件、系统集成、配置模板以及测试验证告警接收的过程。
摘要由CSDN通过智能技术生成

1、配置钉钉告警及模板

1. 创建钉钉机器人获取webhook和加签密钥


2. 安装Webhook-dingtalk插件
wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

tar zxf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz 
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /usr/local/webhook-dingtalk


3. 配置webhook-dingtalk使用systemd管理
cp /usr/local/webhook-dingtalk/config.example.yml /usr/local/webhook-dingtalk/config.yml
vim /usr/lib/systemd/system/webhook.service

[Unit]
Description=Prometheus-Server
After=network.target

[Service]
ExecStart=/usr/local/webhook-dingtalk/prometheus-webhook-dingtalk --config.file=/usr/local/webhook-dingtalk/config.yml
User=root

[Install]
WantedBy=multi-user.target


4. 启动 && 开机自启
systemctl enable webhook.service --now
systemctl status webhook.service 
#验证端口
netstat -anput |grep 8060


5. 配置Webhook-dingtalk插件对接钉钉群
vim /usr/local/webhook-dingtalk/config.yml

templates:
  - /usr/local/webhook-dingtalk/template.tmpl   # 告警模板路径

targets:
  webhook1:
    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxx   # webhook地址
    secret: xxxxxxxxxx # 加签秘钥


6. 添加钉钉报警模板
自定义告警模板配置目录
/usr/local/webhook-dingtalk/template.tmpl

7. 重启
systemctl restart webhook
systemctl status webhook

 2、修改alertmanager配置文件

---
kind: ConfigMap
apiVersion: v1
metadata:
  name: alertmanager
  namespace: prometheus
data:
  alertmanager.yml: |-
    global:  
      resolve_timeout: 1m
      smtp_smarthost: 'smtp.qq.com:25'
      smtp_from: 'xxxxxx@qq.com'
      smtp_auth_username: 'xxxxxx@qq.com'
      smtp_auth_password: 'xxxxxxxxx'
      smtp_require_tls: false
    templates:
    - '/etc/alertmanager/*.tmpl'
    route:
      group_by: [alertname]
      group_wait: 10s
      group_interval: 15s
      repeat_interval: 1h
      receiver: default-receiver   # 告警发送到default-receiver接受者
      routes:
      - receiver: 'dingding.webhook1'
        continue: true
      - receiver: 'default-receiver'
    receivers:
    - name: 'default-receiver'     # 定义default-receiver接受者
      email_configs:
      - to: 'xxxxxx@qq.com'   # 告警发送邮箱地址
        send_resolved: true
        html: '{{ template "email.to.html" . }}'
    - name: 'dingding.webhook1'
      webhook_configs:
      - url: 'http://10.0.0.10:8060/dingtalk/webhook1/send'
        send_resolved: true

  email.tmpl: |-
    {{ define "email.from" }}xxx.com{{ end }}
    {{ define "email.to" }}xxx.com{{ end }}
    {{ define "email.to.html" }}
    {{- if gt (len .Alerts.Firing) 0 -}}
    {{ range .Alerts }}
    ========= 监控报警 =========<br>
    告警级别: {{ .Labels.severity }} <br>
    告警类型: {{ .Labels.alertname }} <br>
    告警主机: {{ .Labels.instance }} <br>
    告警主题: {{ .Annotations.summary }}  <br>
    告警详情: {{ .Annotations.description }} <br>
    触发时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }} <br>
    ========= = end =  =========<br>
    {{ end }}{{ end -}}

    {{- if gt (len .Alerts.Resolved) 0 -}}
    {{ range .Alerts }}
    ========= 告警恢复 =========<br>
    告警级别: {{ .Labels.severity }} <br>
    告警类型: {{ .Labels.alertname }} <br>
    告警主机: {{ .Labels.instance }} <br>
    告警主题: {{ .Annotations.summary }} <br>
    告警详情: {{ .Annotations.description }} <br>
    触发时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }} <br>
    恢复时间: {{ .EndsAt.Format "2006-01-02 15:04:05" }} <br>
    ========= = end =  =========<br>
    {{ end }}{{ end -}}

    {{- end }}

3、测试验证

钉钉成功收到告警

邮件成功收到告警

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,关于 Prometheus Alertmanager邮件告警配置,你可以按照以下步骤进行: 1. 在 Alertmanager配置文件 alertmanager.yml 中添加以下内容: ``` route: receiver: 'email' group_by: ['alertname'] group_wait: 30s group_interval: 5m repeat_interval: 4h receivers: - name: 'email' email_configs: - to: 'xxx@xxx.com' from: 'xxx@xxx.com' smarthost: 'smtp.xxx.com:25' auth_username: 'xxx' auth_password: 'xxx' starttls_policy: 'mayskip' send_resolved: true ``` 这里的配置中,receiver 指定了告警通知的接收方式,这里是通过邮件发送,group_by 指定了按照 alertname 进行分组,group_wait 和 group_interval 分别指定了等待时间和分组时间间隔,repeat_interval 指定了重复发送告警的时间间隔。 receivers 中的 name 指定了接收器的名称,email_configs 中指定了邮件发送的相关参数,包括收件人、发件人、SMTP 服务器地址、SMTP 认证用户名和密码等。 2. 配置 SMTP 服务器的认证方式。Alertmanager 支持多种认证方式,包括 PLAIN、LOGIN、CRAM-MD5 等。根据 SMTP 服务器的要求进行配置即可。 3. 重启 Alertmanager 服务,使配置生效。 这样就完成了 Prometheus Alertmanager邮件告警配置。当出现告警时,Alertmanager 会根据配置发送邮件给指定的收件人。 ### 回答2: Prometheus是一个非常流行的开源监控工具,它提供了很多功能来监控各种系统和服务。AlertmanagerPrometheus的一部分,用于处理和发送告警消息。 要配置Alertmanager发送邮件告警,首先需要编辑Alertmanager配置文件alertmanager.yml。在配置文件中,需要定义邮件接收者和SMTP服务器的详细信息。以下是一个简单的示例配置: ``` global: smtp_smarthost: 'smtp.example.com:587' smtp_from: 'alertmanager@example.com' smtp_auth_username: 'username' smtp_auth_password: 'password' route: group_by: ['job'] group_wait: 30s group_interval: 5m repeat_interval: 1h receiver: 'email' receivers: - name: 'email' email_configs: - to: 'recipient@example.com' ``` 在上面的配置中,我们定义了全局的SMTP服务器和发件人信息。其中'smtp_smarthost'是SMTP服务器的地址和端口,'smtp_from'是发件人的邮件地址,'smtp_auth_username'和'smtp_auth_password'是SMTP服务器的认证信息。 然后,在'route'部分中定义了告警的路由规则。此示例中,我们将告警按照'job'进行分组,每个组的告警等待时间为30秒,组间间隔为5分钟,重复发送间隔为1小时。最后,如果满足路由规则,将发送到名为'email'的接收者。 在'receivers'部分,我们定义了接收者'email'的详细信息,包括收件人的邮件地址。 保存并关闭配置文件后,重新启动Alertmanager服务,新的配置将生效。 这样,当Prometheus监测到有告警触发时,Alertmanager将根据配置发送邮件给指定的接收者。注意确保SMTP服务器配置正确,并且能够成功发送邮件。 ### 回答3: 为了配置Prometheus Alertmanager发送邮件告警,我们需要修改alertmanager.yml文件。首先,确保已经安装了PrometheusAlertmanager,并且已经使用了正确的配置文件路径。以下是一个示例的alertmanager.yml配置文件: ``` global: smtp_smarthost: 'smtp.example.com:587' smtp_from: 'alertmanager@example.com' smtp_auth_username: 'username' smtp_auth_password: 'password' smtp_auth_identity: '' smtp_require_tls: true route: group_by: ['alertname', 'job'] group_wait: 10s group_interval: 5m repeat_interval: 3h receiver: 'email-alert' receivers: - name: 'email-alert' email_configs: - to: 'your-email@example.com' ``` 在上述配置文件中,我们进行了以下配置: 1. 全局设置: - `smtp_smarthost`:SMTP服务器的地址和端口。 - `smtp_from`:发送邮件的地址。 - `smtp_auth_username`:SMTP服务器的用户名。 - `smtp_auth_password`:SMTP服务器的密码。 - `smtp_auth_identity`:SMTP服务器的身份验证标识。 - `smtp_require_tls`:是否需要启用TLS加密。 2. 路由设置: - `group_by`:用于分组告警的标签。 - `group_wait`:相同分组告警之间的等待时间。 - `group_interval`:发送相同分组告警的时间间隔。 - `repeat_interval`:重复发送告警的时间间隔。 - `receiver`:指定接收告警的接收器。 3. 接收器设置: - `name`:接收器的名称。 - `email_configs`:邮件相关的配置。 - `to`:接收告警的邮箱地址。 请根据实际情况修改这些配置项,确保将邮件服务器的地址、端口、邮箱地址及密码等信息替换为实际的内容。修改完成后,保存文件并重新启动Alertmanager服务,配置邮件告警将生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值