Microsoft Teams: Use workflows instead of connectors
Microsoft announced the deprecation of connectors. See the Deprecation note Retirement of Office 365 connectors within Microsoft Teams
LAST TESTED ON CHECKMK 2.3.0P11
We have adjusted the notification plugin for Microsoft Teams to use workflow as part of Werk 17155
Step-by-step guide
To configure a workflow within Microsoft Teams
- Click the three dots on a channel and select “Workflows”
- Choose “Post to a channel when a webhook request is received”
Choose a name for the workflow, e.g., “Checkmk”
In order for the following to work, you must already have an MS Teams channel specified.
- Select team and channel where the webhook should post to. In this case, I have a team and channel by the name of Checkmk, so I chose this.
Copy the webhook URL
Not MandatoryIf you want to test whether you can POST to this webhook from the monitoring server, then you can try to run this script as site user: I found a nice example with which you can check whether you can even post a message from the monitoring server to this webhook or not.
At the time of writing this article, this script works, however there is no guarantee that it will work when you try. There is a very high possibility that the format/syntax/endpoint changes and the script has to be adapted.
The script above will only work if you specify the Teams channel that was configured beforehand.
OMD[v23p13]:~$ ./test.sh “Webhook URL” “Workflows” “Teams_Channel” “Send from Checkmk.Happy Monitoring”
.
After this, let's move on to the Checkmk Notification configuration for teams and create a notification rule
You may need to sanitize the encoding of the Webhook URL from MS Teams before pasting it into Checkmk.
e.g.,- Unsanitized
api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=g26 - Sanitized
api-version=2016-06-01&sp=/triggers/manual/run&sv=1.0&sig=g26
- Unsanitized
- Last but not the least, you can fake a check result:
Then you will see a message getting dropped in the corresponding Teams channel:
This is a confirmation that your test notifications are working
Power Automate
If you are using Power Automate, then configure it flow like this:
And this is the page where the flow is succeeded, and the messages gets dropped in:
Here is the screenshot from Teams Channel:
If the flow doesn't work, you may get some errors like these:
Working JSON (in case somebody wants to POST to the webhook directly):
[ { "contentType": "application/vnd.microsoft.card.adaptive", "contentUrl": "null", "content": { "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.3", "body": [ { "type": "TextBlock", "text": "Checkmk: google/PING CRIT", "weight": "bolder", "size": "large", "style": "heading", "wrap": true }, { "type": "TextBlock", "text": "Problem notification", "weight": "bolder", "wrap": true }, { "type": "TextBlock", "text": "Checkmk: google/PING ", "wrap": true }, { "type": "ColumnSet", "separator": true, "columns": [ { "type": "Column", "width": "auto", "items": [ { "type": "TextBlock", "text": "Details", "wrap": true, "weight": "bolder" } ] }, { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "__Host__: google", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Service__: PING", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Event__: ", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Output__: Test for MS teams", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Perfdata__: ", "wrap": true, "spacing": "none" } ] } ] }, { "type": "FactSet", "facts": [ { "title": "Affected host groups", "value": "check_mk" } ], "separator": true } ], "actions": [ { "type": "Action.OpenUrl", "title": "View service details in Checkmk", "url": "http://klapp-0323/v23p13/check_mk/index.py?start_url=view.py?view_name%3Dservice%26host%3Dgoogle%26service%3DPING%26site%3Dv23p13", "role": "Button" } ], "msteams": { "width": "Full" } } } ]
Related articles