Docker

If you are unfamiliar with Docker this might seem like a daunting task but trust me, it’s the easiest way to get up and running.

Please do not that this is still in the testing phase and this post is continously updated. Feedback much welcome.

Clone the repository and prepare a user

  1. Get a Linux server with a fairly modern OS
  2. Install Docker
  3. Add a local user for bigipreport
sudo adduser bigipreport --shell=/bin/false
  1. Create a directory, clone the latest version of BigIPReport and set the bigipreport user as owner:
sudo mkdir -p /opt/bigipreport
cd /opt/bigipreport
sudo git clone https://github.com/net-utilities/BigIPReport.git .
sudo chown -R bigipreport:bigipreport /opt/bigipreport
sudo chmod 755 /opt/bigipreport/underlay

Start the frontend

Easiest part to do of them all:

sudo docker run -d \
  -v "/opt/bigipreport/underlay:/usr/share/nginx/html:ro" \
  --restart unless-stopped \
  -p 8080:80 bigipreport/frontend

This runs an mounts the report root to a pre-configured nginx container with compression, support for brotli and microcaching to the nginx config.

Configure and test the data collection

Edit the configuration file /opt/bigipreport/bigipreport.xml and set the Report Root to exactly underlay/ and leave the default document as is.

Then configure the rest of the mandatory configuration (Credentials, Device groups. Look at the examples in the configuration file if unsure. Start with one cluster and add the rest when you have tested the functionality.

Run the container to test your configuration:

sudo docker run --rm -v "/opt/bigipreport:/bigipreport/" bigipreport/data-collector

Verifyt the script log and look for errors. If all went fine you can visit http://<ip>:8080 on your server.

If the container collected the data and the report looks fine you can add more clusters to the device group config and run the container again until you’re happy. Take a note of how long the longest run took, we’ll need that soon.

If you ran into trouble, try us at Devcentral or Discord.

Schedule a cron job

Create a cron job to run the script at your chosen interval by creating /etc/cron.d/bigireport and putting this content in it:

0 * * * * root /usr/bin/docker run -d --rm -v "/opt/bigipreport:/bigipreport/" bigipreport/data-collector

The example above runs the report once per hour.

I’d advise you to change this interval as often as you can while still letting the job finish (this is where the longest report data collection from before comes in).

To make sense of the cron schedule syntax I’d recommend this page.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *