Microsoft Teams Notifications

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
mrfurlott
Posts: 2
Joined: Wed Jul 22, 2020 10:16 am

Microsoft Teams Notifications

Post by mrfurlott »

Hello,

I'm trying to get Teams notifications working. I've been following the script instructions here: https://github.com/isaac-galvan/nagios-teams-notify

With a couple of changes. Here is what I have for a setup:

notify_teams.py is in /usr/local/nagios/etc and has been CHMOD +x'ed. The script itself is unchanged from the one in github

I decided to edit the notify-host-by-email and notify-service-by-email entries rather than making new ones, because it just seems like less changes and I have no interest in notifying by email at this time. My /usr/local/nagios/etc/objects/commands.cfg has the following entries:

Code: Select all

define command {

    command_name    notify-host-by-email
    command_line    /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$" <WEBHOOKURL>
}

Code: Select all

define command {

    command_name    notify-service-by-email
    command_line    /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" "Notification Type: $NOTIFICATIONTYPE$ Service: $SERVICEDESC$ Host: $HOSTALIAS$ Address: $HOSTADDRESS$ State: $SERVICESTATE$ Date/Time: $LONGDATETIME$ Additional Info: $SERVICEOUTPUT$" <WEBHOOKURL>
}
In both instances, <WEBHOOKURL> is the actual web hook URL, not a variable.

contacts.cfg is unchanged other than having my email in it.
templates.cfg is unchanged.

If I go to the command line and run /usr/local/nagios/etc/notify-teams.py "Test Message" "Test Body" <WEBHOOKURL> it works perfectly and I get the message in teams, so at its core, notify-teams.py and the web hook URL are OK. Forcing a notification to go out about a host also works, but comes across a bit weird in that the message shows some of the variable $ characters and none of the data on hosts or services:

Code: Select all

CUSTOM: ESXi-01/$ is $
$
$
However, when hosts go down, I get no notifications at all. My guess is it isnt parsing the variables correctly? But I dont know how to troubleshoot that, nor do I know how to find any logs on what might have gone wrong.

Any thoughts?
mrfurlott
Posts: 2
Joined: Wed Jul 22, 2020 10:16 am

Re: Microsoft Teams Notifications

Post by mrfurlott »

Well, I already solved it!

The change that needed to happen was

Code: Select all

define command {

    command_name    notify-host-by-email
    command_line    /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$" <WEBHOOKURL>
}
needed to change to:

Code: Select all

define command {

    command_name    notify-host-by-email
    command_line    /usr/bin/printf "ALERT" | /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$" <WEBHOOKURL>
}
for both the host and service notifications. The addition of /usr/bin/printf "ALERT" was all it took
scottwilkerson
DevOps Engineer
Posts: 19396
Joined: Tue Nov 15, 2011 3:11 pm
Location: Nagios Enterprises
Contact:

Re: Microsoft Teams Notifications

Post by scottwilkerson »

mrfurlott wrote:Well, I already solved it!

The change that needed to happen was

Code: Select all

define command {

    command_name    notify-host-by-email
    command_line    /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$" <WEBHOOKURL>
}
needed to change to:

Code: Select all

define command {

    command_name    notify-host-by-email
    command_line    /usr/bin/printf "ALERT" | /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$" <WEBHOOKURL>
}
for both the host and service notifications. The addition of /usr/bin/printf "ALERT" was all it took
Glad you got it sorted out and thanks for posting your solution!

Locking thread
Former Nagios employee
Creator:
Human Design Website
Get Your Human Design Chart
Locked