我正在使用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/
关于如何将警报发送到团队的任何想法?
谢谢
答案 0 :(得分:7)
设法破解并使其在所有人中都能使用!
使用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"}
宾果游戏,触发的警报和警报通过
答案 1 :(得分:2)
在“团队”中,对于每个渠道,我们都有一个关联的电子邮件地址。 频道的“获取电子邮件地址”选项提供了电子邮件ID。 在“操作组”中使用带有电子邮件ID的电子邮件通知。 Webhook URL似乎不起作用
答案 2 :(得分:1)
我还没有使用过Azure警报,因此我不确定是否可以使用哪些选项,但是从有效负载结构化的事实来看,您希望将其格式化为一致的格式机制。
使用连接器的一种常见方法是使用类似“ actionable message card”的东西。从本质上讲,您就像在将迷你格式的弹出窗口发送到团队通道一样。要查看一些示例,请转到here,然后单击左上方菜单中的“选择样本”。
要执行此操作,不需要使Card非常复杂,但是您确实需要稍微想一下它的外观,以及可能要执行的操作。例如,您可能希望名称和描述采用某种表格格式,而LinkToSearchResults则是底部的一个按钮,用于加载浏览器窗口。 Actionable Messages Designer也可以帮助您将其组合在一起。完成最终设计后,最终将得到JSON文本有效负载,并且只需要将其与Azure的令牌一起组成即可。
就像我说的那样,我还没有使用过Azure警报,但是我认为这应该有所帮助。
答案 3 :(得分:0)
我也在考虑这样做,并获得与@JohnFox完全相同的结果
很悲惨,它不能做到这一点。
我读过某个地方,您必须将功能或逻辑应用设置为从Azure到团队(或Slack)的“中间”
我尝试了这种解决方法...
http://www.nibrasmanna.com/send-azure-outage-notifications-to-microsoft-teams/
...但是这是行不通的,所有消息都可以通过团队获得,但是电子邮件太大而无法显示。
说实话,让网络钩子运行似乎很辛苦
如果有人遇到了不错的入门教程,请回发-谢谢
答案 4 :(得分:0)
尝试Azure Monitor-Zenduty-Teams集成。可同时使用指标警报和日志警报,并将它们发送到Teams频道和DM。
答案 5 :(得分:0)
recommended way by Azure通过包含类型为Action Group
的{{1}}的{{1}}来完成。
official docu有详细说明。
Action
(在Azure门户中创建-> Logic App
-> Logic App
的快速摘要):
Create a Resource
Logic App