]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - flakes/private/monitoring/plugins/check_postgres_database_count
Squash changes containing private information
[perso/Immae/Config/Nix.git] / flakes / private / monitoring / plugins / check_postgres_database_count
diff --git a/flakes/private/monitoring/plugins/check_postgres_database_count b/flakes/private/monitoring/plugins/check_postgres_database_count
new file mode 100755 (executable)
index 0000000..43bdd8c
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+STATE_OK=0
+STATE_WARNING=1
+STATE_CRITICAL=2
+STATE_UNKNOWN=3
+
+host=$1
+port=$2
+min=$3
+
+count=$(psql -h $host -p $port -A -q -c '\t' -c 'select count(datname) from pg_catalog.pg_database' postgres 2>&1)
+exit_code=$?
+
+if [[ $exit_code -ne 0 ]]; then
+  echo "UNKNOWN - Impossible to run psql command: $count"
+  exit $STATE_UNKNOWN
+elif [[ -z "$count" ]]; then
+  echo "UNKNOWN - No database found"
+  exit $STATE_UNKNOWN
+else
+  output="Database count is $count"
+  LC_ALL=C count=$(printf "%.*f" 0 $count)
+
+  if [[ $count -gt $min ]]; then
+    echo "OK - $output | count=${count};$min;$min;0;"
+    exit $STATE_OK
+  else
+    echo "CRITICAL - $output | count=${count};$min;$min;0;"
+    exit $STATE_CRITICAL
+  fi
+fi