|
|
@@ -0,0 +1,75 @@
|
|
|
+#!/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
|