来自 Grafana 的电子邮件警报在 docker 容器内不起作用

Posted

技术标签:

【中文标题】来自 Grafana 的电子邮件警报在 docker 容器内不起作用【英文标题】:Email Alerting from Grafana is not working inside the docker container 【发布时间】:2019-04-06 13:14:42 【问题描述】:

我在 docker-compose 文件中有 prometheus 和 Grafana。 我可以在 grafana 中可视化所有 docker 容器指标和主机指标。 但是电子邮件警报不起作用。我已经在 Grafana 的 defaults.ini 中配置了 smtp 配置。

以下是我使用测试警报向我的公司邮件 ID 发出错误警报时遇到的错误。 SMTP 服务器是一个内部服务器,因此它可以在公司内部发送电子邮件。

2018-11-02T09:08:11+0000 lvl=eror msg="发送通知失败" logger=alerting.notifier id=1 error="gomail: 无法发送电子邮件 1: 读取 tcp 172.20.0.8:42386->10.5.10.160:25: i/o timeout"

你能告诉我为什么我的 grafana 容器不能发送电子邮件吗?我还尝试了 prometheus alertmanager 来发送邮件。它也不起作用。

【问题讨论】:

错误信息似乎很清楚。 Grafana 无法访问您的电子邮件服务器。可能是 DNS 或防火墙问题。 您是否从 Docker 容器中打开了正确的端口。从日志看,应该是:42386 只暴露端口:docker run [...] -p 42386:42386 现在端口已更改为 49604 并显示相同的错误.. 它随机分配端口 【参考方案1】:
    您确定您的计算机可以访问“10.5.10.160:25”的 SMTP 服务器吗? 您是否尝试过从 grafana 容器内 ping 服务器?

也许您的计算机无法访问该 IP。

也许可以访问该 IP,但您的 SMTP 服务器仅在端口 465 和 587 上打开,而不是 25,并且可能需要一些身份验证。

Just expose the port: docker run [...] -p 42386:42386

tcp 172.20.0.8:42386 是您调用的 IP:port;你不需要暴露这一点,这与 Mornor 在 cmets 中所说的相反

【讨论】:

以上是关于来自 Grafana 的电子邮件警报在 docker 容器内不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure kubernetes 集群中托管的 grafana 发送电子邮件警报

如何在 Grafana 的单个警报通知电子邮件中发送多个值?

Grafana 警报执行超时,为啥会这样?

如何在使用 grafana 和 prometheus-operator 时配置电子邮件警报

使用 prometheus-alertmanager 通过 Grafana UI 发送警报电子邮件

Grafana的介绍与使用