Opsview Knowledge Center

Reports

Learn how to install Opsview Monitor Reporting module

In this section, we offer step-by-step instructions providing you with specific guidance to successfully install the Opsview Monitor Reports software module (see Note). It’s important that you have reviewed section Prerequisites to ensure that any software and hardware dependencies, along with any limitations are fully understood prior to installation.

Note: We recommend that you use the Automated Installation method to install Opsview Monitor.

Creating the Opsview User and Group

In this section, we show you how to create the Opsview Monitor User and Group for your Operating System (OS) distribution. In the examples below we provide commands for each of the supported operating systems:

Debian/Ubuntu

addgroup --system opsview
adduser --system --group --home /var/lib/opsview --shell /bin/bash --quiet opsview

RHEL/CentOS

groupadd opsview
adduser -g opsview --home-dir /var/lib/opsview --shell /bin/bash opsview

SLES

groupadd opsview
useradd -g opsview -d /var/lib/opsview -s /bin/bash opsview

Package Installation

Opsview Module packages are located in the same repository as the Opsview Monitor software. In this section, we provide step-by-step guidance, which assumes that the repository has been correctly set up. The packages primarily depend on MySQL and Java for which an automated installation of the database will occur, along with starting up the server.

Note: Warning messages will alert you to manually set up the database, if the automated process fails.

Automated Installation

You can choose to install Opsview Monitor modules individually or together by using the 'm flag in the command line, as shown in the example below. You will be prompted to install each module individually, if you have a subscription for them.

You can choose to install modules using the 'm flag, as below:

curl 'L http://install.opsview.com | sudo bash 's -- -m

Or by using wget:

wget -O - http://install.opsview.com | sudo bash 's -- -m

Debian/Ubuntu

In the example below, we show you the command used to install the 'Reports' module for both a Debian and Ubuntu distribution. You need to run these commands as root.

apt-get install opsview-reporting-module opsview-jasper

RHEL/CentOS

In the example below, we show you the command used to install the 'Reports' module for both a Red Hat and CentOS distribution.

yum install opsview-reporting-module opsview-jasper

Also, You may need to install fonts using the comamnd shown in the example below. Run this command as root.

yum install dejavu-lgc* liberation-fonts xorg-x11-fonts*

SLES

In the example below, we show you the command used to install the 'Reports' module for the SLES distribution. You need to run these commands as root.

zypper refresh
zypper install opsview-reporting-module opsview-jasper

Configuration

In this section, we describe the steps needed to set up and configure your Opsview Reports module ' you must run any commands as the opsview user; switch user by using the command below:

su - opsview

Manually Setting up the Database

If, during the 'Reports' module installation process, the database was not automatically set up, the below commands show how to do this manually.

First, copy the default configuration file and set the variables accordingly; select a random password, as shown below:

su - opsview
cd /opt/opsview/jasper/etc
cp jasper.defaults jasper.conf
vi jasper.conf # set the password

Next, use

/opt/opsview/jasper/bin/db_mysql -u root 'p<RANDOM PASSWORD>

to set up the mysql permissions, or you can do this manually, as shown below:

mysql> GRANT ALL ON jasperserver.* TO jasperdb@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT ALL ON jasperserver.* TO jasperdb@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

You should now test the connection is working:

mysql -u jasperdb -ppassword jasperserver

If you receive an error message (see example below), then you may have 'anonymous access' enabled on the database. You should delete the 'anonymous access' setting by following instructions that are available from MySQL Server.

mysql> SELECT Host, User FROM mysql.user WHERE User='';
+-------------------------------+------+
|Host                          | User |
+-------------------------------+------+
|localhost                     |      |
+-------------------------------+------+
mysql> drop user ''@'localhost';

Now create the database, as shown below:

/opt/opsview/jasper/bin/db_jasper db_install

After the databases are created, populate them with default reports:

/opt/opsview/jasper/installer/postinstall

Finally, start the JasperServer:

/etc/init.d/opsview-reporting-module start

Database Timezone Support

In this section, we describe the steps needed to enable the timezone setting in MySQL.

Load MySQL With Information About All The Different Time Zones

Firstly, you will need to load MySQL with information about all the different time zone.

If you do not specify a time zone when running a report, then reports that are created will default to the time zone of the Opsview Data Warehouse (ODW) server.

In Linux, FreeBSD, Solaris and Mac OSX the zoneinfo directory is located in /usr/share/zoneinfo by default. However, if your system doesn't have this directory, you will need to download it. In the example below, we show you how to locate the zoneinfo directory.

whereis zoneinfo

To load all the available time zones 'tz_files' that corresponds with a time zone 'tz_name,' you will need to invoke mysql_tzinfo_to_sql, as shown below:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

In the example below, we show a warning message that may be seen if a time zone has failed to load into MySQL. Once mysql_tzinfo_to_sql has finished, you will need to restart MySQL.

Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.

In the following list we provide sample time zones. In fact, all supported time zones can be found in the MySQL database by running the command as shown below. Note, If an incorrect time zone is specified, then your report will not match any data.

mysql> select Name from mysql.time_zone_name;
  • UTC
  • Europe/London
  • Europe/Berlin
  • Europe/Paris
  • Europe/Rome
  • America/New_York
  • America/Los_Angeles
  • America/Mexico_City
  • America/Detroit
  • Asia/Tokyo
  • Asia/Shanghai
  • Asia/Singapore
  • Australia/Sydney
  • Australia/Perth
  • Africa/Johannesburg

Java Error: Invalid time zone

You may receive a Java error implying that 'The time zone is not uniquely determined'. For example, if you have set the ODW server to be in Australia/Melbourne, that is, Eastern Standard Time (EST) then this can easily be confused with an American time zone. As such, useLegacyDatetimeCode=false in the ODW connection parameters should be removed.

Invalid or Incorrect Results When Using Time Zone Parameter

You will need to ensure that there is no typo in the report parameter and that the report uses a valid time zone, as shown below:

mysql> SELECT CONVERT_TZ(NOW(), @@session.time_zone, 'Europe/Athens') AS time_in_athens FROM dual;
+---------------------+
| time_in_athens      |
+---------------------+
| 2013-03-22 18:27:13 |
+---------------------+

In the example below,

we show an instance where an invalid timezone has been defined:

mysql> SELECT CONVERT_TZ(NOW(), @@session.time_zone, 'Europe/Atens') AS
misspelled_athens FROM dual;
+-------------------+
|misspelled_athens |
+-------------------+
|NULL              |
+-------------------+

Logging into JasperServer

Opsview can use a ‘single sign-on’ method and, as such, a correctly authenticated user with the REPORTUSER access will be created in JasperServer. If the user also has REPORTADMIN, then they will receive additional privileges, specifically ROLE_ADMINISTRATOR in JasperServer.

A user that previously had ROLE_ADMINISTRATOR privileges will still retain that role even if REPORTADMIN is removed from them since the user databases are not synchronised. In this instance, a JasperServer administrative user will have to manually remove the role if required.

Adding the ODW Connection

In this section, the following steps describe how you can configure the ODW database connection in the Reports module.

To begin, Obtain the password for ODW from /usr/local/nagios/etc/opsview.conf.

Next, Login to the JasperServer with an account that has REPORTADMIN privileges and click 'View > Repository'. Finally, In the Folders section on the left, as shown in the screenshot below, click the Data Sources folder:

Next, right click on 'ODW' and click 'Edit' which will load the configuration window for the ODW data source. This is how the reports module can retrieve and report on the historical data that is stored within the Opsview Data Warehouse. In order to allow the Reports module to connect, you need to provide it with valid credentials - therefore here you should enter the password you retrieved in step one (opsview.conf):

After entering your password into the 'Password:' field, click 'Test Connection'. If all it configured correctly, you should see the message 'Connection passed', as above.

Finally, click Save to continue.

Setting up Emails

Emails are sent via the local machine (where the Reports module is installed) by default and you should verify with mailx that the current email system works.

The email server configuration is stored in the file

/opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/js.quartz.properties

If you change this file, then you will need to restart JasperServer.

If you experience any issues, you should review the logs that is located in

/opt/opsview/jasper/apache-tomcat/webapps/jasperserver/WEB-INF/logs/jasperserver.log

Reports

Learn how to install Opsview Monitor Reporting module