Skip to content
Snippets Groups Projects
Commit 0eb5c045 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update for newer ceph versions

parent 3819f1cc
No related branches found
No related tags found
1 merge request!636303 update ceph checks
......@@ -17,9 +17,10 @@
# ----------------------------------------------------------------------
# 2020-03-04 v1.0 <axel.hahn@iml.unibe.ch>
# 2020-03-05 v1.1 <axel.hahn@iml.unibe.ch> switch to ph.* helper functions
# 2023-04-24 v1.2 <axel.hahn@unibe.ch> update for newer ceph versions
# ======================================================================
. `dirname $0`/inc_pluginfunctions
. $(dirname $0)/inc_pluginfunctions
tmpfile=/tmp/ceph_df_output__$$
outfile=/tmp/check_ceph_df_out__$$
......@@ -32,34 +33,33 @@ typeset -i iCritical=0
# ----------------------------------------------------------------------
# set default / override from command line params
typeset -i iWarnLimit=` ph.getValueWithParam 70 w "$@"`
typeset -i iCriticalLimit=` ph.getValueWithParam 90 c "$@"`
typeset -i iWarnLimit=$( ph.getValueWithParam 70 w "$@")
typeset -i iCriticalLimit=$( ph.getValueWithParam 90 c "$@")
sudo /bin/ceph df > $tmpfile 2>&1
if [ $? -ne 0 ]; then
if ! sudo /bin/ceph df > $tmpfile 2>&1
then
rm -f $tmpfile
ph.abort "UNKNOWN: ceph is not available or no sudo permissions to execute ceph commands."
ph.abort "UNKNOWN: ceph is not available or no sudo permissions to execute ceph commands."
fi
rm -f $outfile 2>/dev/null
isHeader=0
area=
while read line
grep "[a-zA-Z]" $tmpfile | while read line
do
# echo "DEBUG: $line"
newArea=`echo $line | grep "^[A-Z]*:"`
newArea=$(echo $line | grep "^\-\-\- [A-Z]*" | sed "s#--- ##" | sed "s# ---##" )
lineStatus=" "
if [ ! -z "$newArea" ]; then
echo>>$outfile
area=`echo $newArea | cut -f 1 -d ":"`
area=$(echo $newArea | cut -f 1 -d ":")
isHeader=1
# Position of disk usage in the sections
iPos=0
test "$area" = "GLOBAL" && iPos=4
test "$area" = "POOLS" && iPos=4
test "$area" = "RAW STORAGE" && iPos=10
test "$area" = "POOLS" && iPos=9
if [ $iPos -eq 0 ]; then
ph.abort "ERROR: unhandled section: [$area]"
fi
......@@ -68,7 +68,8 @@ do
if [ $isHeader -eq 1 ]; then
isHeader=0
else
typeset -i percentUsed=`echo $line | awk -v ipos=$iPos '{ print $ipos }' | sed "s#\..*##"`
typeset -i percentUsed
percentUsed=$(echo $line | awk -v ipos=$iPos '{ print $ipos }' | sed "s#\..*##")
if [ $percentUsed -ge $iWarnLimit ]; then
if [ $percentUsed -ge $iCriticalLimit ]; then
iCritical=$iCritical+1
......@@ -83,7 +84,7 @@ do
fi
fi
echo "$lineStatus $line" >> $outfile
done < $tmpfile
done
if [ $iCritical -gt 0 ]; then
......@@ -94,23 +95,27 @@ else
ph.setStatus "ok"
fi
ph.status "Disksize on Ceph cluster and its pools - critcal: $iCritical ($iCriticalLimit %) .. warnings: $iWarning ($iWarnLimit %)"
ph.status "Disksize on Ceph cluster and its pools - warnings: $iWarning ($iWarnLimit %) .. critcal: $iCritical ($iCriticalLimit %)"
cat $outfile
# 3rd line is global size status
sTotal=`sed -n 3p $tmpfile | awk '{ print $1 }'`
sAvail=`sed -n 3p $tmpfile | awk '{ print $2 }'`
sUsed=` sed -n 3p $tmpfile | awk '{ print $3 }'`
# global size status is in TOTAL...
totalLine="$( grep '^TOTAL' $tmpfile | sed 's#iB##g' )"
iTotal=`ph.toUnit $sTotal ""`
iAvail=`ph.toUnit $sAvail ""`
iUsed=` ph.toUnit $sUsed ""`
# echo "DEBUG: totalLine = $totalLine"
# DEBUG: totalLine = TOTAL 18 T 18 T 428 G 428 G 2.30
sTotal=$( echo $totalLine | awk '{ print $2 $3 }' )
sAvail=$( echo $totalLine | awk '{ print $4 $5 }' )
sUsed=$( echo $totalLine | awk '{ print $6 $7 }' )
iTotal=$(ph.toUnit $sTotal "")
iAvail=$(ph.toUnit $sAvail "")
iUsed=$( ph.toUnit $sUsed "")
ph.perfadd "global-total" "${iTotal}" "" "" 0 ${iTotal}
ph.perfadd "global-avail" "${iAvail}" "" "" 0 ${iTotal}
ph.perfadd "global-used" "${iUsed}" "" "" 0 ${iTotal}
# cleanup
rm -f $tmpfile $outfile 2>/dev/null
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment