From 02ddb31708064eecae4ed7fd1f162983ca6dcc17 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch>
Date: Tue, 9 May 2023 09:09:31 +0200
Subject: [PATCH] add check_ceph_io

---
 check_ceph_io | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100755 check_ceph_io

diff --git a/check_ceph_io b/check_ceph_io
new file mode 100755
index 0000000..e591b4f
--- /dev/null
+++ b/check_ceph_io
@@ -0,0 +1,82 @@
+#!/bin/bash
+# ======================================================================
+#
+# Icinga/ Nagios Check
+# CEPH IO (from "ceph status")
+#
+# ----------------------------------------------------------------------
+#
+# REQUIREMENTS:
+#   - ceph and sudo permissions on it
+#
+# SYNTAX:
+#   - check_ceph_io
+#     No parameter required
+#
+# ----------------------------------------------------------------------
+# 2023-05-09  v1.0  <axel.hahn@unibe.ch>
+# ======================================================================
+
+. $(dirname $0)/inc_pluginfunctions
+
+self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] )
+self_APPVERSION=1.0
+
+function showHelp(){
+cat <<EOF
+______________________________________________________________________
+
+$self_APPNAME 
+v$self_APPVERSION
+
+(c) Institute for Medical Education - University of Bern
+Licence: GNU GPL 3
+______________________________________________________________________
+
+Show cheph IO as read and written bytes per second.
+This check sends performance data.
+
+SYNTAX:
+$(basename $0)
+
+OPTIONS:
+    -h or --help   show this help.
+
+EOF
+}
+
+# --- check param -h
+case "$1" in
+    "--help"|"-h")
+        showHelp
+        exit 0
+        ;;
+    *)
+esac
+
+# --- check required tools
+ph.require ceph
+
+CEPHIO=$( sudo ceph status 2>/dev/null | grep "client:.* rd,.* wr," | cut -f 2 -d ":" )
+# CEPHIO="8.9 KiB/s rd, 887 KiB/s wr, 138 op/s rd, 140 op/s wr"
+
+if [ -z "${CEPHIO}" ]; then
+        ph.setStatus "unknown"
+        ph.status "no data"
+        echo "There is no output from 'sudo ceph status'."
+        echo "No ceph here or no sudo permissions on ceph command?"
+else
+
+        IO_READ=$(  echo ${CEPHIO} | cut -f 1,2 -d " " | sed -E "s#([0-9]*) (.).*#\1\2#g")
+        IO_WRITE=$( echo ${CEPHIO} | cut -f 4,5 -d " " | sed -E "s#([0-9]*) (.).*#\1\2#g")
+        ph.status "$CEPHIO"
+
+        # echo "read: $IO_READ"
+        # echo "write: $IO_WRITE"
+
+        ph.perfadd "cephio-read"   "$IO_READ"    "" ""
+        ph.perfadd "cephio-write"  "$IO_WRITE"   "" ""
+
+fi
+
+ph.exit
\ No newline at end of file
-- 
GitLab