From 07664430dee198e9dce305a6f9f60e18adf13220 Mon Sep 17 00:00:00 2001 From: Gardouille Date: Sat, 29 Aug 2015 09:22:59 +0200 Subject: [PATCH] Add Ceph monitoring. --- dynmotd_scripts/04filesystem | 44 +++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/dynmotd_scripts/04filesystem b/dynmotd_scripts/04filesystem index de1220d..7c04242 100755 --- a/dynmotd_scripts/04filesystem +++ b/dynmotd_scripts/04filesystem @@ -20,7 +20,7 @@ WHITEB='\033[1;37m' RESET='\033[0m' -printf '%b' "${MAGENTA}++++++++++++++++++++: ${WHITE}Disk Usage${MAGENTA} :+++++++++++++++++++++${RESET}" +printf '%b' "${MAGENTA}++++++++++++++++++++: ${WHITE}Disk Usage${RESET} ${MAGENTA}:+++++++++++++++++++++${RESET}" # Root partition # Replace by rootfs in few kernel version DISK_USAGE=$(df | grep -m1 "/$" | awk '{print $5}') @@ -37,7 +37,7 @@ done ### IF ZFS if [ $(which zpool) ]; then - printf '%b' "${MAGENTA}+++++++++++++++++++ ${WHITEB}ZFS${RESET} ${WHITE}Partitions${MAGENTA} :++++++++++++++++++${RESET}" + printf '%b' "\n${MAGENTA}+++++++++++++++++++ ${WHITEB}ZFS${RESET} ${WHITE}Partitions${RESET} ${MAGENTA}:++++++++++++++++++${RESET}" NUMBER_PART=$(df -T | grep zfs | wc -l) LINE=1 @@ -46,11 +46,49 @@ if [ $(which zpool) ]; then DISK_USAGE=$(df -T | grep zfs | sed -n "${LINE},${LINE}p" | awk '{print $6}') printf '%b' "\n${MAGENTA}+ ${WHITEB}${PART_NAME}${RESET} [ ${DISK_USAGE} ] " LINE=$((LINE+1)) - # Bash ONLY: (( LINE++ )) + # Bash ONLY: (( LINE++ )) done fi ### FI ZFS +### IF CEPH +# First, test if a keyring file exists +if [ -f /etc/ceph/*.keyring ]; then + printf '%b' "\n${MAGENTA}++++++++++++++++++++++++ ${WHITEB}Ceph${RESET} ${MAGENTA}:++++++++++++++++++++++++${RESET}" + for keyring in "$(find /etc/ceph -type f -name *.keyring)"; do + CEPH_USERNAME=$(grep client ${keyring} | sed 's/^\[client.\(.*\)\]/\1/') + CEPH_HEALTH=$(ceph health --id ${CEPH_USERNAME}) + CEPH_HEALTH_OK=$(ceph health --id ${CEPH_USERNAME} | grep -i -- 'ok') + + # Test health to determine the color to use + if [ ${CEPH_HEALTH_OK} ]; then + CEPH_COLOR=${GREEN} + else + CEPH_COLOR=${RED} + fi + + # Print + printf '%b' "\n${MAGENTA}+ ${WHITEB}${keyring}: ${CEPH_COLOR}${CEPH_HEALTH}" + done + +# Else use default +elif [ -f /etc/ceph/ceph.conf ]; then + printf '%b' "\n${MAGENTA}++++++++++++++++++++++++ ${WHITEB}Ceph${RESET} ${MAGENTA}:++++++++++++++++++++++++${RESET}" + CEPH_HEALTH=$(ceph health) + CEPH_HEALTH_OK=$(ceph health | grep -i -- 'health_ok') + + # Test health to determine the color to use + if [ ${CEPH_HEALTH_OK} ]; then + CEPH_COLOR=${GREEN} + else + CEPH_COLOR=${RED} + fi + + # Print + printf '%b' "\n${MAGENTA}+ ${CEPH_COLOR}${CEPH_HEALTH}" +fi +### FI CEPH + printf '%b' "${RESET}\n"