This document describes the steps required to upgrade an existing Opsview Monitor 6.x system running on either a single server instance or a distributed Opsview environment (with a remote database and slaves) to the current version of Opsview Monitor.
Depending on the size and complexity of your current Opsview Monitor system, this process may take between a few hours to a full day.
If you are running Opsview Monitor 6.0-EA (Early Adopters), we recommend that you first upgrade to 6.0 AU (Autumn Update); please follow the steps on the Upgrading from Opsview Monitor 6.0 Early Adopter page, and then follow the steps on this page.
- Back-up your Opsview data
- Run deployment process
- Verify processes started
- Upgrade Opspacks
- Apply changes in Opsview Monitor
Minor upgrade information
When performing any upgrade it is advisable to take a backup of your system and therefore this is why the minor upgrade steps mirror that of the main upgrade steps
Ensure you have your activation key for your system - contact Opsview Support if you have any issues.
Please refer to Common Tasks for more information.
Run the below command as root which will back up all database on the server:
# mysqldump -u root -p --add-drop-database --extended-insert --opt --all-databases | gzip -c > /tmp/databases.sql.gz
The MySQL root user password may be found in
Ensure you copy your database dump (
/tmp/databases.sql.gz in the above command) to a safe place.
Upgrading to a new version of Opsview Monitor requires the following steps:
- Add the package repository for the new version of Opsview Monitor
- Install the latest Opsview Deploy (opsview-deploy) package
- Install the latest Opsview Python (opsview-python) package
- Re-run the installation playbooks to upgrade to the new version
Once the upgrade has completed, all hosts managed by Opsview Deploy will have been upgraded to the latest version of Opsview Monitor.
# # This will... # * Configure the Opsview Monitor 6.3 package repository # * Upgrade opsview-deploy to the corresponding version # curl -sLo- https://deploy.opsview.com/6.3 | sudo bash -s -- --only repository,bootstrap
# # This will... # * Execute opsview-deploy to validate and upgrade Opsview # root:~# cd /opt/opsview/deploy root:/opt/opsview/deploy# ./bin/opsview-deploy lib/playbooks/check-deploy.yml root:/opt/opsview/deploy# ./bin/opsview-deploy lib/playbooks/setup-everything.yml
You can also verify the script before running it by comparing the checksum you get with
curl -L https://deploy.opsview.com/6.3 > opsview_deploy sha256sum opsview_deploy
Ensure the returned string matches the following:
You can then run the installation as before:
sudo bash ./opsview_deploy --only repository,bootstrap
Amend your Opsview repository configuration to point to the 6.3 release rather than 6.0/6.1/6.2
Check the contents of
/etc/yum.repos.d/opsview.repo matches the following, paying special attention to the version number specified within the
[opsview] name = Opsview Monitor baseurl = https://downloads.opsview.com/opsview-commercial/6.3/yum/rhel/$releasever/$basearch enabled = yes gpgkey = https://downloads.opsview.com/OPSVIEW-RPM-KEY.asc
Check the contents of
/etc/apt/sources.list.d/opsview.list matches the following, paying special attention to the version number specified within the url. NOTE: replace 'xenial' with your OS name (as per other files within the same directory).
deb https://downloads.opsview.com/opsview-commercial/6.3/apt xenial main
yum makecache fast yum install opsview-deploy
apt-get update apt-get install opsview-deploy
Before running opsview-deploy, we recommend Opsview users to check the following list of items:
|All YAML files follow correct YAML format||opsview_deploy.yml, user_*.yml||Each YAML file is parsed each time opsview-deploy runs|
|All hostnames are FQDNs||opsview_deploy.yml||If Opsview Deploy can't detect the host's domain, the fallback domain 'opsview.local' will be used instead|
|SSH user and SSH port have been set on each host||opsview_deploy.yml||If these aren't specified, the default SSH client configuration will be used instead|
|Any host-specific vars are applied in the host's "vars" in opsview_deploy.yml||opsview_deploy.yml, user_*.yml||Configuration in user_*.yml is applied to all hosts|
|An IP address has been set on each host||opsview_deploy.yml||If no IP address is specified, the deployment host will try to resolve each host every time|
|All necessary ports are allowed on local and remote firewalls||All hosts||Opsview requires various ports for inter-process communication. See: Ports|
|If you have rehoming||user_upgrade_vars.yml||Deploy now configures rehoming automatically. See Rehoming|
|If you have Ignore IP in Authentication Cookie enabled||user_upgrade_vars.yml||Ignore IP in Authentication Cookie is now controlled in Deploy. See Rehoming|
|Webserver HTTP/HTTPS preference declared||user_vars.yml||In Opsview 6, HTTPS is enabled by default, to enforce HTTP-only then you need to set opsview_webserver_use_ssl: False. See opsview-web-app|
For example (opsview_deploy.yml):
--- orchestrator_hosts: # Use an FQDN here my-host.net.local: # Ensure that an IP address is specified ip: 10.2.0.1 # Set the remote user for SSH (if not default of 'root') ssh_user: cloud-user # Set the remote port for SSH (if not default of port 22) ssh_port: 9022 # Additional host-specific vars vars: # Path to SSH private key ansible_ssh_private_key_file: /path/to/ssh/private/key
Opsview Deploy can also look for (and fix some) issues automatically. Before executing 'setup-hosts.yml' or 'setup-everything.yml', run:
root:~# cd /opt/opsview/deploy root:/opt/opsview/deploy# ./bin/opsview-deploy lib/playbooks/check-deploy.yml
If any potential issues are detected, a "REQUIRED ACTION RECAP" will be added to the output when the play finishes.
The automatic checks look for:
|Check||Notes or Limitations||Severity|
|Deprecated variables||Checks for: opsview_domain, opsview_manage_etc_hosts||MEDIUM|
|Connectivity to EMS server||No automatic detection of EMS URL in opsview.conf overrides||HIGH|
|Connectivity to Opsview repository||No automatic detection of overridden repository URL(s)||HIGH|
|Connectivity between remote hosts||Only includes LoadBalancer ports. Erlang distribution ports, for example, are not checked||MEDIUM|
|FIPS crypto enabled||Checks value of /proc/sys/crypto/fips_enabled||HIGH|
|SELinux enabled||SELinux will be set to permissive mode later on in the process by setup-hosts.yml, if necessary||LOW|
|Unexpected umask||Checks umask in /bin/bash for 'root' and 'nobody' users. Expects either 0022 or 0002||LOW|
|Unexpected STDOUT starting shells||Checks for any data on STDOUT when running ||LOW|
|Availability of SUDO||Checks whether Ansible can escalate permissions (using sudo)||HIGH|
When a check is failed, an 'Action' is generated. Each of these actions is formatted and displayed when the play finishes and, at the end of the output, sorted by their severity.
The severity levels are:
|HIGH||Will certainly prevent Opsview from installing or operating correctly|
|MEDIUM||May prevent Opsview from installing or operating correctly|
|LOW||Unlikely to cause issues but may contain useful information|
By default, the check_deploy role will fail if any actions are generated MEDIUM or HIGH severity. To modify this behaviour, set the following in
# Actions at this severity or higher will result in a failure at the end of the role. # HIGH | MEDIUM | LOW | NONE check_action_fail_severity: MEDIUM
The following example shows the 2 MEDIUM severity issues generated after executing check-deploy playbook
REQUIRED ACTION RECAP ************************************************************************************************************************************************************************************************************************** [MEDIUM -> my-host] Deprecated variable: opsview_domain | To set the host's domain, configure an FQDN in opsview_deploy.yml. | | For example: | | >> opsview-host.my-domain.com: | >> ip: 184.108.40.206 | | Alternatively, you can set the domain globally by adding opsview_host_domain to your user_*.yml: | | >> opsview_host_domain: my-domain.com [MEDIUM -> my-host] Deprecated variable: opsview_manage_etc_hosts | To configure /etc/hosts, add opsview_host_update_etc_hosts to your user_*.yml: | | >> opsview_host_update_etc_hosts: true | | The options are: | - true Add all hosts to /etc/hosts | - auto Add any hosts which cannot be resolved to /etc/hosts | - false Do not update /etc/hosts Thursday 21 February 2019 17:27:31 +0000 (0:00:01.060) 0:00:01.181 ***** =============================================================================== check_deploy : Check deprecated vars in user configuration ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1.06s check_deploy : Check for 'become: yes' -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.03s *** [PLAYBOOK EXECUTION SUCCESS] **********
cd /opt/opsview/deploy ./bin/opsview-deploy lib/playbooks/check-deploy.yml ./bin/opsview-deploy lib/playbooks/setup-everything.yml
To verify that all Opsview processes are running, run:
If the opsview-agent process is not running after deployment, run:
/etc/init.d/opsview-agent stop /etc/init.d/opsview-agent start /opt/opsview/watchdog/bin/opsview-monit start opsview-agent
If watchdog is not running after deployment run:
Run the following as the "opsview" user:
tar -zcvf /var/tmp/`date +%F-%R`_opspack.bak.tar.gz /opt/opsview/monitoringscripts/opspacks/* /opt/opsview/coreutils/bin/install_all_opspacks -f -d /opt/opsview/monitoringscripts/opspacks
This may take a moment to run.
In the Opsview application UI, navigate to "Configuration" - "Apply Changes", and run "Apply Changes".
As part of the upgrade to this Opsview Monitor release, the JasperReports Server part of the Reporting Module has been upgraded from 5.1.1 to 7.1.1. With this upgrade, the file
js.quartz.properties will be replaced, overwriting any contents in it. This file is used to configure the emailing capabilities of the Reporting Module and will need reconfiguring if it was previously configured.
To edit this file, open
/opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/js.quartz.properties in a text editor and edit the default "report.scheduler.mail.sender." values to match your requirements. See Reports - optional module for more details.
Updated about 1 year ago