#!/bin/bash #Funktionen function showUsage { echo " Benutzung: $0 [Parameter] -H Hostname / IP-Adresse der NodeRED-Instanz -P Port der NodeRED-Instanz -S Angabe des zu testenden Miniservers -w Angabe, unter welchem Wert der Status 'Warning' ausgegeben werden soll -c Angabe, unter welchem Wert der Status 'Critical' ausgegeben werden soll Erläuterungen analog zu 'Warning' " } #Paramter verarbeiten while [ "$1" != "" ]; do case "$1" in -H) shift; NodeRedHost="$1";; -P) shift; NodeRedPort="$1";; -S) shift; MiniServer="$1";; -w) shift; WarnZeit="$1";; -c) shift; CritZeit="$1";; *) showUsage; exit 3;; esac shift done if [ -z $NodeRedHost ] || [ -z $MiniServer ] || [ -z $WarnZeit ] || [ -z $CritZeit ]; then showUsage exit 1 fi if [ -z $NodeRedPort ] ; then NodeRedPort="1880" fi ping -c 1 $NodeRedHost > /dev/null 2>&1 if [ $? -ne 0 ] ; then echo "NodeRed-Host nicht erreichbar." exit 2 fi AntwortZeit=$(curl -s http://${NodeRedHost}:${NodeRedPort}/nred2lox_${MiniServer}) if [ $? -ne 0 ] ; then echo "Verbindungsstatus konnte nicht von NodeRED abgerufen werden." exit 2 fi if [ -z $AntwortZeit ] ; then echo "Es wurde keine Antwortzeit ausgegeben." exit 3 fi if [ $AntwortZeit -ge $CritZeit ] ; then echo "Critical: Antwortzeit beträgt $AntwortZeit ms." exit 2 elif [ $AntwortZeit -ge $WarnZeit ] ; then echo "Warning: Antwortzeit beträgt $AntwortZeit ms." exit 1 else echo "OK: Antwortzeit beträgt $AntwortZeit ms." exit 0 fi exit 3