如何推送Azure Monitor報警到Teams

如果大家了解Azure的話,應該知道Azure的監控是有一個集中的Azure Monitor服務來管理,可以監控到Azure平臺上的方方面面,并且根據自己的需要還可以創建警告發送到短信或者Email,但是現在我們很多客戶運維小組會使用Teams或者Slack這樣的軟件來進行協作,這時候我們就需要讓警告能夠直接發送到寫作軟件的聊天頻道里。
Azure上我們有一個Logic Apps這樣的服務,能夠不用寫代碼無縫對接Monitor和Teams/Slack,輕松把Activity Log告警推送到協作頻道。

準備Logic Apps

首先按照如下圖創建Logic App


創建Logic App

創建好了直接進入Designer,選擇When a HTTP request is received,這樣Monitor可以直接把消息推過去


首先需要定義傳進來的數據格式,點擊Use Sample Payload to Generate schema.


定義JSON格式

將下面的示例代碼復制文本框生成Schema(這是Activity Log的Schema,如果有Metric或者其他Alert的話,替換成相應的Schema

{
        "schemaId": "Microsoft.Insights/activityLogs",
        "data": {
            "status": "Activated",
            "context": {
            "activityLog": {
                "authorization": {
                "action": "microsoft.insights/activityLogAlerts/write",
                "scope": "/subscriptions/?"
                },
                "channels": "Operation",
                "claims": "?",
                "caller": "logicappdemo@contoso.com",
                "correlationId": "91ad2bac-1afa-4932-a2ce-2f8efd6765a3",
                "description": "",
                "eventSource": "Administrative",
                "eventTimestamp": "2018-04-03T22:33:11.762469+00:00",
                "eventDataId": "ec74c4a2-d7ae-48c3-a4d0-2684a1611ca0",
                "level": "Informational",
                "operationName": "microsoft.insights/activityLogAlerts/write",
                "operationId": "61f59fc8-1442-4c74-9f5f-937392a9723c",
                "resourceId": "/subscriptions/?",
                "resourceGroupName": "LOGICAPP-DEMO",
                "resourceProviderName": "microsoft.insights",
                "status": "Succeeded",
                "subStatus": "",
                "subscriptionId": "?",
                "submissionTimestamp": "2018-04-03T22:33:36.1068742+00:00",
                "resourceType": "microsoft.insights/activityLogAlerts"
            }
            },
            "properties": {}
        }
    }

然后點擊 +New Step,搜索Microsoft Teams,添加Teams連接器


添加Teams Action

選擇Post a Message.


選擇發送消息

這時候會出現Sign In按鈕,點擊然后用相應的Teams賬號登陸,選擇對應的Team和Channel,Message Body里面按圖中填入,圖標部分可以在右邊的Dynamic Content選擇對應的參數

至此,Logic App就準備好了。點擊保存,運行,把他開啟。
接下來我們只要在Monitor里面把Alert創建好并且ActionGroup設置成我們剛創建好的Logic Apps.

創建Monitor Alert

創建Alert之前我們需要準備好一個ActionGroup。
新建Action Group,Action Type里選到剛創建的LogicApp



按照如下圖去創建Monitor Alert,選中資源,配置好觸發條件(這里配置的是監控虛機啟動),選中Action Group。這就大功告成了



接下來去啟動剛才監控的機器。很快Teams就能收到消息了。


全程只要手點,無需代碼。是不是還湊合。 :)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容