为了配置 Prometheus 的 Alertmanager 以使用163邮箱发送邮件告警,并且让这个告警系统在开机时自动启动,你可以按照以下详细步骤操作:
步骤 1: 下载和解压 Alertmanager
-
去官网下载 Alertmanager:
官网地址:https://prometheus.io/download/ -
解压下载的文件:
tar -xvf alertmanager-0.27.0.linux-amd64.tar.gz mv alertmanager-0.27.0.linux-amd64 /opt/prometheus/alertmanager cd alertmanager
步骤 2: 配置 Alertmanager 使用 163 邮箱
-
创建或编辑
alertmanager.yml
配置文件:global: smtp_smarthost: 'smtp.163.com:465' smtp_from: 'mml3_bot@163.com' smtp_auth_username: 'mml3_bot@163.com' smtp_auth_password: 'XXXXXXXXXXXXXXXX' smtp_require_tls: true route: group_by: ['alertname'] group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: 'email_notifications' receivers: - name: 'email_notifications' email_configs: - to: 'XXXXX@jie.com, AAAAAA@jie.com, BBBB@jie.com' send_resolved: true
步骤 3: 创建 systemd 服务单元
-
创建一个 systemd 服务单元文件
/etc/systemd/system/alertmanager.service
:[Unit] Description=Prometheus Alertmanager Wants=network-online.target After=network-online.target [Service] Type=simple User=prometheus Group=prometheus ExecStart=/opt/prometheus/alertmanager/alertmanager \ --config.file=/opt/prometheus/alertmanager/alertmanager.yml \ --storage.path=/opt/prometheus/alertmanager/data Restart=always [Install] WantedBy=multi-user.target
-
启用和启动服务:
sudo systemctl daemon-reload sudo systemctl enable alertmanager sudo systemctl start alertmanager
-
检查服务状态:
sudo systemctl status alertmanager
步骤 4: 验证配置
确保 Alertmanager 正在运行,同时检查你的邮件收件箱(包括垃圾邮件文件夹),以确认告警邮件能正确发送和接收。
这样配置之后,Alertmanager 会在系统启动时自动运行,并能使用你指定的163邮箱发送告警到指定的接收邮箱列表。
还需要确认Alertmanager和Prometheus集成
确认Prometheus配置文件中已正确设置了指向Alertmanager的连接。例如:
alerting:
alertmanagers:
- static_configs:
- targets:
- 'localhost:9093'
确认Prometheus和Alertmanager之间的网络连接没有问题,并且Alertmanager的端口(如9093)在网络中是可访问的。
如果想用邮件+webhook地址监控
如果你想同时使用邮件和 Webhook 方式进行告警,你可以在 Alertmanager 的配置文件中同时定义这两种通知方式。以下是一个配置示例,展示如何同时设置邮件告警和 Webhook 通知至企业微信:
完整配置示例
global:
resolve_timeout: 5m
route:
group_by: ['alertname', 'severity']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'email-notifications'
routes:
- match:
severity: 'critical'
receiver: 'wechat-webhook'
- match:
severity: 'critical'
receiver: 'email-notifications'
receivers:
- name: 'wechat-webhook'
webhook_configs:
- url: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=216xxxxxxxx44324324322bfba'
send_resolved: true
- name: 'email-notifications'
email_configs:
- to: 'XXXXXX@jieft.com, cXXXXXXe@jioft.com, xXXXXXXng@jift.com'
from: 'mml3_bot@163.com'
smarthost: 'smtp.163.com:587'
auth_username: 'mml3_bot@163.com'
auth_password: 'XXXXXXXXXXX'
require_tls: true
解释
- 全局设置:定义了邮件服务的配置,包括 SMTP 服务器、发件人地址、身份验证信息和 TLS 需求。
- 路由:定义了基础的分组规则和不同严重级别告警的子路由。每种严重级别的告警可以有不同的接收器处理。
- 接收器:
default_receiver
用于处理所有告警,将告警同时发送到指定的邮件地址和 Webhook(企业微信)。critical_alerts
和warning_alerts
接收器用于处理具有特定severity
标签的告警,每种严重级别的告警都发送到不同的邮件和相同的 Webhook 地址。
- 抑制规则:在存在严重告警时自动抑制警告级别的告警,避免过多不必要的通知。
部署和测试
配置文件编辑完成后,需要重新加载或重启 Alertmanager 服务:
sudo systemctl restart alertmanager
测试配置是否正确,可以通过生成测试告警来检查邮件和 Webhook 是否都能正常接收到告警通知。
这种配置方法确保了在关键情况下,通过邮件和 Webhook 同时接收到告警,增强了告警的及时性和可见性。