]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/monitoring/plugins/check_maison_bbc
Add monitoring host
[perso/Immae/Config/Nix.git] / modules / private / monitoring / plugins / check_maison_bbc
diff --git a/modules/private/monitoring/plugins/check_maison_bbc b/modules/private/monitoring/plugins/check_maison_bbc
new file mode 100755 (executable)
index 0000000..43a5817
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# kw, kwh, th_hr Bureau, th_hr Chambre_RDC, th_hr Exterieure, th_hr
+# Garage, th_hr Mezzanine, th_hr Sejour, th_hr Soufflage
+
+alert=$(date +"%F %H:%M:%S" -d "3 hours ago")
+res=$(curl https://maison.bbc.bouya.org/stats.php)
+
+ignored_text="th_hr Exterieure th_hr Soufflage"
+
+ignored_bat="^$"
+ignored="^(th_hr Exterieure|th_hr Soufflage)$"
+
+missing() {
+  echo "to_entries|[.[]|select(.value < \"$alert\" and .key != \"bat\" $1)|.key + \": \" + .value]|join(\" ; \")"
+}
+
+missing_check=$(echo "$res" | jq -r "$(missing "and (.key | test(\"$ignored\") | not)")")
+missing_show=$(echo "$res" | jq -r "$(missing "")")
+
+battery() {
+  echo ".bat|to_entries|[.[]|select((.value[0] < \"$alert\" or (.value[1] | test(\"^0|1|2$\") | not)) $1)|.key + \": \" + .value[0] + \" bat \" + .value[1]]|join(\" ; \")"
+}
+
+bat_check=$(echo "$res" | jq -r "$(battery "and (.key | test(\"$ignored_bat\") | not)")")
+bat_show=$(echo "$res" | jq -r "$(battery "")")
+
+if [ -n "$missing_check" -o -n "$bat_check" ]; then
+  text=""
+  if [ -n "$missing_show" ]; then
+    text="$text - Dernières dates: $missing_show"
+  fi
+  if [ -n "$bat_show" ]; then
+    text="$text - Batteries: $bat_show"
+  fi
+  echo "Zibase CRITICAL$text"
+  exit 2
+else
+  echo "Zibase OK - Derniers événements il y a moins de 3h (ignorés : $ignored_text)"
+  exit 0
+fi