Spring Boot Admin 發送監控郵件

  最近在弄關於運行中的服務的Jvm監控,經過同事和自己搜索發現目前主要有兩種方案,普羅米修斯Spring Boot Admin,由於我們的系統是基於 Spring Cloud 的,所有可能搜索的都與 Spring Cloud 比較容易整合的。

   Spring Boot Admin 是比較容易接入的,只要將加上 Spring Boot Admin 依賴簡單配置一下,然後註冊到 Spring Boot 的註冊中心,並且其他應用都是對外有提供監控指標的話,進入 Spring Boot Admin 即可,看到每個應用的 Jvm 和一些配置信息,還可以線上設置每個類的日誌打印級別。不過要注意一下,如果數據庫和 redis 等連接不通的話,可能會打印出大量錯誤日誌,郵件也會被檢測到是否能鏈接通,不過郵件這裏的檢測好像是有問題(我自己能發送郵件,但是 其檢測還是鏈接不同,原因還在找中),最好是禁用掉郵件的檢測。具體要監控的配置 Spring Boot 應用可以參考後面的配置例子。

   普羅米修斯 功能也差不多,不過功能會更加強大一些,目前我也還沒接入,待接入後,再來補充,目前瞭解到其除了可以監控Jvm狀態,可以監控每個url的請求時間跟鏈路監控類似。

配置郵件監控(翻譯官方文檔)

其實這個是比較簡單,主要是裏面有些坑主要注意。

  1. 添加 Spring Boot 的mail依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

  1. 配置發送郵件的賬號和密碼,和接受的通知的郵箱
spring:
  mail:
    host: smtp.qq.com
    username: [email protected]
    password: 123456
    properties:
      mail:
        smtp:
          auth: true
  boot:
    admin:
      notify:
        mail:
          to: ["[email protected]"]
          from: [email protected]  # 這個必須要配置,並且和 Spring.mail.username的一樣,否則會報錯,因爲其源碼默認使用的 Spring Boot Admin <noreply@localhost>

注意事項

  1. Spring Boot Admin 在配置郵件的時候,要注意配置的發件人和spring.mail.user的是一樣的,否則可能 報 553 mailException

附錄

要監控的 Spring Boot 應用的對外暴露監控配置(供參考):

management:
  health:
    db:
      enabled: false
    mail:
      enabled: false   # 這個最好必須配置,否則如果有Spring Boot Admin 不斷檢測的話,可能導致郵件不能發送成功
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

Spring Boot Admin 的配置參考(供參考):

spring:
  security:
    user:
      name: 123456
      password: 123456
  mail:
    host: smtp.qq.com
    username: [email protected]
    password: 123456
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          connectiontimeout: 600000
          timeout: 600000
          writetimeout: 600000
          auth: true
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
            port: 25
  boot:
    admin:
      notify:
        mail:
          to: ["[email protected]"]
          from: [email protected]  # 這個必須要配置,並且和 Spring.mail.username的一樣

參考

  1. https://blog.csdn.net/qq_20597149/article/details/78463538
  2. https://codecentric.github.io/spring-boot-admin/current/#mail-notifications 官方說明如何配置Spring Boot Admin 的郵件監控。 Spring Boot Admin 的版本爲:2.1.6
發佈了45 篇原創文章 · 獲贊 58 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章