获取验证码
不少运维在部署VCSA 8.0告警邮件功能时,已经反复核对SMTP服务器地址、端口、发件人地址,Web界面配置页面无报错提示,点击测试邮件却始终收不到消息;集群产生硬件告警、资源告警,也不会向外投递告警邮件。 配置页面不报错不等于邮件链路可以正常工作,该问题常见根因并不是填写的IP/端口错误,而是vCenter核心服务未正常运行、SMTP Relay中继服务器强制要求账号密码认证、防火墙访问限制、邮件过滤拦截等隐性因素。本文从现象、根因、分层排查、日志分析、处理方案、避坑清单完整梳理,帮助快速定位邮件投递失败问题。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
VCSA网页界面 SMTP 服务器、端口、发件人邮箱配置信息核对无误,保存配置无报错;
点击发送测试邮件,页面没有返回失败报错,但是收件邮箱始终接收不到邮件;
虚拟化集群产生告警事件,不会推送告警邮件通知;
部分环境偶尔可以发送成功,大部分告警邮件丢失,出现间歇性发送失败。
某企业VCSA8.0 U2环境,运维按照邮件中继文档填写SMTP地址与25端口,页面保存配置一切正常,测试邮件一直收不到。最开始怀疑网络不通,在VCSA内部telnet SMTP 25端口连通正常。 经过排查两点问题:第一是vCenter Alarm后台服务状态异常没有正常运行;第二内部邮件中继服务器开启强制身份认证,VCSA配置页面没有填写账号密码。补齐SMTP认证账号密码,重启对应vCenter服务之后,测试邮件以及业务告警全部正常投递。
网页SMTP配置只是保存参数,真正负责组装、投递告警邮件由vCenter多项后台服务完成,如果服务处于停止、异常僵死状态,就算SMTP参数完全正确,邮件也不会被发出。其中vpxd、vcenter-alarm是告警邮件链路的关键服务。
很多企业内部邮件中继服务器、第三方云SMTP服务,不支持匿名转发。仅仅填写服务器地址端口,不配置用户名密码,即使网络端口通,中继服务器直接丢弃邮件,页面不会返回明确错误提示。
VCSA到SMTP服务器防火墙端口拦截、中继服务器IP黑名单拦截、发件人邮箱地址不被邮件服务器信任、DNS解析异常、垃圾邮件网关过滤,同样会造成邮件投递无声失败。
使用SSH登录VCSA appliance,使用root账号登入操作系统;
查看告警服务运行状态命令:vcsa-deploy service list | grep alarm
同时检查vpxd核心服务状态:vcsa-deploy service list | grep vpxd
如果服务状态不是running,执行重启命令:vcsa-deploy service restart vcenter-alarm,同步重启vpxd服务。
很多运维存在误区:内网中继服务器就一定支持匿名发送。现代企业邮件系统绝大多数默认关闭匿名Relay。
确认SMTP服务器管理员,确认是否开启身份验证;
回到vCenter Web界面邮件配置,填写SMTP用户名与对应密码;
保存配置,再次点击发送测试邮件做验证。
网页配置无法代表VCSA操作系统层面网络可达,在VCSA SSH内测试连通性。
telnet smtp-relay-ip 25 # 如果使用587端口TLS,则测试587端口连通性 telnet smtp-relay-ip 587
telnet失败代表防火墙、安全组阻断VCSA访问SMTP服务器端口,需要网络侧放通访问权限。
页面没有报错,但是日志内部会记录完整SMTP交互报错信息。日志路径:/var/log/vmware-vpx/vpxd.log
检索关键词过滤SMTP邮件相关日志:
grep -i smtp /var/log/vmware-vpx/vpxd.log grep -i mail /var/log/vmware-vpx/vpxd.log
日志常见报错关键词:Authentication required代表缺少SMTP认证;Connection refused代表端口不通;Relay access denied代表中继拒绝转发。
现象:telnet SMTP端口正常,配置参数全部正确,日志提示告警服务无响应。
处理:重启vcenter‑alarm、vpxd服务,等待2‑3分钟,再发送测试邮件验证。如果反复异常,需要检查VCSA系统资源CPU内存是否过高。
现象:telnet端口通,日志输出Authentication required、Relay access denied。
处理:vCenter邮件配置页面填写SMTP登录用户名、密码,保存配置。部分第三方SMTP还需要开启TLS加密选项。
检查告警定义,确认告警已经勾选【发送邮件通知】动作;
检查收件邮箱、垃圾邮件箱,确认被反垃圾邮件网关拦截;
确认VCSA主机IP加入邮件中继服务器允许转发白名单。
| 故障现象 | 核心根因 | 标准化解决方案 |
|---|---|---|
| SMTP配置页面保存无报错,测试邮件完全收不到,telnet端口正常 | vcenter‑alarm / vpxd服务停止或者僵死 | SSH登录VCSA重启对应vCenter告警服务 |
| 端口连通正常,日志提示Relay access denied / Authentication required | SMTP Relay中继服务器禁止匿名转发,需要账号密码认证 | vCenter邮件配置填写SMTP用户名密码,必要开启TLS加密 |
| telnet SMTP端口直接失败 | 防火墙、安全组拦截VCSA访问SMTP服务器端口 | 网络设备放通VCSA IP访问SMTP服务器25/587/465端口 |
| 测试邮件可以收到,真实告警不会发送邮件 | 告警规则没有启用邮件动作,或者邮件进入垃圾箱 | 编辑告警定义勾选发送邮件通知,检查邮件网关白名单 |
| 更换第三方云SMTP后邮件发送失败 | 云服务商强制TLS加密,vCenter未开启加密选项 | 开启SMTP TLS,确认端口使用587,填写正确授权账号密码 |
1. 误区:Web配置保存成功,代表整套邮件链路全部正常纠正:页面保存仅校验输入格式,不会真实做SMTP交互,匿名被拒绝、服务僵死页面都不会返回报错。
2. 误区:内网邮件中继一定支持匿名转发纠正:现在Exchange、自建邮件系统默认禁用匿名Relay,必须账号密码或者IP白名单。
3. 误区:只在网页点测试邮件,不去查看系统日志纠正:真正详细的SMTP交互报错全部记录在vpxd.log日志,日志才是排错第一依据。
4. 误区:测试邮件正常就代表全部告警都可以发送纠正:测试邮件和业务告警是两套逻辑,还需要检查告警规则动作是否开启邮件通知。
配置SMTP完成之后,除网页测试邮件,建议查看vpxd.log确认SMTP交互无报错;
企业内部中继优先使用账号密码认证方式,不要依赖匿名转发;
VCSA升级、补丁更新完成之后,巡检vcenter‑alarm服务运行状态,升级经常会造成后台服务异常;
网络层面保障VCSA能够访问SMTP服务器对应端口25/587;
将VCSA Appliance IP加入邮件中继服务器允许转发白名单,降低被反垃圾策略拦截概率。
VCSA8.0告警邮件发不出,SMTP配置参数正确的情况下,优先排查两点:vCenter告警后台服务运行状态,以及SMTP Relay中继服务器是否强制身份认证。 通过VCSA SSH检查服务状态、telnet端口连通性、检索vpxd.log日志拿到真实SMTP报错信息,可以快速区分是vCenter内部故障还是邮件中继侧限制。内网环境尽量避免依赖匿名SMTP转发,升级VCSA版本后务必重新验证告警邮件功能,防止升级后服务异常造成告警通知完全丢失。