記錄一次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程序時設置系統屬性值的,此參數的優先級最高,會覆蓋項目中配置的此項!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM