1
0
mirror of https://github.com/opinkerfi/nagios-plugins.git synced 2024-11-05 10:03:45 +01:00
nagios-plugins/check_nagios/check_nagios_ghostservices
2013-05-22 21:23:50 +00:00

51 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
TMP=`mktemp`
LAST_HOUR=`date "+%b %e %H:" -d "1 hour ago"`
CURRENT_HOUR=`date "+%b %e %H:"`
exit_unknown() {
msg="$1"
echo "${msg}"
exit 3
}
find_nagios_log() {
# Try to locate the nagios log, fallback to messages log
for log in /var/log/nagios/nagios.log /var/log/nagios3/nagios.log /var/log/messages
do
if [ -e "${log}" ]; then
echo ${log}
return 0
fi
done
return 3
}
LOG=$(find_nagios_log) || exit_unknown "Unable to locate logfile for parsing"
tail -n 1 ${LOG} &> ${TMP} || exit_unknown "Unable to parse logfile: $(cat ${TMP})"
tail -n 2000 ${LOG} | \
grep -E "$CURRENT_HOUR|$LAST_HOUR" | \
grep "Passive check result was received" | \
grep -i "could not be found" | \
sed 's/.*Passive check result was received for service //' | \
sed 's/, but the host could not be found.*//' | \
sort | uniq > $TMP
LINES=`cat $TMP | wc -l`
PERFDATA="'ghost_services'=$LINES"
if [ $LINES -gt 0 ]; then
echo "$LINES ghost services found in Nagios log files | $PERFDATA"
echo ""
cat $TMP
rm -f $TMP
exit 1
fi
echo "No ghost services found in Nagios log files | $PERFDATA"
rm -f $TMP
exit 0