@@ -28,13 +28,13 @@ usage() {
2828 - Pod restart count in pods mode; default is 30
2929 - Job failed count in jobs mode; default is 1
3030 - Pvc storage utilization; default is 80%
31- - APICERT expiration days for apicert mode; default is 30
31+ - API cert expiration days for apicert mode; default is 30
3232 -c CRIT Critical threshold for
3333 - Pod restart count (in pods mode); default is 150
3434 - Unbound Persistent Volumes in unboundpvs mode; default is 5
3535 - Job failed count in jobs mode; default is 2
3636 - Pvc storage utilization; default is 90%
37- - APICERT expiration days for apicert mode; default is 15
37+ - API cert expiration days for apicert mode; default is 15
3838 -M EXIT_CODE Exit code when resource is missing; default is 2 (CRITICAL)
3939 -h Show this help and exit
4040
@@ -159,27 +159,24 @@ mode_apicert() {
159159 fi
160160 WARN=${WARN:- 30}
161161 CRIT=${CRIT:- 15}
162- APICERT =$( echo " $APISERVER " | awk -F " // " ' { print $2 } ' | awk -F " : " ' { print $1 }' )
163- APIPORT=$( echo " $APISERVER " | awk -F " // " ' { print $2 } ' | awk -F " : " ' { print $2 }' )
164- APIPORT=${APIPORT:= 443}
165- timeout " $TIMEOUT " bash -c " </dev/tcp/ $APICERT / $APIPORT " & > /dev/null
166- if [ $? -ne 0 ]; then
167- echo " APICERT is in UNKNOWN"
162+ APIHOST =$( echo " $APISERVER " | awk -F[/:] ' {print $4 }' )
163+ APIPORT=$( echo " $APISERVER " | awk -F[/:] ' {print $5 }' )
164+ APIPORT=${APIPORT:- 443}
165+ enddate= $( echo | openssl s_client -connect " $APIHOST : $APIPORT " 2 > /dev/null | openssl x509 -enddate -noout 2> /dev/null | sed ' s/notAfter=// ' | xargs -r -0 date +%s -d )
166+ if [ -z " $enddate " ]; then
167+ echo " API cert expiration date is UNKNOWN"
168168 exit 3
169169 fi
170- APICERTDATE=$( echo | openssl s_client -connect " $APICERT " :" $APIPORT " 2> /dev/null | openssl x509 -noout -dates | grep notAfter | sed -e ' s#notAfter=##' )
171- a=$( date -d " $APICERTDATE " +%s)
172- b=$( date +%s)
173- c=$(( a- b))
174- d=$(( c/ 3600 / 24 ))
175- echo " APICERT expires in $d days"
176- if [ " $d " -gt " $WARN " ] && [ " $d " -gt " $CRIT " ]; then
177- echo " APICERT is OK"
178- elif [ " $d " -le " $WARN " ] && [ $d -gt " $CRIT " ]; then
179- echo " APICERT is in WARN"
170+ nowdate=$( date +%s)
171+ diff=$(( ($enddate - $nowdate )/ 24 / 3600 ))
172+ OUTPUT=" API cert expires in $diff days"
173+ if [ " $diff " -gt " $WARN " ] && [ " $diff " -gt " $CRIT " ]; then
174+ OUTPUT=" OK. $OUTPUT "
175+ elif [ " $diff " -le " $WARN " ] && [ " $diff " -gt " $CRIT " ]; then
176+ OUTPUT=" WARNING. $OUTPUT "
180177 EXITCODE=1
181- elif [ " $d " -le " $CRIT " ]; then
182- echo " APICERT is in CRIT "
178+ elif [ " $diff " -le " $CRIT " ]; then
179+ OUTPUT= " CRITICAL. $OUTPUT "
183180 EXITCODE=2
184181 fi
185182}
0 commit comments