Mit diesem BASH Script kann man SSL Zertifikate im PEM Format mit Hilfe von Check_MK Monitoring überprüfen. Dazu erstellen Sie das Script im Verzeichnis /usr/lib/check_mk_agent/local/. Der Check prüft die Laufzeit der Letsencrypt Zertifikate.
vim /usr/lib/check_mk_agent/local/check_certificates.sh
#!/bin/bash # Plugin Return Codes # = 0 OK # = 1 Warning # = 2 Critical # = 3 Unknown # DIR=/etc/letsencrypt/live/*/ FILTER=$DIR/cert.pem function output { NAME=$(basename $1) DATE=$(date --date="$2" --iso-8601) SUBJECT=$3 TODAY=$(date +%s) DATE_I=$(date -d ${DATE} +%s) EXPIRATION=$((15 * 24 * 60 * 60)) # 15 days if [[ -z $SUBJECT ]] ; then STATUS=3 STATUS_TEXT="UNKNOWN" TEXT="Empty subject value" elif [ ${TODAY} -gt ${DATE_I} ] ; then STATUS=2 STATUS_TEXT="CRITICAL" TEXT="Certificate has expired since ${DATE}" elif [[ $(expr $TODAY + $EXPIRATION) -gt ${DATE_I} ]] ; then STATUS=1 STATUS_TEXT="WARNING" TEXT="Certificate will expire on ${DATE}" else STATUS=0 STATUS_TEXT="OK" TEXT="Certificate will expire on ${DATE}" fi echo "${STATUS:-1} Certificate_${SUBJECT} Date=${DATE}; Check(${STATUS_TEXT}) - ${TEXT} - ${SUBJECT}" } function check { FILE=$1 DATE=$(cat ${FILE} |openssl x509 -noout -enddate|cut -d= -f2-) SUBJECT=$(cat ${FILE} |openssl x509 -noout -subject|cut -d= -f3-) output "$FILE" "$DATE" "$SUBJECT" } for FILE in $FILTER; do # take action on each certificate file. check "$FILE" done |
2. März 2021 — 16:20
Hallo,
danke für das Script. Auf der CLI funktioniert das soweit problemlos nur im aktuellen check_mk gibt es das Problem:
UNKN – Invalid performance data
Hast Du vielleicht eine Idee wie man das beheben könnte?
Grüße Mike