Nagios Mattermost Plugin
A plugin for Nagios and compatible software (e.g. Icinga) to enable notifications to a Mattermost server.
Plugin Usage
Run ./mattermost.py --help
for full usage information.
Mattermost Configuration
-
Incoming Webhooks must be enabled for your Mattermost server. Check the Enable Incoming Webhooks option under Service Settings in the System Console.
-
To use the optional
--username
parameter you must enable overriding of usernames from webhooks. Check the Enable Overriding Usernames from Webhooks and Slash Commands option under Service Settings in the System Console. -
To use the optional
--iconurl
parameter you must enable overriding of icons from webhooks. Check the Enable Overriding Icon from Webhooks and Slash Commands option under Service Settings in the System Console.
Nagios Configuration
The steps below are for a Nagios 4 server but should work with minimal modifications for compatible software:
-
Copy
mattermost.py
to/usr/local/nagios/libexec
. -
Create an Incoming Webhook integration for the approriate team and note the provided URL.
-
Create the command definitions in your Nagios configuration:
define command { command_name notify-service-by-mattermost command_line /usr/local/nagios/libexec/mattermost.py --url [MATTERMOST-WEBHOOK-URL] \ --channel [OPTIONAL-MATTERMOST-CHANNEL] \ --notificationtype "$NOTIFICATIONTYPE$" \ --hostalias "$HOSTNAME$" \ --hostaddress "$HOSTADDRESS$" \ --servicedesc "$SERVICEDESC$" \ --servicestate "$SERVICESTATE$" \ --serviceoutput "$SERVICEOUTPUT$" } define command { command_name notify-host-by-mattermost command_line /usr/local/nagios/libexec/mattermost.py --url [MATTERMOST-WEBHOOK-URL] \ --channel [OPTIONAL-MATTERMOST-CHANNEL] \ --notificationtype "$NOTIFICATIONTYPE$" \ --hostalias "$HOSTNAME$" \ --hostaddress "$HOSTADDRESS$" \ --hoststate "$HOSTSTATE$" \ --hostoutput "$HOSTOUTPUT$" }
4. Create the contact definition in your Nagios configuration:
```
define contact {
contact_name mattermost
alias Mattermost
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
host_notification_commands notify-host-by-mattermost
service_notification_commands notify-service-by-mattermost
}
-
Add the contact to a contact group in your Nagios configuration:
define contactgroup{ contactgroup_name network-admins alias Network Administrators members email, mattermost }