美文网首页
如何推送Azure Monitor报警到Teams

如何推送Azure Monitor报警到Teams

作者: Kele_73b1 | 来源:发表于2020-01-21 11:32 被阅读0次

    如果大家了解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就能收到消息了。


    全程只要手点,无需代码。是不是还凑合。 :)

    相关文章

      网友评论

          本文标题:如何推送Azure Monitor报警到Teams

          本文链接:https://www.haomeiwen.com/subject/jzsjzctx.html