|
9 | 9 |
|
10 | 10 | # Telegram API Token
|
11 | 11 | # Find telegram bot named "@botfarther", type /mybots, select your bot and select "API Token" to see your current token
|
12 |
| -TOKEN=$NOTIFY_PARAMETER_1 |
| 12 | +if [ -z ${NOTIFY_PARAMETER_1} ]; then |
| 13 | + echo "No Telegram token ID provided. Exiting" >&2 |
| 14 | + exit 2 |
| 15 | +else |
| 16 | + TOKEN="${NOTIFY_PARAMETER_1}" |
| 17 | +fi |
13 | 18 |
|
14 | 19 | # Telegram Chat-ID or Group-ID
|
15 | 20 | # Open "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates" inside your Browser and send a HELLO to your bot, refresh side
|
16 |
| -CHAT_ID=$NOTIFY_PARAMETER_2 |
17 |
| - |
18 |
| -# Write Check_MK output to a temporary file, delete depricated macros and create variable OUTPUT |
19 |
| -env | grep NOTIFY_ | grep -v "This macro is deprecated" | sort > $OMD_ROOT/tmp/telegram.out |
20 |
| -OUTPUT=$OMD_ROOT/tmp/telegram.out |
21 |
| - |
22 |
| -# Read OUTPUT variable and create some more variables for every text-part you want to use afterwards |
23 |
| -HOSTNAME=$(grep NOTIFY_HOSTNAME $OUTPUT | cut -d'=' -f2) |
24 |
| -HOSTALIAS=$(grep NOTIFY_HOSTALIAS $OUTPUT | cut -d'=' -f2) |
25 |
| -WHAT=$(grep NOTIFY_WHAT $OUTPUT | cut -d'=' -f2) |
26 |
| -NOTIFICATIONTYPE=$(grep NOTIFY_NOTIFICATIONTYPE $OUTPUT | cut -d'=' -f2) |
27 |
| -SERVICEDESC=$(grep NOTIFY_SERVICEDESC $OUTPUT | cut -d'=' -f2) |
28 |
| -SERVICEOUTPUT=$(grep NOTIFY_SERVICEOUTPUT $OUTPUT | cut -d'=' -f2) |
29 |
| -HOSTOUTPUT=$(grep NOTIFY_HOSTOUTPUT $OUTPUT | cut -d'=' -f2) |
30 |
| -PREVIOUSHOSTHARDSHORTSTATE=$(grep NOTIFY_PREVIOUSHOSTHARDSHORTSTATE $OUTPUT | cut -d'=' -f2) |
31 |
| -HOSTSHORTSTATE=$(grep NOTIFY_HOSTSHORTSTATE $OUTPUT | cut -d'=' -f2) |
32 |
| -PREVIOUSSERVICEHARDSHORTSTATE=$(grep NOTIFY_PREVIOUSSERVICEHARDSHORTSTATE $OUTPUT | cut -d'=' -f2) |
33 |
| -SERVICESHORTSTATE=$(grep NOTIFY_SERVICESHORTSTATE $OUTPUT | cut -d'=' -f2) |
34 |
| -SHORTDATETIME=$(grep NOTIFY_SHORTDATETIME $OUTPUT | cut -d'=' -f2) |
35 |
| -HOST_ADDRESS_4=$(grep NOTIFY_HOST_ADDRESS_4 $OUTPUT | cut -d'=' -f2) |
36 |
| -HOST_ADDRESS_6=$(grep NOTIFY_HOST_ADDRESS_6 $OUTPUT | cut -d'=' -f2) |
| 21 | +if [ -z ${NOTIFY_PARAMETER_2} ]; then |
| 22 | + echo "No Telegram Chat-ID or Group-ID provided. Exiting" >&2 |
| 23 | + exit 2 |
| 24 | +else |
| 25 | + CHAT_ID="${NOTIFY_PARAMETER_2}" |
| 26 | +fi |
37 | 27 |
|
38 | 28 | # Create a MESSAGE variable to send to your Telegram bot
|
39 |
| -MESSAGE="$HOSTNAME ($HOSTALIAS)%0A" |
40 |
| -MESSAGE+="$WHAT $NOTIFICATIONTYPE%0A%0A" |
41 |
| -if [[ $WHAT == "SERVICE" ]]; then |
42 |
| - MESSAGE+="$SERVICEDESC%0A" |
43 |
| - MESSAGE+="State changed from $PREVIOUSSERVICEHARDSHORTSTATE to $SERVICESHORTSTATE%0A" |
44 |
| - MESSAGE+="$SERVICEOUTPUT%0A" |
| 29 | +MESSAGE="${NOTIFY_HOSTNAME} (${NOTIFY_HOSTALIAS})%0A" |
| 30 | +MESSAGE+="${NOTIFY_WHAT} ${NOTIFY_NOTIFICATIONTYPE}%0A%0A" |
| 31 | +if [[ ${NOTIFY_WHAT} == "SERVICE" ]]; then |
| 32 | + MESSAGE+="${NOTIFY_SERVICEDESC}%0A" |
| 33 | + MESSAGE+="State changed from ${NOTIFY_PREVIOUSSERVICEHARDSHORTSTATE} to ${NOTIFY_SERVICESHORTSTATE}%0A" |
| 34 | + MESSAGE+="${NOTIFY_SERVICEOUTPUT}%0A" |
45 | 35 | else
|
46 |
| - MESSAGE+="State changed from $PREVIOUSHOSTHARDSHORTSTATE to $HOSTSHORTSTATE%0A" |
47 |
| - MESSAGE+="$HOSTOUTPUT%0A" |
| 36 | + MESSAGE+="State changed from ${NOTIFY_PREVIOUSHOSTHARDSHORTSTATE} to ${NOTIFY_HOSTSHORTSTATE}%0A" |
| 37 | + MESSAGE+="${NOTIFY_HOSTOUTPUT}%0A" |
48 | 38 | fi
|
49 |
| -MESSAGE+="%0AIPv4: $HOST_ADDRESS_4 %0AIPv6: $HOST_ADDRESS_6%0A" |
50 |
| -MESSAGE+="$SHORTDATETIME" |
| 39 | +MESSAGE+="%0AIPv4: ${NOTIFY_HOST_ADDRESS_4} %0AIPv6: ${NOTIFY_HOST_ADDRESS_6}%0A" |
| 40 | +MESSAGE+="${NOTIFY_SHORTDATETIME}" |
51 | 41 |
|
52 | 42 | # Send message to Telegram bot
|
53 |
| -curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d chat_id=$CHAT_ID -d text="$MESSAGE" >> /dev/null |
54 |
| - |
55 |
| -# End of script |
56 |
| -exit 0 |
| 43 | +curl -S -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" -d chat_id="${CHAT_ID}" -d text="${MESSAGE}" |
| 44 | +if [ $? -ne 0 ]; then |
| 45 | + echo "Not able to send Telegram message" >&2 |
| 46 | + exit 2 |
| 47 | +else |
| 48 | + exit 0 |
| 49 | +fi |
0 commit comments