Azure Мониторинг предупреждений с использованием webhook для команд Microsoft - нет сообщений для команд - PullRequest
1 голос
/ 23 января 2020

Я использую Azure Monitor / Log Analytics для успешного запуска оповещений. Я пытаюсь получить оповещения в канал Microsoft Teams (а также в слабый канал для отладки), но безуспешно.

У меня есть оповещение, которое успешно срабатывает. У меня есть группа действий с настроенной электронной почтой, смс и azure app pu sh. Я получаю эти сообщения каждый раз, когда срабатывает оповещение.

У меня есть еще одна группа действий с несколькими веб-зацепками для каналов Microsoft Teams и Slack. Я не получаю ничего по этим каналам.

Я включил пользовательский параметр «Включить пользовательский Json полезная нагрузка для webhook» и вставил предложенный json и следующий { "AlertName":"#alertrulename", "AlertDescription":"#description", "LinkToSearchResults":"#linktosearchresults"}

Я получаю уведомления по электронной почте / sms / pu sh, но не сообщения для веб-хуков. Я попытался оставить для общей схемы оповещения значение «Нет» в группе действий по умолчанию (а также безуспешно пытаться включить «да»).

Подозревая, что это как-то связано с пользовательской полезной нагрузкой json, как упоминалось здесь https://azure.microsoft.com/en-gb/blog/webhooks-for-azure-alerts/

Любые идеи о том, как я могу получать свои оповещения в команды?

Спасибо

Ответы [ 3 ]

2 голосов
/ 06 февраля 2020

Удалось взломать его и заставить его работать всех!

Использование Azure Автоматизация, runbook / 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 для runbook и добавьте его в Azure Alert.

В предупреждении azure я установил пользовательскую полезную нагрузку следующим образом:

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

Корзина go, сработало оповещение, и сигнал тревоги поступил через

0 голосов
/ 31 января 2020

Я тоже пытаюсь это сделать и получаю те же результаты, что и @ JohnFox

Красивые траги c он не может просто сделать это.

Я где-то читал Вы должны настроить приложение Function или Logi c, чтобы быть «промежуточным звеном» от Azure до команд (или слабины)

Я пробовал этот обходной путь ...

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

... но это неработоспособно, все сообщения попадают в Команды, но электронные письма слишком велики для отображения.

Если честно, получаю Запуск webhooks, кажется, тяжелая работа

0 голосов
/ 23 января 2020

Я не работал с Azure оповещением, поэтому я не уверен, какие именно опции у вас есть, но похоже, что из-за того, что ваша полезная нагрузка структурирована, вы хотите отформатировать ее в некоторый непротиворечивый механизм.

Распространенным способом для этого с использованием соединителей является использование чего-то вроде " действенной карты сообщений ". По сути, вы отправляете как мини-всплывающее окно в канал Team. Чтобы увидеть некоторые примеры, go здесь и нажмите «Выбрать образец» в верхнем левом меню.

Чтобы сделать это, карта не должна быть очень сложной, но вам нужно немного подумать о том, как вы хотите, чтобы он выглядел, и, возможно, какие действия вы хотите предложить. Например, вы, вероятно, хотите, чтобы имя и описание были в каком-то табличном формате, а LinkToSearchResults - это кнопка внизу, которая загружает окно браузера. Actionable Messages Designer также может быть полезен, чтобы помочь вам собрать его вместе. Когда у вас будет окончательный дизайн, вы получите JSON текстовую полезную нагрузку, и вам просто нужно составить ее вместе с токенами из Azure.

Как я уже сказал, у меня нет работал с Azure оповещениями, но я думаю, что это должно помочь.

...