Compare commits

..

5 Commits

@ -21,11 +21,3 @@ Failover from primary Nagios XI to secondary Nagios XI is a Disaster Recovery ef
* Make sure any ramdisk (such as /ramdisk) is copied if it exists * Make sure any ramdisk (such as /ramdisk) is copied if it exists
* Note that any gearman addons such as /etc/mod_gearman or whatever are NOT copied as part of this procedure. These types of things need to be set up on both boxes the same way before this process is set up. * Note that any gearman addons such as /etc/mod_gearman or whatever are NOT copied as part of this procedure. These types of things need to be set up on both boxes the same way before this process is set up.
## Running from cron
The synchronization script should run on the primary at regular intervals to keep the secondary as up-to-date as possible. It is recommended to run the script from cron to accomplish this. At the simplest level, one could do this:
* */30 * * * * /home/nagios/bin/SYNC >> /home/nagios/sync.log
To include a timestamp, this would work:
* */30 * * * * (date; time /home/nagios/bin/SYNC; echo "") >> /home/nagios/sync.log

@ -69,10 +69,6 @@ do_primary() {
[ $? -ne 0 ] && error "Cannot ping ${secondary}. Use --noping to continue wihout ping." && exit [ $? -ne 0 ] && error "Cannot ping ${secondary}. Use --noping to continue wihout ping." && exit
verbose "Creating package to send to secondary" verbose "Creating package to send to secondary"
/home/nagios/bin/rsync_xi.sh --prepend ${syncname} --primary "${primary}" --secondary "${secondary}" $extraCmd /home/nagios/bin/rsync_xi.sh --prepend ${syncname} --primary "${primary}" --secondary "${secondary}" $extraCmd
if [ -r "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.primary" -a -w "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css" ]; then
verbose "Copying local gradient files"
cp /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.primary /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css
fi
} }
do_secondary() { do_secondary() {
@ -86,20 +82,22 @@ do_secondary() {
warning "The primary (${primary}) is on the network but --force specified. Proceeding anyway." warning "The primary (${primary}) is on the network but --force specified. Proceeding anyway."
fi fi
fi fi
verbose "Expanding package from the primary" verbose "Checking for package from the primary"
syncfile=$(basename `ls -tr1 ${backupDir}/${syncname}* | tail -1`) syncfile=$(basename `ls -tr1 ${backupDir}/${syncname}* | tail -1`)
[ -z "$syncfile" ] && error "No sync file ($syncfile) found." && exit 2 fullfile="/store/backups/nagiosxi/$syncfile"
/home/nagios/bin/rsync_xi.sh --primary "${primary}" --secondary "${secondary}" --file "/store/backups/nagiosxi/$syncfile" if [ -f "$fullfile" ]; then
verbose " Sync file found ($fullfile). Continuing."
/home/nagios/bin/rsync_xi.sh --primary "${primary}" --secondary "${secondary}" --file "$fullfile"
else
warning " No sync file found. Continuing to activate Nagios."
fi
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sleep 2
if [ -r "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary" -a -w "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css" ]; then
cp /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css
fi
chmod 0640 /usr/local/nagiosxi/var/keys/xi.key chmod 0640 /usr/local/nagiosxi/var/keys/xi.key
chown nagios:nagios /usr/local/nagiosxi/var/keys/xi.key chown nagios:nagios /usr/local/nagiosxi/var/keys/xi.key
verbose "This is intended to be manually executed when needed, so we assume you want to start Nagios..." -n verbose "This is intended to be manually executed when needed, so we assume you want to start Nagios..." -n
sleep 5
start_nagios start_nagios
rm -f ${syncfile} rm -f ${fullfile}
verbose "Done." verbose "Done."
fi fi
} }

Binary file not shown.

@ -18,7 +18,7 @@ execute="-n"
syncfile="" syncfile=""
isP=/bin/false isP=/bin/false
isS=/bin/false isS=/bin/false
rsync_opts="-a --delete --delete-after --rsync-path=\"sudo /bin/rsync\" --exclude=/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css" rsync_opts="-a --delete --delete-after"
# Import Nagios XI and xi-sys.cfg config vars # Import Nagios XI and xi-sys.cfg config vars
. $BASEDIR/../var/xi-sys.cfg . $BASEDIR/../var/xi-sys.cfg
@ -118,11 +118,12 @@ workDir=$rootdir/$name
mkdir -p $workDir mkdir -p $workDir
do_rsync() { do_rsync() {
verbose "Syncing $*..." verbose "Syncing $1 (Excluding ${2:-nothing})..."
src="$1" src="$1"
[ -n "$2" ] && exclude="--exclude $2" || exclude=""
[ ! -e "$src" ] && warning " OK: No such file or directory: $src" && return [ ! -e "$src" ] && warning " OK: No such file or directory: $src" && return
[ -d "$src" ] && sudo rsync ${rsync_opts} ${execute} ${src}/ nagios@${sName}:${src}/ [ -d "$src" ] && sudo /usr/bin/rsync --rsync-path="sudo /bin/rsync" ${rsync_opts} ${exclude} ${execute} ${src}/ nagios@${sName}:${src}/
[ -f "$src" ] && sudo rsync ${rsync_opts} ${execute} ${src} nagios@${sName}:${src} [ -f "$src" ] && sudo /usr/bin/rsync --rsync-path="sudo /bin/rsync" ${rsync_opts} ${exclude} ${execute} ${src} nagios@${sName}:${src}
} }
do_backup_files() { do_backup_files() {
@ -151,7 +152,7 @@ do_rsync $httpdconfdir/nrdp.conf
do_rsync $httpdconfdir/ssl.conf do_rsync $httpdconfdir/ssl.conf
do_rsync /usr/local/nagios do_rsync /usr/local/nagios
do_rsync /usr/local/nagiosmobile do_rsync /usr/local/nagiosmobile
do_rsync /usr/local/nagiosxi do_rsync /usr/local/nagiosxi custom-includes/css/
do_rsync /usr/local/nagvis do_rsync /usr/local/nagvis
do_rsync /usr/local/nrdp do_rsync /usr/local/nrdp
do_rsync /usr/share/snmp do_rsync /usr/share/snmp
@ -159,7 +160,6 @@ do_rsync /var/lib/mrtg
do_rsync /var/spool/cron/apache do_rsync /var/spool/cron/apache
do_rsync /var/spool/cron/crontabs/$apacheuser do_rsync /var/spool/cron/crontabs/$apacheuser
} # End of do_backup_files } # End of do_backup_files
do_backup_sql() { do_backup_sql() {

Loading…
Cancel
Save