记录一次CDH集群邮件报警功能的设置

1.通用的配置CDH邮件报警设置

  • 进入cloudera manager service页面,选择配置
  • 左侧菜单Alert Publisher
  • 勾选【启用电子邮件警报】
  • 邮件服务协议smtp,如果使用ssl加密的,请选择smtps
  • 输入邮件服务器主机名称或者IP
  • 输入邮件服务器用户名,一般和邮箱一致
  • 输入邮箱密码或者授权码,授权码具体百度,邮箱授权码
  • 填写邮件发件人邮箱
  • 填写邮件收件人邮箱
  • 第二页设置,修改TCP端口为25,这里的端口就是SMTP服务的端口
  • 回到CDH主页,管理--警报--发送测试警报

2.内网环境,邮件登录失败,不能发送邮件的问题

点击发送测试警报之后,查看Alert Publisher日志,发现经过以上配置之后,居然显示邮件认证失败,错误代码:334 ntlm supported

从报错的问题来看,我是没有发现一点儿的TLS加密方面的信息,因此一开始排查问题的时候也丝毫没有往这个方向考虑过。

当我手动构建了javamail进行服务器环境下的邮件发送,python直接调用airflow的send_email方法等测试验证之后,确定了账号密码没错,服务器环境也没有问题等之后,注意力放在CDH密码解析上!

手动修改邮箱的密码,由于公司的LDAP不允许简单密码,无论如何都需要特殊符号,经过几次设置之后,也无奈的放弃了密码解析的想法。

然后开始漫无目的的搜百度,没错,是的,只能搜百度,公司不让有翻墙的工具!

直到看到有博客说,office365需要使用ssl,但是不知道怎么启动时,下面有人回复可以修改邮件程序的启动命令,来启动TLS加密

于是我突然想到了airflow邮件配置中,默认是smtp_starttls=true的状态

然后又意识到javamail中并没有设置该参数,在纠结于到底是不是该参数造成的时,果断选择了修改参数做测试。于是问题解决

3.问题解决,通过java启动参数开启SMTP服务的TLS加密

在alter中搜索java,修改alter的java参数,添加

-Dmail.smtp.starttls.enable=true -Dmail.smtp.ssl.trust={your_email_smtp_host}

大概说明一下这个-D参数的作用:D是用来在启动一个java程序时设置系统属性值的,此参数的优先级最高,会覆盖项目中配置的此项!

猜你喜欢

转载自www.cnblogs.com/night-xing/p/11973694.html
今日推荐