About Custom Reports
GroundWork Monitor itself has native SLA reports, but doesn't have a generalized report server integrated. However, we support a free, containerized version of the Jasper Reports server. When you enable the Jasper server download, you can create custom reports from monitoring data you collect with GroundWork. You can also connect to the GroundWork server using your own reporting engine or installation of Jasper reports.
We start you off with a few very basic availability, event, downtime, and performance reports suitable as customizable templates for your business reporting. If you already know how to use SQL and Jasper Studio, you will be able to put those skills to work and make custom reports with virtually any data in the GroundWork foundation, archive, influxdb, and slareport databases. The existing templated reports provide you with sophisticated examples of how to do this.
Reports vs Dashboards
Are you sure you need a report though? After all, GroundWork can give you filtered event summaries, displays of systems in various states, availability bars over different time periods, and performance graphs all on the fly, in real time. Reports, by contrast, will require at least a day to generate data via the archive process, and can't report what's happening right now. Dashboards can, and you will probably want to use them more than reports, especially at first while you are still getting monitoring set up.
On the plus side, reports (once defined) can be scheduled, printed as PDFs, and even emailed to defined contacts using Jasper server. While they are only available for data up to yesterday, the archive keeps data for 13 months, so you can report on things up to a year old. They have their uses.
Installing Jasper Server Container
Ok, if you want to use the optional free Jasper Server container, here's what you need to do.
Using Docker Hub
You can use the free Docker repository to automatically pull the latest Jasper Server container from GroundWork from the public groundworkdevelopment/jasper-reports repository on Docker Hub. While you could integrate any Jasper Server container with GroundWork, this one has been tested and fits right in with minimal effort. To install it:
Uncomment the following section of the gw8/docker-compose.override.yml file:
# jasperserver: # image: groundworkdevelopment/jasper-reports:7.1.1-20220609 # #ports: # #- "8080:8080" # volumes: # - jasperserver:/jasperserver # - ulg:/usr/local/groundwork/config/ # depends_on: # - pg # healthcheck: # test: wget --spider http://jasperserver:8080/jasperserver/login.html || exit 1 # interval: 10s # timeout: 3s # retries: 3 # start_period: 10s
- Save the file.
Restart GroundWork Monitor:
docker-compose up -dCODE
The container will download and start automatically. You will need to wait a few minutes for the Jasper Server to start after the GroundWork server starts. In some cases it may take up to 10 minutes to become available, or, in rare cases, it may require a second restart of GroundWork.
Using Tar Archive
There are some installations where you either can't or don't want to open Internet access from your GroundWork server to pull containers from Docker Hub. If you are in that situation, here is an alternative.
- Download the jasper-reports.tar archive from the Downloads page. It's a bit large, almost 2GB, so leave some time for it to complete.
- Place the tar file on your GroundWork host.
As the GroundWork (e.g., gwos) user, enter the following:
docker load < jasper-reports-7.1.1-20220609.tar.gzCODE
Uncomment (or, if you are upgrading and don't have this section commented out, add) the following section of the gw8/docker-compose.override.yml file:
jasperserver: image: groundworkdevelopment/jasper-reports:7.1.1-20220609 #ports: #- "8080:8080" volumes: - jasperserver:/jasperserver - ulg:/usr/local/groundwork/config/ depends_on: - pg healthcheck: test: wget --spider http://jasperserver:8080/jasperserver/login.html || exit 1 interval: 10s timeout: 3s retries: 3 start_period: 10s
Make sure to align the indentation so that the jasperserver: line is at the same indent as any other entries in the services: section, since this is a yaml file.
Save the file.
docker-compose up -dCODE
You will need to wait a few minutes for the Jasper server to start after the GroundWork server starts. In some cases it may take up to 10 minutes to become available, or, in rare cases, it may require a second restart of GroundWork.
Accessing Default Reports
- In GroundWork Monitor, go to Reports > Custom Reports.
- In the navigation tree expand Reports.
- Select the type of report you wish to run and enter input:
- Availability over time: Host, host group, host service, service group availability over a specified time.
- Downtimes: Host downtimes over a specified time.
- Events over time: Event reports for host, host groups, service or service group.
- Notifications: Notification reports for host group, host, service group or service.
- Performance: Host service performance.
Accessing Reports as a User
A situation may arise where a GroundWork user should not be given full Administrator access in the Jasper Reports UI. This is supported and can be achieved by creating and assigning the GroundWork role, "Jasper-Operator".
While logged in as a Groundwork administrator, perform the following steps:
- Go to Administration > Roles.
- Create a role named Jasper-Operator.
- Then, go to Administration > Users.
Create new user and assign this role, or modify existing user to have this new role.
Users with this role attached will be given read-only access to the Jasper reports dashboard, unless they also have an Administrator role.
This functionality only works with the downloaded optional containerized Jasper report server. If you use your own, it may or may not work as you expect without adjustment.
Customizing Reports using Jasper Studio
You can install Jasper Studio 6.4.1 on your workstation, which is compatible with Jasper Server 7.1.1 (currently the version we have in the container described above). Of course, you can update that container as needed. No need to wait for us, though we do rev the free containers around semi-annually. Connecting to the GroundWork server involves opening a port, which you should do only if it doesn't violate your security policies, and should be carefully firewalled to allow only the workstation(s) you wish to run Jasper Studio from.
To set up a connection from Jasper Studio to your GroundWork server:
Edit the gw8/docker-compose.override.yml file, and uncomment the lines:
ports: - "8080:8080"
The jasperserver: section should look like this:
jasperserver: image: groundworkdevelopment/jasper-reports:7.1.1-20220609 ports: - "8080:8080" volumes: - jasperserver:/jasperserver - ulg:/usr/local/groundwork/config/ depends_on: - pg healthcheck: test: wget --spider http://jasperserver:8080/jasperserver/login.html || exit 1 interval: 10s timeout: 3s retries: 3 start_period: 10s
Optionally (and only if you need to develop your own reports) also uncomment the line to expose the postgres database port:
pg: ports: - 5432:5432
Doing this exposes the database to all hosts on the network. You will want to firewall this port to allow access from hosts that you want only, to ensure no one without authorization can read or update your monitoring database.
- Save the file.
docker-compose up -dCODE
- In Jasper Studio, under Repository Explorer, right click on Servers and select Create JasperReports Server Connection.
- In the resulting dialog, give the URL of your GroundWork server, port 8080 like the example supplied. Use a username and password for a user with the Admin role. That's it!