- Reporting Instance Architecture
- Step 1 - Install the Reporting Instance
- Step 2 - Configure the Reporting Instance Settings
- Step 3 - Verify the Monitoring Station can Access the Reporting Instance
- Step 4 - Published Reports Folder changes
- Additional Steps using the Bundled MySQL Datastore for Remote Reporting
Large Uptime Infrastructure Monitor deployments may achieve performance benefits by transferring Uptime Infrastructure Monitor reporting functions to a dedicated reporting instance that only generates and serves reports.
System monitoring involves intensive insertion of data into the Uptime Infrastructure Monitor DataStore and running reports over long date ranges and many systems can require a large number of DataStore requests. Most of the larger Uptime Infrastructure Monitor deployments where this becomes a concern are already using an external database like SQL Server or Oracle, which provides plenty of capacity within the database. So by distributing Uptime Infrastructure Monitor’s activity across two instances, we’re able to use more of this capacity then we could with a single instance.
If you are considering deploying an Uptime Infrastructure Monitor reporting instance in your environment, please contact support beforehand. So that we can help assess if a remote reporting instance will help in your environment.
Reporting Instance Architecture
An Uptime Infrastructure Monitor deployment with a reporting instance has 2 separate Uptime Infrastructure Monitor installations:
- The Monitoring Station, which handles all monitoring, administration, data archiving and report scheduling tasks.
- The reporting instance, which only generates reports.
Both installations will connect to the same database server.
The following graphic illustrates the relationship between the Monitoring Station and reporting instance:
- This article assumes that the Monitoring Station is running and collecting performance data from the systems in your environment, and that your Uptime Infrastructure Monitor datastore is running in an external database like SQL Server or Oracle.
- Users will not be able to login to the user interface of the reporting instance.
- The reporting instance does not require a separate Uptime Infrastructure Monitor license.
- All reports will be saved to the GUI/published directory on the reporting instance.
Step 1 - Install the Reporting Instance
This step assumes that the Monitoring Station is already installed and collecting data. The reporting instance will be installed as a new copy of Uptime Infrastructure Monitor on a separate server.
Before installing the reporting instance, ensure that the server that will host the reporting instance supports the minimum hardware and operating system requirements for an Uptime Infrastructure Monitor Monitoring Station. For more information on sizing and installing a Monitoring Station, see Recommended Monitoring Station Hardware.
Step 2 - Configure the Reporting Instance Settings
To enable a separate Uptime Infrastructure Monitor reporting instance, configuration settings must be changed on the Monitoring Station and additional configuration options must be added to the uptime.conf file on the reporting instance.
On the reporting instance, add the following entry to the uptime.conf file to disable all non-reporting functions:
We also need to scale down the size of the connectionPoolMaximum in the uptime.conf from the default option of 100 to 50:
Also refer to the Mail Server settings on your Monitoring Station and copy the settings into the uptime.conf file on the reporting instance to enable it to send reports via email:
smtpServer=mail.yourserver.com smtpPort=25 smtpUser=username smtpPassword=password smtpSender="uptime Monitoring Station" smtpHeloString=yourserver.com
In the smtpSender entry, you can change Uptime Infrastructure Monitor Monitoring Station to another value such as Uptime Infrastructure Monitor Reports.
Login to the web interface of the Monitoring Station. In the navbar, click Config and then click Remote Reporting in the left side menu. Click the Edit Configuration button to open the following window:
Edit the following fields:
- Reporting Instance Enabled: Check the box.
- Remote Reporting Server: the server host name on which the reporting instance is running.
- Remote Reporting Server Port: the port number on which the reporting instance is listening (default is 9996).
Step 3 - Verify the Monitoring Station can Access the Reporting Instance
After you have set up the Monitoring Station and reporting instance, verify that the two instances can communicate with each other:
- Login to the Uptime Infrastructure Monitor web interface on the Monitoring Station.
- Click Config on the toolbar.
- Click Remote Reporting in the Tree panel.
- Click the Test Configuration button.
A pop-up window will appear. If the reporting instance was configured properly, a message similar to Reporting is running on report_host:9996 will be displayed in the pop-up window. If an error message appears, check the configuration and try again.
Step 4 - Published Reports Folder changes
Now that the remote reporting instance has been successfully setup, and we’ve confirmed that the Monitoring Station is able to push report generation requests to the remote server. We need to make changes to accommodate the change in the ‘Published Reports’ folder. As mentioned in the Architecture section above, all published reports are now saved on the reporting server, instead of locally on the Monitoring Station like before.
That means we have two options for how to handle this change:
- Change the GUI/published/ directory into a mount point for a shared location in your environment that can be accessed from both the Monitoring Station & Remote Reporting Server.
- Add a custom tab on to the ‘My Portal’ tab within Uptime Infrastructure Monitor to direct to the published reports folder on the reporting instance. This can be done by adding the following values in your ‘Uptime configuration’ section on the Config tab.
Note: make sure to replace remote-reports-server with the correct hostname for your reporting server, and you may also need to change tab2 to tab3 etc depending on how many tabs you already have setup for plugins etc.
myportal.custom.tab2.enabled=true myportal.custom.tab2.name=Published Reports myportal.custom.tab2.URL=http://remote-reports-server:9999/published/
Additional Steps using the Bundled MySQL Datastore with Remote Reporting
The above steps for setting up a remote reporting instance were tailored for environments where the Uptime Infrastructure Monitor datastore is running in an external database like Oracle or SQL Server. It is possible to setup a remote reporting instance that connects to the bundled mysql datastore service on the monitoring. The potential performance boost won’t be as large as compared to using an external database. The reason for this that the bundled mysql datastore still runs on the Monitoring Station, and shares resources with the main Uptime Infrastructure Monitor instance.
Using an external database means that there is already a database user available with Read/Write access, as well as a larger database connection pool available. So in order to use the bundled mysql datastore with the reporting instance, we’ll need to take some additional steps to account for this.
- Grant the Uptime Infrastructure Monitor database user the ability to connect from hosts other than the default option of localhost.
- Increase the size of the MySQL database Connection Pool, as by default each Uptime Infrastructure Monitor instance attempts to open 100 database connections, and the mysql database is set to accept a maximum of 110 connections.
Granting the Uptime Infrastructure Monitor database user external access:
- On the Uptime Infrastructure Monitor Monitoring Station, open a terminal or command prompt and navigate to the Uptime Infrastructure Monitor directory <uptime_dir>.
- From within the <uptime_dir> navigate to the mysql/bin directory.
Run the following command to connect to the Uptime Infrastructure Monitor datastore as the root user:
mysql -uroot -puptimerocks
Once connected to the database run the below grant statement. This statement will allow the Uptime Infrastructure Monitor user to connect to the database from any external host, so for additional security you can replace the % symbol with the IP address or hostname of the reporting instance
grant all privileges on uptime.* to "uptime"@"%" identified by "uptime";
Increasing the max_connections on the bundled mysql instance:
- On the Monitoring Station, navigate to the <uptime_dir>/mysql directory and open the my.ini file.
Find the below line "max_connections=110" in the file and change it to:
- After saving these changes, restart the ‘uptime_datastore’ service to pick-up the changes made to the my.ini file.