使用Webhook到Microsoft Teams的Azure Monitor Alerts-没有消息发送给Teams

我正在使用Azure Monitor / Log Analytics成功触发警报。我试图使警报进入microsoft Teams频道(以及用于调试的松弛频道),但没有成功。

我有一条警报已成功触发。我有一个配置了电子邮件,短信和Azure应用推送的操作组。每当警报触发时,我都会收到这些消息。

我还有另一个行动小组,其中有几个针对microsoft Teams和Slack频道的网络鸣叫。这些频道上我什么也没收到。

我启用了自定义的“包括用于webhook的自定义Json有效负载”,并粘贴了建议的json和以下内容 { "AlertName":"#alertrulename","AlertDescription":"#description","LinkToSearchResults":"#linktosearchresults"}

我收到电子邮件/短信/推送通知,但未收到发送到Web挂钩的消息。我尝试在操作组(默认设置)中将通用警报架构设置为否(也尝试在“是”上尝试失败)。

怀疑与自定义有效负载json有关,如此处https://azure.microsoft.com/en-gb/blog/webhooks-for-azure-alerts/

关于如何将警报发送到团队的任何想法?

谢谢

vieto5006 回答:使用Webhook到Microsoft Teams的Azure Monitor Alerts-没有消息发送给Teams

设法破解并使其在所有人中都能使用!

使用Azure自动化,一个运行本/ webhook。

将以下内容添加为Runbook(更新您的uri):

param
(
    [Parameter (Mandatory=$false)]
    [object] $WebhookData
)
if ($WebhookData)
{
    # Get the data object from WebhookData.
    $WebhookBody = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
    $alertName = $WebhookBody.alertname
    $alertDescription = $WebhookBody.alertDescription
    $linkToSearch = $WebhookBody.linktosearchresults
    $query = $WebhookBody.searchquery
    $results = $WebhookBody.resultcount
    $AlertThreshold = $WebhookBody.AlertThreshold
    $AlertThresholdValue = $WebhookBody.AlertThresholdValue
    $StartTime = $WebhookBody.SearchStartTime
    $EndTime = $WebhookBody.SearchEndTime
    $formatLink = "[Link]($linkToSearch)"
    $formatMessage = "$alertName has exceeded the threshold $AlertThreshold $AlertThresholdValue. Results returned: $results"

    $uri = 'https://teams-connector-uri'

    $body = ConvertTo-Json -Depth 4 @{
    summary = $alertName
    sections = @(
        @{
            activityTitle = $alertName
            activitySubtitle = $alertDescription
            activityText =  $formatMessage           
        },@{
            title = 'Details'
            facts = @(
                @{
                name = 'Query time range. (UTC)'
                value = "$StartTime $EndTime"
                },@{
                name = 'Link to search results'
                value = $formatLink
                },@{
                name = 'Query Executed'
                value = $query
                }
            )
        }
    )
} 
    Invoke-RestMethod -uri $uri -Method Post -body $body -ContentType 'application/json'
}

然后为运行手册生成一个Webhook,并将其添加到Azure Alert中。

在天蓝色警报中,我将自定义有效负载设置为此:

{ "AlertName":"#alertrulename","AlertDescription":"#description","LinkToSearchResults":"#linktosearchresults"}

宾果游戏,触发的警报和警报通过

,

在“团队”中,对于每个渠道,我们都有一个关联的电子邮件地址。 频道的“获取电子邮件地址”选项提供了电子邮件ID。 在“操作组”中使用带有电子邮件ID的电子邮件通知。 Webhook URL似乎不起作用

,

我还没有使用过Azure警报,因此我不确定是否可以使用哪些选项,但是从有效负载结构化的事实来看,您希望将其格式化为一致的格式机制。

使用连接器的一种常见方法是使用类似“ actionable message card”的东西。从本质上讲,您就像在将迷你格式的弹出窗口发送到团队通道一样。要查看一些示例,请转到here,然后单击左上方菜单中的“选择样本”。

要执行此操作,不需要使Card非常复杂,但是您确实需要稍微想一下它的外观,以及可能要执行的操作。例如,您可能希望名称和描述采用某种表格格式,而LinkToSearchResults则是底部的一个按钮,用于加载浏览器窗口。 Actionable Messages Designer也可以帮助您将其组合在一起。完成最终设计后,最终将得到JSON文本有效负载,并且只需要将其与Azure的令牌一起组成即可。

就像我说的那样,我还没有使用过Azure警报,但是我认为这应该有所帮助。

,

我也在考虑这样做,并获得与@JohnFox完全相同的结果

很悲​​惨,它不能做到这一点。

我读过某个地方,您必须将功能或逻辑应用设置为从Azure到团队(或Slack)的“中间”

我尝试了这种解决方法...

http://www.nibrasmanna.com/send-azure-outage-notifications-to-microsoft-teams/

...但是这是行不通的,所有消息都可以通过团队获得,但是电子邮件太大而无法显示。

说实话,让网络钩子运行似乎很辛苦

如果有人遇到了不错的入门教程,请回发-谢谢

,

尝试Azure Monitor-Zenduty-Teams集成。可同时使用指标警报和日志警报,并将它们发送到Teams频道和DM。

,

recommended way by Azure通过包含类型为Action Group的{​​{1}}的{​​{1}}来完成。 official docu有详细说明。

Action(在Azure门户中创建-> Logic App-> Logic App的快速摘要):

  • 触发:Create a Resource
  • 添加步骤:Logic App
    • 选择团队来引导和配置消息。
本文链接:https://www.f2er.com/2723412.html

大家都在问