-
-
Save macbre/940e05acf5063cbfd7d7ca428af9dc8f to your computer and use it in GitHub Desktop.
Script to post Nagios notifications into a Slack channel // SUS-4340
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script is used by Nagios to post alerts into a Slack channel | |
# using the Incoming WebHooks integration. Create the channel, botname | |
# and integration first and then add this notification script in your | |
# Nagios configuration. | |
# | |
# All variables that start with NAGIOS_ are provided by Nagios as | |
# environment variables when an notification is generated. | |
# A list of the env variables is available here: | |
# http://nagios.sourceforge.net/docs/3_0/macrolist.html | |
# | |
# More info on Slack | |
# Website: https://slack.com/ | |
# Twitter: @slackhq, @slackapi | |
# | |
# My info | |
# Website: http://matthewcmcmillan.blogspot.com/ | |
# Twitter: @matthewmcmillan | |
#Modify these variables for your environment | |
MY_NAGIOS_HOSTNAME="nagios.yourdomain.com" | |
SLACK_HOSTNAME="yourslack.slack.com" | |
SLACK_TOKEN="xyxyxyourslackkey" | |
SLACK_CHANNEL="#alerts" | |
SLACK_BOTNAME="nagios" | |
#Set the message icon based on Nagios service state | |
if [ "$NAGIOS_SERVICESTATE" = "CRITICAL" ] | |
then | |
ICON=":exclamation:" | |
elif [ "$NAGIOS_SERVICESTATE" = "WARNING" ] | |
then | |
ICON=":warning:" | |
elif [ "$NAGIOS_SERVICESTATE" = "OK" ] | |
then | |
ICON=":white_check_mark:" | |
elif [ "$NAGIOS_SERVICESTATE" = "UNKNOWN" ] | |
then | |
ICON=":question:" | |
else | |
ICON=":white_medium_square:" | |
fi | |
#Send message to Slack | |
curl -X POST --data "payload={\"channel\": \"${SLACK_CHANNEL}\", \"username\": \"${SLACK_USERNAME}\", \"text\": \"${ICON} HOST: ${NAGIOS_HOSTNAME} SERVICE: ${NAGIOS_SERVICEDISPLAYNAME} MESSAGE: ${NAGIOS_SERVICEOUTPUT} <https://${MY_NAGIOS_HOSTNAME}/cgi-bin/nagios3/status.cgi?host=${NAGIOS_HOSTNAME}|See Nagios>\"}" https://${SLACK_HOSTNAME}/services/hooks/incoming-webhook?token=${SLACK_TOKEN} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment