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. 

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 GroundWork's 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:

  1. Uncomment the following section of the gw8/docker-compose.override.yml file:

    #  jasperserver:
    #    image: groundworkdevelopment/jasper-reports:7.1.1
    #    #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
  2. Save the file. 
  3. Restart GroundWork Monitor:

    docker-compose down
    CODE
    docker-compose up -d
    CODE


    • 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. 

  1. 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.  
  2. Place the tar file on your GroundWork host.
  3. As the GroundWork (e.g., gwos) user, enter the following:

    docker load < jasper-reports.tar
    CODE
  4. Uncomment (or, if you a re 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
        #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. 

  5. Save the file. 

  6. Restart GroundWork: 

    docker-compose down
    CODE
    docker-compose up -d
    CODE


    • 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

  1. In GroundWork Monitor, go to Reports > Custom Reports.
  2.  In the navigation tree expand Reports.
  3. 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.

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:
  1. 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
        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
  2. Save the file.
  3. Restart GroundWork: 

    docker-compose down
    CODE
    docker-compose up -d
    CODE
  4. In Jasper Studio, under Repository Explorer, right click on Servers and select Create JasperReports Server Connection
  5. 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!

Related Resources