nred2lox.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. #Funktionen
  3. function showUsage {
  4. echo "
  5. Benutzung: $0 [Parameter]
  6. -H Hostname / IP-Adresse der NodeRED-Instanz
  7. -P Port der NodeRED-Instanz
  8. -S Angabe des zu testenden Miniservers
  9. -w Angabe, unter welchem Wert der Status 'Warning' ausgegeben werden soll
  10. -c Angabe, unter welchem Wert der Status 'Critical' ausgegeben werden soll
  11. Erläuterungen analog zu 'Warning'
  12. "
  13. }
  14. #Paramter verarbeiten
  15. while [ "$1" != "" ]; do
  16. case "$1" in
  17. -H) shift; NodeRedHost="$1";;
  18. -P) shift; NodeRedPort="$1";;
  19. -S) shift; MiniServer="$1";;
  20. -w) shift; WarnZeit="$1";;
  21. -c) shift; CritZeit="$1";;
  22. *) showUsage; exit 3;;
  23. esac
  24. shift
  25. done
  26. if [ -z $NodeRedHost ] || [ -z $MiniServer ] || [ -z $WarnZeit ] || [ -z $CritZeit ]; then
  27. showUsage
  28. exit 1
  29. fi
  30. if [ -z $NodeRedPort ] ; then
  31. NodeRedPort="1880"
  32. fi
  33. ping -c 1 $NodeRedHost > /dev/null 2>&1
  34. if [ $? -ne 0 ] ; then
  35. echo "NodeRed-Host nicht erreichbar."
  36. exit 2
  37. fi
  38. AntwortZeit=$(curl -s http://${NodeRedHost}:${NodeRedPort}/nred2lox_${MiniServer})
  39. if [ $? -ne 0 ] ; then
  40. echo "Verbindungsstatus konnte nicht von NodeRED abgerufen werden."
  41. exit 2
  42. fi
  43. if [ -z $AntwortZeit ] ; then
  44. echo "Es wurde keine Antwortzeit ausgegeben."
  45. exit 3
  46. fi
  47. if [ $AntwortZeit -ge $CritZeit ] ; then
  48. echo "Critical: Antwortzeit beträgt $AntwortZeit ms."
  49. exit 2
  50. elif [ $AntwortZeit -ge $WarnZeit ] ; then
  51. echo "Warning: Antwortzeit beträgt $AntwortZeit ms."
  52. exit 1
  53. else
  54. echo "OK: Antwortzeit beträgt $AntwortZeit ms."
  55. exit 0
  56. fi
  57. exit 3