Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
Jonny007-MKD | 6948ee2b61 | |
Jonny007-MKD | b4bc721640 | |
Jonny007-MKD | e974f45990 | |
Jonny007-MKD | 6d601ac73a | |
Jonny007-MKD | ebb8194170 | |
Jonny007-MKD | 5c6e1b560c |
|
@ -21,6 +21,7 @@
|
|||
PROG="`basename $0`"
|
||||
HOSTNAME="`hostname`"
|
||||
TRANSPORT="curl"
|
||||
LF=$'\n'
|
||||
unset DEBUG
|
||||
|
||||
if [ -z "`which $TRANSPORT`" ] ; then
|
||||
|
@ -87,23 +88,58 @@ do
|
|||
esac
|
||||
done
|
||||
|
||||
## Build the message's subject
|
||||
SUBJECT="[$NOTIFICATIONTYPE] $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE!"
|
||||
|
||||
# make icon out of service state
|
||||
case "$HOSTSTATE" in
|
||||
UP) HOSTSTATEICON=$'\xF0\x9F\x9F\xA9 ';;
|
||||
DOWN) HOSTSTATEICON=$'\xF0\x9F\x9F\xA5 ';;
|
||||
UNKNOWN) HOSTSTATEICON=$'\xE2\x9D\x93\x0A ';;
|
||||
*) HOSTSTATEICON="";;
|
||||
esac
|
||||
|
||||
|
||||
# convert date
|
||||
dateInSec=$(date -d "$LONGDATETIME" +%s)
|
||||
nowInSec=$(date +%s)
|
||||
ageInSec=$(($nowInSec - $dateInSec))
|
||||
ageInMin=$(($ageInSec/60))
|
||||
ageInHours=$(($ageInMin/60))
|
||||
ageInDays=$(($ageInHours/24))
|
||||
if [ "${LONGDATETIME:0:10}" == "$(date +"%Y-%m-%d")" ]; then
|
||||
LONGDATETIME="${LONGDATETIME:11}"
|
||||
fi
|
||||
|
||||
date=${LONGDATETIME#}
|
||||
if [ $ageInDays -gt 0 ]; then
|
||||
age="Since ${ageInDays}d $(($ageInHours-$ageInDays*24))h ($LONGDATETIME)$LF"
|
||||
elif [ $ageInHours -gt 0 ]; then
|
||||
age="Since ${ageInHours}h $(($ageInMin-$ageInHours*60))m ($LONGDATETIME)$LF"
|
||||
elif [ $ageInMin -gt 0 ]; then
|
||||
age="Since ${ageInMin}m $(($ageInSec-$ageInMin*60))s$LF"
|
||||
elif [ $ageInSec -gt 5 ]; then
|
||||
age="Since ${ageInSec}s$LF"
|
||||
elif [ $ageInSec -lt 0 ]; then
|
||||
age="Since $LONGDATETIME$LF"
|
||||
fi
|
||||
|
||||
if [ "$HOSTALIAS" == "$HOSTDISPLAYNAME" ]; then
|
||||
HOSTALIAS2=""
|
||||
else
|
||||
HOSTALIAS2=" ($HOSTALIAS)"
|
||||
fi
|
||||
|
||||
## Build the message itself
|
||||
NOTIFICATION_MESSAGE=$(cat << EOF
|
||||
$HOSTDISPLAYNAME ($HOSTALIAS) is $HOSTSTATE!
|
||||
When? $LONGDATETIME
|
||||
Info? $HOSTOUTPUT
|
||||
Host? $HOSTALIAS
|
||||
IPv4? $HOSTADDRESS
|
||||
$HOSTSTATEICON<b>$HOSTDISPLAYNAME</b>$HOSTALIAS2 is $HOSTSTATE!
|
||||
${age}Info $HOSTOUTPUT
|
||||
IPv4 <code>$HOSTADDRESS</code>
|
||||
EOF
|
||||
)
|
||||
|
||||
## Is this host IPv6 capable?
|
||||
if [ -n "$HOSTADDRESS6" ] ; then
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
IPv6? $HOSTADDRESS6"
|
||||
IPv6 <code>$HOSTADDRESS6</code>"
|
||||
fi
|
||||
## Are there any comments? Put them into the message!
|
||||
if [ -n "$NOTIFICATIONCOMMENT" ] ; then
|
||||
|
@ -114,14 +150,13 @@ fi
|
|||
## Are we using Icinga Web 2? Put the URL into the message!
|
||||
if [ -n "$HAS_ICINGAWEB2" ] ; then
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
Get live status:
|
||||
$HAS_ICINGAWEB2/monitoring/host/show?host=$HOSTALIAS"
|
||||
<a href='$HAS_ICINGAWEB2/monitoring/host/show?host=$HOSTALIAS'>$HAS_ICINGAWEB2</a>"
|
||||
fi
|
||||
## Build the message's subject
|
||||
SUBJECT="[$NOTIFICATIONTYPE] Host $HOSTDISPLAYNAME is $HOSTSTATE!"
|
||||
|
||||
## Are we verbose? Then put a message to syslog...
|
||||
if [ "$VERBOSE" == "true" ] ; then
|
||||
## Build the message's subject
|
||||
SUBJECT="[$NOTIFICATIONTYPE] Host $HOSTDISPLAYNAME is $HOSTSTATE!"
|
||||
logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
|
||||
fi
|
||||
|
||||
|
|
|
@ -90,27 +90,61 @@ do
|
|||
esac
|
||||
done
|
||||
|
||||
## Build the message's subject
|
||||
SUBJECT="[$NOTIFICATIONTYPE] $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE!"
|
||||
|
||||
# make icon out of service state
|
||||
case "$SERVICESTATE" in
|
||||
CRITICAL) SERVICESTATEICON=$'\xF0\x9F\x9F\xA5';;
|
||||
WARNING) SERVICESTATEICON=$'\xF0\x9F\x9F\xA7';;
|
||||
OK) SERVICESTATEICON=$'\xF0\x9F\x9F\xA9';;
|
||||
UNKNOWN) SERVICESTATEICON=$'\xE2\x9D\x93\x0A';;
|
||||
*) SERVICESTATEICON="[$SERVICESTATE]";;
|
||||
esac
|
||||
|
||||
|
||||
# convert date
|
||||
dateInSec=$(date -d "$LONGDATETIME" +%s)
|
||||
nowInSec=$(date +%s)
|
||||
ageInSec=$(($nowInSec - $dateInSec))
|
||||
ageInMin=$(($ageInSec/60))
|
||||
ageInHours=$(($ageInMin/60))
|
||||
ageInDays=$(($ageInHours/24))
|
||||
if [ "${LONGDATETIME:0:10}" == "$(date +"%Y-%m-%d")" ]; then
|
||||
LONGDATETIME="${LONGDATETIME:11}"
|
||||
fi
|
||||
|
||||
date=${LONGDATETIME#}
|
||||
if [ $ageInDays -gt 0 ]; then
|
||||
age=" since ${ageInDays}d $(($ageInHours-$ageInDays*24))h ($LONGDATETIME)"
|
||||
elif [ $ageInHours -gt 0 ]; then
|
||||
age=" since ${ageInHours}h $(($ageInMin-$ageInHours*60))m ($LONGDATETIME)"
|
||||
elif [ $ageInMin -gt 0 ]; then
|
||||
age=" since ${ageInMin}m $(($ageInSec-$ageInMin*60))s"
|
||||
elif [ $ageInSec -gt 5 ]; then
|
||||
age=" since ${ageInSec}s"
|
||||
elif [ $ageInSec -lt 0 ]; then
|
||||
age=" since $LONGDATETIME"
|
||||
fi
|
||||
|
||||
|
||||
## Build the message itself
|
||||
NOTIFICATION_MESSAGE=$(cat << EOF
|
||||
[$SERVICESTATE] $SERVICEDISPLAYNAME is $SERVICESTATE since $LONGDATETIME
|
||||
Host: $HOSTALIAS (IPv4 $HOSTADDRESS)
|
||||
More info: $SERVICEOUTPUT
|
||||
$SERVICESTATEICON <b>$SERVICEDISPLAYNAME</b> is ${SERVICESTATE}$age
|
||||
Host: <b>$HOSTALIAS</b> (IPv4 <code>$HOSTADDRESS</code>
|
||||
EOF
|
||||
)
|
||||
|
||||
## Is this host IPv6 capable?
|
||||
if [ -n "$HOSTADDRESS6" ] ; then
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
IPv6? $HOSTADDRESS6"
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE, IPv6 <code>$HOSTADDRESS6</code>"
|
||||
fi
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE)"
|
||||
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
More info: $SERVICEOUTPUT"
|
||||
|
||||
## Are there any comments? Put them into the message!
|
||||
if [ -n "$NOTIFICATIONCOMMENT" ] ; then
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
|
||||
Comment by $NOTIFICATIONAUTHORNAME:
|
||||
$NOTIFICATIONCOMMENT"
|
||||
fi
|
||||
|
@ -118,12 +152,12 @@ fi
|
|||
## Are we using Icinga Web 2? Put the URL into the message!
|
||||
if [ -n "$HAS_ICINGAWEB2" ] ; then
|
||||
NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE
|
||||
Get live status:
|
||||
$HAS_ICINGAWEB2/monitoring/host/show?host=$HOSTALIAS"
|
||||
<a href='$HAS_ICINGAWEB2/monitoring/host/show?host=$HOSTALIAS'>$HAS_ICINGAWEB2</a>"
|
||||
fi
|
||||
|
||||
## Are we verbose? Then put a message to syslog...
|
||||
if [ "$VERBOSE" == "true" ] ; then
|
||||
SUBJECT="[$NOTIFICATIONTYPE] $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE!"
|
||||
logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue