File: //usr/lib64/nagios/plugins/check_sssd
#!/bin/bash
# check_sssd on EL6+
# Requirements:
# Author: Tsvetan Gerov <tsvetan@worldhost.group>
# Version 0.2
# Initialize flags and error message
CRITICAL=false
WARNING=false
ERROR_MESSAGE=""
if [ -f "/etc/redhat-release" ]; then
OSRELEASE=$(cat /etc/redhat-release | tr -dc '0-9.'|cut -d \. -f1)
else
OSRELEASE="0"
fi
check_sssd() {
if [ "$OSRELEASE" -eq 6 ]; then
if [ ! -f "/etc/init.d/sssd" ]; then
CRITICAL=true
ERROR_MESSAGE+="sssd service is missing, "
else
if ! /etc/init.d/sssd status >/dev/null 2>&1; then
CRITICAL=true
ERROR_MESSAGE+="sssd is down, "
fi
fi
else
if [ ! -f "/usr/lib/systemd/system/sssd.service" ]; then
CRITICAL=true
ERROR_MESSAGE+="sssd service is missing, "
else
if ! systemctl is-active sssd.service >/dev/null 2>&1; then
CRITICAL=true
ERROR_MESSAGE+="sssd is down, "
fi
fi
fi
}
# Perform checks
check_sssd
# Return final state
if [ "$CRITICAL" = true ]; then
echo "[CRITICAL] ${ERROR_MESSAGE%, }"
exit 2
elif [ "$WARNING" = true ]; then
echo "[WARNING] ${ERROR_MESSAGE%, }"
exit 1
else
echo "[OK] All LDAP services are running correctly."
exit 0
fi