Grafana(在 openshift 中) - 错误 msg="异步发送电子邮件 0 成功,不发送电子邮件:...."

Posted

技术标签:

【中文标题】Grafana(在 openshift 中) - 错误 msg="异步发送电子邮件 0 成功,不发送电子邮件:...."【英文标题】:Grafana (in openshift) - error msg="Async sent email 0 succeed, not send emails:...." 【发布时间】:2021-10-18 20:56:28 【问题描述】:

我尝试为 Grafana (8.0.5) 配置 SMTP。邀请新用户时,Grafana 尝试发送电子邮件,但我在 pod 的日志中看到此消息

t=2021-08-16T20:15:44+0000 lvl=eror msg="异步发送邮件0成功,不发送邮件:err:发送通知到邮件地址失败::读取tcp :60938-> ourmailserver:25: i/o timeout" logger=notifications

Grafana 安装在 openshift 集群中。使用了正确的邮件服务器 IP 地址。那部分很好。

我们的 IT 告诉我,只有允许的 IP 地址才能使用 SMTP 发送电子邮件。由于 Pod 的 IP 地址随着 Pod 的每次启动而变化,用于告诉 SMTP 服务器发送电子邮件的 IP 地址也在不断变化。

pod 正在到达 SMTP 服务器,但 SMTP 服务器拒绝发送电子邮件,因为 SMTP 服务器不知道发件人。 SMTP 服务器不知道 pod 内部 IP 地址。

如何配置 Grafana 或 pod,以便将已知值作为电子邮件的来源(发件人)显示给 SMTP 服务器。

谢谢

【问题讨论】:

【参考方案1】:

几种解决方案:

将您的 Grafana 放在您的 Infra 节点上,然后确保您的所有 Infra 节点都可以连接您的 SMTP

同样,要打开单个 IP,设置 nodeSelector 将 Grafana 放置在单个节点上

查看 Egress IP,查看 https://docs.openshift.com/container-platform/4.5/networking/openshift_sdn/assigning-egress-ips.html

前两种情况:与您的 Grafana(或在基础节点上)并置的所有 Pod 都可以发送邮件,这可能不是您想要的

第三种情况,您的 Grafana 项目中的所有节点都可以发送邮件 - 但如果我们只想允许 Grafana:,那么我们可以确保在该命名空间中没有其他任何内容。

【讨论】:

pod 正在到达 SMTP 服务器,但 SMTP 服务器拒绝发送电子邮件,因为 SMTP 服务器不知道发件人。 SMTP 服务器不知道 pod 内部 IP 地址。 什么意思?!当您的 Pod 从您的 SDN 打开一个连接时,它的流量会在您的 LAN/out-of-SDN 内使用节点地址进行 NAT。如果您不希望这些节点上的所有容器都能从该配置中受益,请让您的 SMTP 管理员信任选定的节点地址,或者使用出口 IP。 我对SDN不是很熟悉。在我看来,不是节点地址提供给 SMTP 服务器,而是 Pod 内部 IP (10.xxx.xxx) 使用 Cisco ACI,或配置 calico 以将 SDN 路由重新分配到某些外部 BGP 路由器,......很少有 SDN 或配置可能是真的。虽然坦率地说,我从来没有见过任何客户有这样的设置。您确定远程服务看不到 Kubernetes 节点 IP 之一吗?如果您对基础设施中的另一台服务器(Kubernetes 节点除外)有一些 ssh+sudo 访问权限,您可以检查 tcpdump。无论哪种方式:您确定 Egress IP 不能解决您的问题吗?

以上是关于Grafana(在 openshift 中) - 错误 msg="异步发送电子邮件 0 成功,不发送电子邮件:...."的主要内容,如果未能解决你的问题,请参考以下文章

OpenShift采用Blackbox_exporter进行服务状态监控

云计算与云原生 — OpenShift 的架构设计

(4) -- Jaeger, Prometheus, Kiali, GRAFANA使用指引

如何在openshift中获得完整的CI / CD?

如何在OpenShift中运行pgAdmin?

未找到 Openshift Tomcat 404