如何在Grafana中配置alerting状态触发的邮件通知
Grafana告警状态邮件通知配置全流程及排障指南
一、先搞定SMTP基础配置
这是邮件能发送成功的核心前提,两种配置方式任选其一:
方式1:通过配置文件(grafana.ini)修改
找到配置文件中的[smtp]区块,替换为符合你邮箱服务商要求的参数(示例以QQ邮箱SMTP为例):
[smtp] enabled = true host = smtp.qq.com:587 user = your-qq-email@qq.com password = your-authorization-code # 注意:此处填邮箱SMTP授权码,不是账号登录密码 from_address = your-qq-email@qq.com from_name = Grafana监控告警
修改完成后重启Grafana服务生效。
方式2:通过UI面板配置(Grafana 8.0+支持)
- 点击左侧菜单栏「服务器管理」→「配置」→「SMTP」
- 填写对应SMTP参数,勾选「启用SMTP」
- 点击页面底部「发送测试邮件」,输入测试邮箱,确认收到邮件后再保存配置。
二、配置告警通知策略
确保alerting状态的告警能被正确路由到邮件渠道:
- 进入左侧菜单栏「告警」→「通知策略」
- 全局邮件通知(给所有告警发邮件):
- 点击默认策略右侧的「编辑」
- 在「通知渠道」下拉框中选择你刚配置的邮件渠道,保存即可
- 特定告警邮件通知(仅给带指定标签的告警发邮件):
- 点击「添加策略」,设置匹配条件(比如
label=team:dev,匹配带有team=dev标签的告警) - 选择邮件通知渠道,保存策略
- 点击「添加策略」,设置匹配条件(比如
三、确认告警触发逻辑合规
很多时候告警显示alerting但没发邮件,是触发条件未满足:
- 检查告警规则的「For」时长:比如设置
for: 5m意味着告警需持续处于alerting状态5分钟才会触发通知,测试时可临时改为0m跳过等待 - 确认告警状态:确保告警规则的状态是「Alerting」而非「Pending」,Pending是刚触发但未满足For时长的状态,默认不发通知
- 查看告警历史:进入「告警」→「告警历史」,确认告警是否进入了触发通知的阶段
四、保障邮件可靠发送的技巧
- 开启调试日志:将Grafana的
log_level设为debug,查看logs/grafana.log中的SMTP相关日志,能直接定位邮件发送失败的具体原因(如认证失败、端口不通) - 配置重试机制:在邮件通知渠道配置页面开启「重试」,设置重试间隔(如30s)和次数(如3次),避免网络波动导致的发送失败
- 监控通知状态:在「告警」→「通知历史」中查看每条通知的发送状态,失败条目会显示具体错误原因
五、常见坑及规避方法
- 坑1:SMTP端口选错/被封禁
规避:优先使用587端口(STARTTLS),25端口大多被云服务商封禁,465为SSL端口,需根据邮箱服务商要求选择 - 坑2:用登录密码代替SMTP授权码
规避:主流邮箱(QQ、163、Gmail)均需使用SMTP授权码而非账号登录密码,需去邮箱设置中开启SMTP服务并生成授权码 - 坑3:通知策略未覆盖目标告警
规避:检查通知策略的匹配条件,若告警带有特定标签,策略匹配条件需对应;或直接使用默认策略覆盖所有告警 - 坑4:邮件被判定为垃圾邮件
规避:设置合理的发件人名称(如「Grafana监控告警」),避免使用敏感名称;给发件域名配置SPF和DKIM记录,提升邮件可信度 - 坑5:新旧告警系统混用
规避:Grafana 8.0+建议使用统一告警(Unified Alerting),不要同时开启旧版Alerting,两者配置不兼容易导致异常
内容的提问来源于stack exchange,提问作者FALGUNI BHAVSAR
相关产品推荐
相关产品推荐

