Portal backup and restore

Contents

Portal backup and restore

Manual Backup

To manually back up the Portal:

  1. Log in to Command Line Interface of the Appliance that hosts the Portal.
  2. Execute the following script, noting that you must not add any extension to the name of the target file. The script automatically appends the .tgz extension to the name of the backup file:
    sudo /var/nexthink/portal/backup/backup-portal.sh target-filename
    • The Portal backup file is stored under:
    /var/nexthink/portal/backup/
  3. Execute the following script to backup the configuration of Nginx, the reverse proxy component in the Portal that handles connections. As in the case of the Portal, the .tgz extension is added automatically to the name of the backup file:
    sudo /var/nexthink/nxnginx/bin/backup-nxnginx.sh target2-filename
    • The proxy backup file is stored under:
    /var/nexthink/nxnginx/backup/

In addition, if you want to take a backup of the history details of count metrics, you must have configured the Portal to automatically keep these history details day by day. See in the next section the directory where the Portal stores the backup files of history details. If the Portal has not been configured to store the history details, it is not possible to recompute them afterwards manually.

Copy the contents of the history directory to another location (e.g. to a USB key) to make a manual backup of the history details of count metrics:

cp -r /var/nexthink/portal/backup/history/ target-folder

Automatic Backup

Nightly backup

Every day at 22h15, a cron job triggers an automatic backup of the Portal. The automatic backup system keeps a history of up to ten backup files. The backup files are located in:

/var/nexthink/portal/backup

Find the script that creates the automatic backups in the same directory:

/var/nexthink/portal/backup/backup-portal.sh

The file named portal-backup.tgz is a symbolic link that points to the last backup file in the history. The backup file holds the main database of the Portal and the content of the configuration folder:

/var/nexthink/portal/conf

Specify the maximum number of local backups that are kept in the directory by editing the first variable in the script backup-portal.sh. By default, up to ten backups are kept simultaneously:

NUM_OF_BACKUPS=10

Beware that if the nightly backup script changes on a Portal release, the upgrade of the Portal resets the number of backups to its default value. In such a case, recover your own modified number of backups from a copy of the script, named backup-portal.sh.rpmsave, that the upgrade process saves in the same directory with the content of the file before the upgrade.

History backup

In addition, if you have configured your Portal to store the history details of count metrics, that is, the lists of objects that contributed to the count metric on a particular day, these are stored under:

/var/nexthink/portal/backup/history

The name of history detail files has the format history_YYYYMMDD.backup. The number of files kept for the history details depend on the disk space reserved for this purpose.

Nginx backup

Later, at 22h30, another cron job triggers the backup of the configuration of Nginx, a reverse proxy component used to enhance the security of the Portal. The automatic backup system keeps a history of up to ten backup files, which are located in:

/var/nexthink/nxnginx/backup

Find the script that creates the automatic backups of the reverse proxy here:

/var/nexthink/nxnginx/bin/backup-nxnginx.sh

Specify the maximum number of local backups that are kept in the directory by editing the first variable in the script backup-nxnginx.sh. By default, up to ten backups are kept simultaneously:

NUM_OF_BACKUPS=10

As for the nightly script of the Portal, the backup script of Nginx may be overwritten by an upgrade of the Portal appliance and reset the number of backups to its default value, if the script changed on a release for any reason. To avoid losing your changes in such a case, recover your value for the maximum number of backups from the file backup-nxnginx.sh.rpmsave in the same directory.

Each backup file saves the configuration of Nginx that is located in the following directories:

/var/nexthink/nxnginx/conf.d
/var/nexthink/nxnginx/ssl

On upgrade backup

In addition to the nightly backups, the appliance automatically makes a new backup of the Portal before each upgrade. The file is placed in the same directory as the nightly backups and its name has the following format (where X.X.X.X indicates the version to which the Portal is upgrading):

/var/nexthink/portal/backup/portal-backup_before-X.X.X.X.tgz

Older upgrade backups are erased in the process.

Because backing up the Portal may be a lengthy process, deactivate the automatic backup on Portal upgrade if you consider that the nightly backup is enough for you to not lose important data in the case of a failed upgrade. To deactivate the automatic backup of the Portal on upgrade, create an empty file in the directory of the Portal with the following command:

sudo touch /var/nexthink/portal/conf/skip-update-backup.conf

Restoring the Portal

To restore the Portal state from a backup file:

  1. Log in to Command Line Interface of the Appliance that hosts the Portal.
  2. Execute the restore script:
    sudo /var/nexthink/portal/backup/restore-portal.sh \
    [-d history_details_directory] <backup-filename>

If you saved the history details of count metrics, use the -d option to specify the directory that holds these files. The history files are expected to have the same name format specified above (history_YYYYMMDD.backup). In the case that you configured the Portal to save the backups and history details to an external share, this name format is changed to portal-<hostname>-history_YYYYMMDD-<timestamp>.backup. To restore the history files with the script, they must have their original name format. To rename all the history detail files stored in an external share, copy them to a directory in the Appliance and then type in the following command:

reg="(history_[0-9]+)"; \
for file in *.backup; do if [[ ${file} =~ ${reg} ]];\
then mv $file ${BASH_REMATCH[1]}.backup;\
fi; done

In the external share, you may have stored a set of details files whose total size exceeds the reserved disk size for history details configured in the Portal. Remember to manually select only the more recent files whose total size is within the configured limit. Use the command du -h in the folder containing the files with history details to get their total size, compare it to the value that you have configured in the Portal data retention, and remove the oldest files in the set until the total size of the files matches or is below the configured value. Failing to do so results in the Portal taking more time to restore history details that must be removed afterwards anyway, because there is no disk space left reserved for them.

The script only restores the database of the Portal, that is, the state of your dashboards. It does not restore the configuration files though, because you may want to keep your current configuration. If you need to restore the configuration of the Portal and that of Nginx:

  1. Stop the Portal:
    sudo systemctl stop nxportal
  2. Stop Nginx:
    sudo systemctl stop nginx
  3. Untar the backup file of the Portal:
    tar -xvzf portal-backup.tgz
  4. Copy the contents of the conf directory to the Portal configuration directory:
    sudo cp -r conf/ /var/nexthink/portal/
  5. Untar the backup file of Nginx:
    tar -xvzf nginx-backup.tgz
  6. Copy the contents of the conf.d and ssl directories to corresponding Nginx directories:
    sudo cp -r conf.d/ /var/nexthink/nxnginx
    sudo cp -r ssl/ /var/nexthink/nxnginx
  7. If you made changes to the default PKI, restore it now.
  8. Restart Nginx:
    sudo systemctl start nginx
  9. Restart the Portal:
    sudo systemctl start nxportal
The operations described in this article should only be performed by a Nexthink Engineer or a Nexthink Certified Partner.

If you need help or assistance, please contact your Nexthink Certified Partner.