SLS舊版本告警概述
日誌服務支持為查詢或分析結果設置告警。設置告警後,日誌服務定期檢查查詢或分析結果,當檢查結果滿足預設條件時發送告警通知,實現實時的服務狀態監控。
在舊版本的告警中,告警規則以及通知的配置都很簡單直觀,但是也存在著一些痛點,主要如下:
- 通知配置無法複用。例如手機號、郵箱、Webhook或者釘釘機器人的地址、通知內容等信息。假如多個告警需要發給相同的人,發送相同的通知內容,就需要將用戶聯繫方式以及通知內容配置多次,帶來了很多額外的配置負擔。
- 通知功能相對較弱,不支持動態的通知策略。例如:
-
- 多人值班
- 根據是否工作時間選擇不同的通知渠道或者通知給不同的人
- 根據告警本身屬性(例如嚴重度等)通知到不同的人
- 容易產生告警風暴。例如某個服務接口掛掉,那麼所有依賴該服務的其它服務都可能報錯觸發告警,此時就會產生大量的通知,但是無法進行聚合和過濾。
- 缺少一些更高級、更靈活的編排功能。
- 等等…
SLS新版本告警概述
為了解決上述種種存在的痛點,我們對SLS的告警功能進行了升級,提供了更加強大的功能。可以完美解決以上的一些痛點。例如:
- 高級、靈活的編排機制(告警策略)
-
- 告警路由合併:避免告警風暴
- 告警抑制:處理告警之間的互相影響
- 告警靜默:預期內告警可以不發通知
- 通知基礎資源管理
-
- 用戶管理:手機號、郵箱的複用
- 用戶組管理:管理一組用戶
- 值班組管理:提供動態靈活的值班機制
- 日曆管理:支持工作時間配置以及國際化時區
- 內容模板管理:可以複用通知內容
- 通知管理(行動策略)
-
- 通過什麼渠道:短信、電話、郵件、釘釘、Webhook、阿里雲消息中心
- 發送給誰:選擇用戶、用戶組或者值班組
- 發送什麼內容:選擇內容模板
- 其它配置:例如發送時段(是否是工作時間)、釘釘機器人是否要@某個用戶、等等
完整的介紹可以參考 什麼是日誌服務告警,整體的功能架構參考如下:
本文主要講解其中告警管理和通知管理部分內容。
告警管理流程
通常來說,如果要快速瞭解一個事物,那麼從整體上了解它的脈絡和結構,然後再逐部分細化深究,會起到不錯的效果。因為為了瞭解SLS新版本告警的處理流程,我們需要先從整體上來看一下,告警觸發後,究竟經歷了什麼。
在這個過程中,我們只需要牢記兩個東西即可:告警策略、行動策略。其它一切都是圍繞著這兩種策略來進行的。整體上的流程如下圖所示:
簡而言之,告警策略就是對告警進行編排管理,行動策略是處理如何通知的問題。這麼想的話,事情就變得簡單起來,也就是說,當告警出發後,需要先決定哪些告警要發,然後再決定要發給誰,最後就是用戶收到了通知。
其中告警策略通過路由合併、抑制和靜默機制,不僅解決了哪些告警要發送的問題,同時對它們進行了合併,從而可以達到批量發送通知的效果,避免用戶同一時間收到大量的通知。而行動策略不僅解決了複用的問題,還提供了更強大的動態發送機制。
為了達到告警策略和行動策略的強大且靈活的特性,我們提供了一套可視化圖的方式來進行配置,從而可以很直觀地進行各種條件相關的配置。
到此為止,我們可以總結一下:
- 告警管理的核心就是告警策略和行動策略
- 告警策略和行動策略,都是基於可視化交互表單的方式來進行配置
關於它們的具體使用和配置,我們會在接下來的文章中進行詳細的介紹。