Merge check_nrpe into bkctld check subcommand
This commit is contained in:
parent
f6aca343fb
commit
dcba6d5634
1
Vagrantfile
vendored
1
Vagrantfile
vendored
|
@ -20,7 +20,6 @@ ln -fs /vagrant/tpl /usr/share/bkctld
|
|||
ln -fs /vagrant/bash_completion /usr/share/bash-completion/completions/bkctld
|
||||
ln -fs /vagrant/bkctld.conf /etc/default/bkctld
|
||||
mkdir -p /usr/lib/nagios/plugins/
|
||||
ln -fs /vagrant/check_nrpe /usr/lib/nagios/plugins/check_bkctld
|
||||
SCRIPT
|
||||
|
||||
$deps = <<SCRIPT
|
||||
|
|
|
@ -9,7 +9,7 @@ function _bkctld()
|
|||
|
||||
cur=${COMP_WORDS[COMP_CWORD]};
|
||||
prev=${COMP_WORDS[COMP_CWORD-1]};
|
||||
commands="init update remove start stop reload restart sync status key port ip inc rm"
|
||||
commands="init update remove start stop reload restart sync status key port ip inc rm check"
|
||||
|
||||
if [ $COMP_CWORD -eq 1 ]; then
|
||||
COMPREPLY=($(compgen -W '${commands}' -- ${cur}))
|
||||
|
|
29
bkctld
29
bkctld
|
@ -28,6 +28,7 @@ Subcommands:
|
|||
ip <jailname> [<ip>|all] Set or get allowed(s) ip(s) of <jailname>
|
||||
inc Make incremental inc of all jails
|
||||
rm Remove old incremtal inc of all jails
|
||||
check Run check on jails (NRPE output)
|
||||
|
||||
EOF
|
||||
}
|
||||
|
@ -470,6 +471,30 @@ sub_rm() {
|
|||
rm "${pidfile}"
|
||||
}
|
||||
|
||||
sub_check() {
|
||||
cur_time=$(date "+%s")
|
||||
return=0
|
||||
jails=$(ls "${JAILDIR}")
|
||||
for jail in ${jails}; do
|
||||
if [ -f "${JAILDIR}/${jail}/var/log/lastlog" ]; then
|
||||
last_conn=$(stat --format=%Y "${JAILDIR}/${jail}/var/log/lastlog")
|
||||
date_diff=$(( (cur_time - last_conn) / (60*60) ))
|
||||
if [ "${date_diff}" -gt "${CRITICAL}" ]; then
|
||||
echo "CRITICAL - ${jail} - ${date_diff} hours"
|
||||
return=2
|
||||
elif [ "${date_diff}" -gt "${WARNING}" ]; then
|
||||
echo "WARNING - ${jail} - ${date_diff} hours"
|
||||
[ "${return}" -ne 2 ] && return=1
|
||||
fi
|
||||
else
|
||||
echo "CRITICAL - ${jail} doesn't have lastlog !"
|
||||
return=2
|
||||
fi
|
||||
done
|
||||
[ "${return}" -eq 0 ] && echo "OK - Nothing to signal"
|
||||
exit "${return}"
|
||||
}
|
||||
|
||||
## main function : check usage and valid params
|
||||
|
||||
main() {
|
||||
|
@ -486,6 +511,8 @@ main() {
|
|||
AUTHORIZED_KEYS="${AUTHORIZED_KEYS:-/root/.ssh/authorized_keys}"
|
||||
FIREWALL_RULES="${FIREWALL_RULES:-}"
|
||||
LOGLEVEL="${LOGLEVEL:-6}"
|
||||
CRITICAL="${CRITICAL:-48}"
|
||||
WARNING="${WARNING:-24}"
|
||||
BTRFS=$(command -v btrfs)
|
||||
mkdir -p "${CONFDIR}" "${JAILDIR}" "${INCDIR}"
|
||||
subcommand="${1:-}"
|
||||
|
@ -495,7 +522,7 @@ main() {
|
|||
"" | "-h" | "--help")
|
||||
usage
|
||||
;;
|
||||
"inc" | "rm")
|
||||
"inc" | "rm" | "check")
|
||||
"sub_${subcommand}"
|
||||
;;
|
||||
"init")
|
||||
|
|
38
check_nrpe
38
check_nrpe
|
@ -1,38 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# bkctld(8) - NRPE check
|
||||
#
|
||||
# Copyright (c) 2017 Victor Laborie <vlaborie@evolix.fr>
|
||||
#
|
||||
|
||||
[ -f /etc/default/bkctld ] && . /etc/default/bkctld
|
||||
|
||||
[ -z "$JAILDIR" ] && JAILDIR="/backup/jails"
|
||||
|
||||
[ -z "$CRITICAL" ] && CRITICAL=48
|
||||
[ -z "$WARNING" ] && WARNING=24
|
||||
|
||||
cur_time=$(date "+%s")
|
||||
return=0
|
||||
|
||||
jails=$(ls "$JAILDIR")
|
||||
for jail in $jails; do
|
||||
if [ -f "$JAILDIR/$jail/var/log/lastlog" ]; then
|
||||
last_conn=$(stat --format=%Y "$JAILDIR/$jail/var/log/lastlog")
|
||||
date_diff=$(( ( $cur_time - $last_conn ) / (60*60) ))
|
||||
if [ "$date_diff" -gt "$CRITICAL" ]; then
|
||||
echo "CRITICAL - $jail - $date_diff hours"
|
||||
return=2
|
||||
elif [ "$date_diff" -gt "$WARNING" ]; then
|
||||
echo "WARNING - $jail - $date_diff hours"
|
||||
[ "$return" -ne 2 ] && return=1
|
||||
fi
|
||||
else
|
||||
echo "CRITICAL - $jail doesn't have lastlog !"
|
||||
return=2
|
||||
fi
|
||||
done
|
||||
|
||||
[ "$return" -eq 0 ] && echo "OK - Nothing to signal"
|
||||
|
||||
exit "$return"
|
|
@ -9,18 +9,18 @@ teardown() {
|
|||
}
|
||||
|
||||
@test "ok" {
|
||||
run /usr/lib/nagios/plugins/check_bkctld
|
||||
run bkctld check
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
||||
|
||||
@test "warning" {
|
||||
touch --date="$(date -d -2days)" /backup/jails/*/var/log/lastlog
|
||||
run /usr/lib/nagios/plugins/check_bkctld
|
||||
run bkctld check
|
||||
[ "$status" -eq 1 ]
|
||||
}
|
||||
|
||||
@test "critical" {
|
||||
touch --date="$(date -d -3days)" /backup/jails/*/var/log/lastlog
|
||||
run /usr/lib/nagios/plugins/check_bkctld
|
||||
run bkctld check
|
||||
[ "$status" -eq 2 ]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue