added check_bigcouch_errors.sh
authorvarac <varacanero@zeromail.org>
Thu, 6 Feb 2014 12:45:36 +0000 (13:45 +0100)
committervarac <varacanero@zeromail.org>
Thu, 6 Feb 2014 12:45:36 +0000 (13:45 +0100)
tests/check_bigcouch_errors.sh [new file with mode: 0755]

diff --git a/tests/check_bigcouch_errors.sh b/tests/check_bigcouch_errors.sh
new file mode 100755 (executable)
index 0000000..21cadb1
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+
+WARN=10
+CRIT=20
+LOG='/opt/bigcouch/var/log/bigcouch.log'
+
+# for debugging: zgrep through old logs
+#LOG=/opt/bigcouch/var/log/bigcouch.log.1.gz
+#errors=`zcat $LOG | grep 'error' | sed 's/\[.*\] //' | sort`
+
+errors=`grep 'error' $LOG | sed 's/\[.*\] //' | sort `
+errors_uniq=`echo -e "$errors" | uniq`
+
+total=`echo -e "$errors" | grep -v '^$' | wc -l`
+
+if [ $total -lt $WARN ]
+then
+  echo -n "OK"
+  exitcode=0
+else
+  if [ $total -le $CRIT ]
+  then
+    echo -n "Warning"
+    exitcode=1
+  else
+      echo -n "Critical"
+      exitcode=2
+  fi
+fi
+
+echo -n ": $total errors in total in $LOG."
+
+if [ ! $total -eq 0 ]
+then
+
+  echo -e "$errors_uniq" | while read -r line
+  do 
+    count=`echo -e "$errors" | grep "$line" | wc -l`
+    echo -n " $count occurrences of \"$line\"."
+  done
+fi
+
+echo
+
+exit $exitcode