兩招玩轉(zhuǎn)阿里云系統(tǒng)事件監(jiān)控
背景介紹
具體來說,作為阿里云監(jiān)控系統(tǒng)中的重要組成部分,與監(jiān)控指標(biāo)不同,監(jiān)控指標(biāo)一般指一種數(shù)值型的監(jiān)控緯度,一般需要配合設(shè)置閾值來進(jìn)行監(jiān)控來表達(dá)某一個監(jiān)控含義,比如 CPU 使用率超過 60%。但是系統(tǒng)事件一般情況下具有完備的上下文信息,在阿里云體系中常用以描述服務(wù)的狀態(tài)或者狀態(tài)變化,常見如以下場景:
1. 系統(tǒng)運(yùn)行中的一些關(guān)鍵狀態(tài)事件,比如 ECS 系統(tǒng)錯誤重啟、彈性伸縮失敗、IOT QPS 達(dá)到上限。
2. 記錄和審計,比如投遞 OSS 失敗。
3. 系統(tǒng)連續(xù)性問題,比如 DDos 黑洞進(jìn)行中。
4. 重要安全事件,比如 安全告警:異常網(wǎng)絡(luò)連接(提醒)。
目前大部分的云服務(wù)服務(wù)已經(jīng)完成接入云監(jiān)控,具體詳情可以參加下面文檔:https://help.aliyun.com/zh/cms/user-guide/appendix-2-system-events?spm=5176.2020520111.console-base_help.dexternal.3d6d6610UEXzUw#concept-2500373
監(jiān)控好這些系統(tǒng)事件對于用戶是一件非常重要的事情。
云監(jiān)控事件訂閱設(shè)計初衷
通過對之前的用戶需求分析,我們設(shè)計了新的云監(jiān)控事件訂閱用來以實現(xiàn)以下功能:
1. 通過靈活的訂閱配置,支持系統(tǒng)事件或閾值事件,支持從產(chǎn)品、事件級別、事件名稱、事件資源,事件內(nèi)容的篩選;支持篩選的黑白名單操作等等;
2. 通過分組合并降噪,可以實現(xiàn)產(chǎn)品級,事件級,資源級等等級別的報警合并,然后通過條件降噪(固定時長內(nèi)發(fā)生超過某個閾值事件數(shù)量)來控制報警的有效性,避免大量重復(fù)報警造成報警風(fēng)暴;
3. 對于合并降噪后的有效報警通知,云監(jiān)控可以直接推送到郵件、電話、短信、釘釘、企業(yè)微信等
4. 支持通過靈活定制通知模版來滿足用戶自身的業(yè)務(wù)需求,用戶可以通過配置自己的模版,來實現(xiàn)個性化的通知格式定制;
5. 定制了自定義的通知模版,可以在訂閱規(guī)則上通過自定義通知方式,給具體的通知渠道指定通知的級別和模板;
6. 還可以通過通知模板自定義推送的數(shù)據(jù)格式,通過我們在集成與推送,直接講報警數(shù)據(jù)轉(zhuǎn)換為用戶需要的格式,推送到消息服務(wù) MNS、日志服務(wù) SLS、函數(shù)計算 FC 和 Webhook。
典型云監(jiān)控場景介紹
場景 1:多運(yùn)維團(tuán)隊場景
1. 用戶使用了阿里云 ECS RDS REDIS SLB 等云服務(wù);
2. 用戶有兩個獨立運(yùn)維團(tuán)隊,分別運(yùn)維 ECS SLB 和 RDS REDIS;
3. 用戶希望監(jiān)控每個團(tuán)隊監(jiān)控團(tuán)隊自己獨立的服務(wù);
4. 對于緊急的電話報警,兩個團(tuán)隊需要相互 backup,當(dāng)一個團(tuán)隊電話打不通的時候,通知另外一個團(tuán)隊;
5. 需要排除掉一些預(yù)發(fā)和測試環(huán)境的實例。
具體的操作步驟如下:
1. 進(jìn)入事件中心界面,點擊創(chuàng)建訂閱策略。
圖片
2. 在彈出的窗口中,按照需求設(shè)置我們的訂閱配置。
圖片
我們這里設(shè)置了訂閱的說明如下:
1 ) 范圍是 ECS 和 RDS 的所有 CRTICAL 級別事件,再排除掉其中的測試和預(yù)發(fā)的相關(guān)資源(根據(jù)資源名稱排除);
2) 訂閱好的報警,我們希望按照不同的產(chǎn)品來進(jìn)行合并通知,這樣 RDS 的事件和 ECS 的事件會被作為獨立的報警發(fā)送通知給用戶;
3) 設(shè)置了 5 分鐘內(nèi),每個產(chǎn)品(我們選擇的合并字段)下需要連續(xù)收到 5 個事件才會通知,通知一次之后 5 分鐘內(nèi)不再重復(fù)通知。
3. 設(shè)置好了訂閱配置,下面我們來配置通知。
圖片
在下面的通知配置中,我們可以選擇已經(jīng)有的通知配置,也可以選擇創(chuàng)建一個新的通知配置,這里我們以創(chuàng)建新的通知配置為例,點擊創(chuàng)建通知配置之后,彈出如下對話框:
圖片
最簡單的情況,我們可以直接選擇通知到某一個組。
對于一些非常關(guān)鍵的報警,為了防止電話撥打沒有接通的情況,我們還可以配置電話報警備選通知組,當(dāng)上面配置的所有電話報警聯(lián)系人都沒有接通電話的情況下,將按照定義的備份電話報警聯(lián)系組順序,每三分鐘逐個通知備份電話聯(lián)系組,直到電話接通或者所有備份聯(lián)系組都通知完成。
如果用戶需要按照不同嚴(yán)重級別發(fā)送給不同的人,也可以選擇按照嚴(yán)重級別獨立通知聯(lián)系組,如下圖:
圖片
4. 設(shè)置好了通知接受對象后,我們還可以繼續(xù)對通知方式進(jìn)行定制。
如果用戶希望對于報警方式進(jìn)行進(jìn)一步的定制,可以通過自定義通知方式來實現(xiàn)。
圖片
這里,我們可以對報警通知的消息模版進(jìn)行選擇,可以定義每個報警級別通知的渠道,來實現(xiàn)用戶定制化報警的需求。
5. 設(shè)置好了通知后,如果對于一些報警,我們希望推送到我們自己的系統(tǒng)中,我們可以使用推送和集成來進(jìn)行配置。
圖片
點擊添加渠道,在彈出的對話框中選擇我們對應(yīng)的渠道進(jìn)行推送,我們這里以 webhook 為例。
圖片
通過設(shè)置具體的推送目標(biāo)和方式,可以實現(xiàn)數(shù)據(jù)推送到用戶服務(wù)的需求。
6. 到這里訂閱和通知的配置基本就完成了,但是用戶如果有需要自定義通知模板的情況,來滿足自定義的通知需求,配置通知模版的方式如下:
進(jìn)入通知模版界面,點擊創(chuàng)建通知模版。
圖片
模板配置相對比較復(fù)雜,建議參考我們預(yù)先提供的模板,在基礎(chǔ)上修改,然后通過我們的預(yù)覽功能來驗證配置模版是否符合預(yù)期,預(yù)覽完成后,還可以用右上角的小飛機(jī)按鈕來發(fā)送一次測試通知,最終效果發(fā)送到用戶的真實接收方來驗證最終效果。
模版修改好后,可以在訂閱界面的自定義通知方式的位置,修改通知方式,然后選擇通知模版即可。
圖片
場景 2:使用應(yīng)用分組實現(xiàn)靈活訂閱能力
應(yīng)用分組是云監(jiān)控里面的一個重要監(jiān)控概念,用來描述一組有關(guān)聯(lián)的云資源,比如 ECS 實例、RDS 實例、SLB 實例等。應(yīng)用分組可以監(jiān)控應(yīng)用組中資源的狀態(tài),當(dāng)資源狀態(tài)發(fā)生變化時,應(yīng)用組會收到通知。我們就以應(yīng)用組為例,介紹如何使用應(yīng)用組監(jiān)控阿里云系統(tǒng)事件。
進(jìn)入云資源監(jiān)控 -> 應(yīng)用分組
然后點擊你需要進(jìn)行監(jiān)控的分組,出現(xiàn)如下界面:
圖片
1. 先設(shè)置這個分組的聯(lián)系人組;
2. 點擊開啟系統(tǒng)事件訂閱;
兩步操作,非常簡單。至此,一個最簡單的應(yīng)用分組訂閱已經(jīng)完成,它會監(jiān)控當(dāng)前分組下資源上報的所有 CRTICAL 和 WARNING 的資源,并通知設(shè)置的聯(lián)系組。
3. 如果我們還需要把事件推送到用戶服務(wù),通過點擊事件訂閱后的通知詳情,然后在彈出窗口中添加渠道即可把已經(jīng)定義好的推送渠道引用進(jìn)來。
圖片
寫在最后
上面是兩種典型的訂閱系統(tǒng)事件的場景介紹,在這個場景的基礎(chǔ)上,用戶可以擴(kuò)展到自己的場景中,來實現(xiàn)靈活的訂閱通知能力,通過我們的模版,訂閱來滿足自己的監(jiān)控需求。




















