Cloudera Manager发送告警时出现STARTTLS错误求助
解决Cloudera Alert Publisher 5.14的STARTTLS错误问题
我帮你梳理下这个STARTTLS错误的解决思路,结合你用的是带GSuite的hadoop-cluster.org域名,还有Cloudera Alert Publisher 5.14的特性,问题大概率出在SMTP配置细节或者证书信任上,咱们一步步来:
1. 核对SMTP核心配置参数
GSuite的SMTP规则和Gmail基本一致,你需要在Cloudera UI的告警发布器设置里,把这几个关键参数调整到位:
- SMTP服务器:填
smtp.gmail.com(GSuite共享Gmail的SMTP服务节点) - 端口:选
587(这个端口是专门适配STARTTLS加密流程的,别和SSL模式的465端口搞混) - 启用TLS/SSL:务必勾选“启用TLS”选项——STARTTLS是先建立普通连接再升级为加密,对应587端口;如果选SSL则是直接加密连接,对应465,两种模式不能混搭
- 认证方式:选
PLAIN或者LOGIN都可以,GSuite都支持;另外要注意,如果你开启了GSuite账号的两步验证,绝对不能用普通登录密码,必须创建应用专用密码填入,普通密码会被拦截
2. 修复Java信任库的证书问题
有时候STARTTLS错误是因为Cloudera的Java环境没信任GSuite的SSL证书,你可以手动导入证书解决:
- 登录Cloudera Manager所在服务器,找到Cloudera使用的JDK信任库路径,一般是
/usr/java/jdk<具体版本>/jre/lib/security/cacerts - 先获取Gmail SMTP的证书,用这条命令:
openssl s_client -connect smtp.gmail.com:587 -starttls smtp </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > smtp_gmail_cert.pem - 然后用
keytool把证书导入信任库:
(默认信任库密码是keytool -import -alias smtp.gmail.com -file smtp_gmail_cert.pem -keystore /usr/java/jdk<具体版本>/jre/lib/security/cacertschangeit,按提示确认导入即可) - 导入完成后,重启Cloudera Management Service
3. 验证网络连通性
先确认Cloudera服务器能正常访问GSuite的SMTP端口,用telnet测试:
telnet smtp.gmail.com 587
如果连接失败,检查服务器的防火墙、安全组规则,确保587端口的出站流量是允许的,没有被拦截
4. 排查GSuite账号的限制
- 确认发件人邮箱没有被GSuite管理员限制发送外部邮件
- 如果没开两步验证,检查GSuite的“不太安全的应用访问”设置(不过现在GSuite更推荐用应用密码,这个选项可能已经下线,优先用应用密码更稳妥)
把这些配置都调整好后,重新保存告警发布器设置,重启Cloudera管理服务,再发送测试告警应该就能解决STARTTLS错误了。
内容的提问来源于stack exchange,提问作者VeLKerr
相关产品推荐
相关产品推荐

