-
Notifications
You must be signed in to change notification settings - Fork 1
/
xymontoslack.sh
57 lines (51 loc) · 1.46 KB
/
xymontoslack.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
#--------------------------------
# Name: xymontoslack.sh
# Description: This script takes 1 parameter (channel name, $channel) and sends Xymon alerts/notifications to the specified slack channel.
# Author: Spencer Alessi
# Assumptions: Slack App with the Bots feature & functionality enabled and a Bot User OAuth Access Token
# Modified: 07/08/2020
#--------------------------------
xymonenv=$(hostname)
hostname=$BBHOSTNAME
level=$BBCOLORLEVEL
msg="\`\`\`$BBALPHAMSG\`\`\`"
svcname=$BBSVCNAME
username="Xymon Alert"
channel="#${RCPT}"
if [[ $xymonenv == "dev"* ]]; then
iconemoji=":dev:"
elif [[ $xymonenv == "tst"* ]]; then
iconemoji=":tst:"
elif [[ $xymonenv == "prod"* ]]; then
iconemoji=":prod:"
else
username="Xymon Alert"
iconemoji=":exclamation:"
fi
if [[ $level == "red" ]]; then
alertemoji=":xymoncritical:"
elif [[ $level == "yellow" ]]; then
alertemoji=":xymonyellow:"
elif [[ $level == "green" ]]; then
alertemoji=":xymonok:"
elif [[ $level == "purple" ]]; then
alertemoji=":xymonnoreport:"
else
alertemoji=":grey_question:"
msg="No data!"
fi
postdata()
{
cat <<EOF
{
"channel": "$channel",
"text": "$alertemoji *$hostname: $svcname is $level.* $alertemoji $msg",
"username": "$username",
"icon_emoji": "$iconemoji"
}
EOF
}
curl --silent --output /dev/null -X POST -H 'Authorization: Bearer xxxx' \
-H 'Content-type: application/json' \
--data "$(postdata)" "https://slack.com/api/chat.postMessage"