Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

check_duplicati_job

Rating
0 votes
Favoured:
0
Current Version
1.0
Last Release Date
2021-07-17
Compatible With
  • Nagios 4.x
Owner
License
Other
Hits
3438
Files:
FileDescription
check_duplicati_job/usr/local/nagios/libexec/check_duplicati_job
check_duplicati_job.cfg/usr/local/nagios/etc/commands/check_duplicati_job.cfg
save-job-result.sh/root/.config/Duplicati/save-job-result.sh
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
check_duplicati_job
I’ve made a small set of scripts to allow for an easy monitoring integration with Nagios Core.

You’ll need to place the following files into your nagios installation to set it up. I’ve tested this on Debian 10 (buster). Your Duplicati backup job needs to call the bash script by specifiying the advanced option “–run-script-after=/root/.config/Duplicati/save-job-result.sh” in order to save the job result to a status file. The status file will be read by the nagios plugin to determine the sensor status.
I’ve made a small set of scripts to allow for an easy monitoring integration with Nagios Core.

You’ll need to place the following files into your nagios installation to set it up. I’ve tested this on Debian 10 (buster). Your Duplicati backup job needs to call the bash script by specifiying the advanced option “–run-script-after=/root/.config/Duplicati/save-job-result.sh” in order to save the job result to a status file. The status file will be read by the nagios plugin to determine the sensor status.

chmod +x /usr/local/nagios/libexec/check_duplicati_job
******* START ********
#!/bin/sh
#
# Command line.
## sh /usr/local/nagios/libexec/check_duplicati_job my-test-backup-job; echo $?
#
EXIT_OK=0
EXIT_WARNING=1
EXIT_CRITICAL=2
#
if [ -z "${1}" ]; then
echo "WARNING: Duplicati job parameter #1 missing."
exit ${EXIT_WARNING}
fi
DUPLICATI_JOB_NAME="${1}"
DUPLICATI_JOB_RESULT_FULLFN="/root/.config/Duplicati/jobs/${DUPLICATI_JOB_NAME}.result"
#
if [ ! -f "${DUPLICATI_JOB_RESULT_FULLFN}" ]; then
echo "WARNING: Job "${DUPLICATI_JOB_NAME}" was never executed."
exit ${EXIT_WARNING}
fi
#
if ( ! grep -q "Success" "${DUPLICATI_JOB_RESULT_FULLFN}" ); then
echo "CRITICAL: Job "${DUPLICATI_JOB_NAME}" $(cat "${DUPLICATI_JOB_RESULT_FULLFN}" 2>/dev/null)"
exit ${EXIT_CRITICAL}
fi
#
echo "OK: Job "${DUPLICATI_JOB_NAME}" $(cat "${DUPLICATI_JOB_RESULT_FULLFN}" 2>/dev/null)"
exit ${EXIT_OK}
******* END********

/usr/local/nagios/etc/commands/check_duplicati_job.cfg
******* START ********
define command{
command_name check_duplicati_job
command_line $USER1$/check_duplicati_job $ARG1$
}
******* END********


/usr/local/nagios/etc/servers/my-duplicati-server.cfg
******* START ********
define host {

use linux-server
host_name my-duplicati-server
alias my-duplicati-server
address [SERVER_IP_ADDRESS]
check_period 24x7
contact_groups admins
max_check_attempts 5
}

define service {
use local-service
host_name my-duplicati-server
service_description duplicati-job-1
check_command check_duplicati_job!duplicati-job-1
}
******* END********

The job status saver:
chmod +x /root/.config/Duplicati/save-job-result.sh
******* START ********
#!/bin/bash
#
# Store job result to file for nagios monitoring.
SCRIPT_PATH="$(dirname "$(realpath "${0}")")"
mkdir -p "${SCRIPT_PATH}/jobs/"
echo "${DUPLICATI__PARSED_RESULT} ${DUPLICATI__EVENTNAME} ${DUPLICATI__OPERATIONNAME}" > "${SCRIPT_PATH}/jobs/${DUPLICATI__backup_name}.result"
exit 0
******* END********