BigIP Report Old
Problem this snippet solves:
This codeshare has been deprecated due to a hosting platform corruption. I have moved code and conversation to a new record (on the same original URL) https://devcentral.f5.com/s/articles/bigip-report
can be Overview
This is a script which will generate a report of the BigIP LTM configuration on all your load balancers making it easy to find information and get a comprehensive overview of virtual servers and pools connected to them.
This information is used to relay information to our NOC and developers to give them insight in where things are located and to be able to plan patching and deploys. I also use it myself as a quick way get information or gather data used as a foundation for RFC's, ie get a list of all external virtual servers without compression profiles.
The script has been running on 13 pairs of load balancers, indexing over 1200 virtual servers for several years now and the report is widely used across the company and by many companies and governments across the world.
It's easy to setup and use and only requires guest permissions on your devices.
Demo/Preview
Please note that it takes time to make these so sometimes they're a bit outdated and they only cover one HA pair. However, they still serve the purpose of showing what you can expect from the report.
Interactive demo
http://loadbalancing.se/bigipreportdemo/
Screen shots
The main report:
The device overview:
Certificate details:
How to use this snippet:
This codeshare has been deprecated due to a hosting platform corruption. I have moved code and conversation to a new record (on the same original URL) https://devcentral.f5.com/s/articles/bigip-report
Installation instructions
BigipReport REST
This is the only branch we're updating since middle of 2020 and it supports 12.x and upwards (maybe even 11.6).
Download: https://loadbalancing.se/downloads/bigipreport-v5.5.4.zip
Documentation, installation instructions and troubleshooting: https://loadbalancing.se/bigipreport-rest/
Docker support
This will be the recommended way of running bigipreport in the near future. It's still undergoing testing but it's looking really good so far.
https://loadbalancing.se/2021/01/05/running-bigipreport-on-docker/
BigipReport (Legacy)
Older version of the report that only runs on Windows and is depending on a Powershell plugin originally written by Joe Pruitt (F5).
BigipReport (Stable):
https://loadbalancing.se/downloads/bigipreport-5.3.1.zip
BigipReport (BETA): https://loadbalancing.se/downloads/bigipreport-5.4.0-beta.zip
iControl Snapin: https://loadbalancing.se/downloads/f5-icontrol.zip
Documentation and installation instructions:
https://loadbalancing.se/bigip-report/
Upgrade instructions
Protect the report using APM and active directory
Written by DevCentral member Shann_P:
https://loadbalancing.se/2018/04/08/protecting-bigip-report-behind-an-apm-by-shannon-poole/
Got issues/problems/feedback?
Still have issues? Drop a comment below. We usually reply quite fast. Any bugs found, issues detected or ideas contributed makes the report better for everyone, so it's always appreciated.
---
Also trying out a Discord channel now. You're welcome to hang out with us there:
Code :
85931,86647,90730
Tested this on version:
13.0
974 Comments
- TimRiker
Cirrocumulus
Patrik
Thank you for your reply!
I'm not sure what you mean by "where did you get these recommendations?" Do you mean my HTML recommendations? Those are just from HTML 5 standards. For example, try running the output html through the W3C Validator and you will see issues.
We have multiple F5's that we administer. On our simpler systems, the BIG-IP Report works fine. On the larger systems, the report runs through correctly, but does not load. The progress bar goes through to 99% but the report never displays. The json files look fine. If I load them directly in Chrome using a json formatter plugin, they parse just fine. Here are the json numbers for a failing report:
- rules - 1450 items
- pools - 1789 items
- virtualservers - 1710 items
The report html that fails to display is 10080759 bytes in size on my last run.
- TimRiker
Cirrocumulus
Patrik I've changed all src= references removing the explicit dot slash in front of json, images, etc. Just trivial byte size savings.
I removed whitespace from trailing lines. ie: lines with just multiple tabs, became empty lines. I also converted spaces to tabs in a number of sections. This cleans up the source view, and also cleans up the output report.
line 1726 I added an alt TextStatus to the Translate-Member-Status return to help with HTML 5 accessibility recommendations and to reduce the warnings on the W3C validator.
- TimRiker
Cirrocumulus
Patrik In order to get my failing index.html to pass through the W3C validator I reduce its side by removing leading, trailing, and other whitespace from my html first. This reduces it to about 8M instead of 10M.
All other built in img src references should really have an alt something added to them. I added most of those.
The javascript console in Chrome does NOT show an error for our example that does not display. I do see three deprecation warnings about chrome loadTimes. This warning is a bit odd, because I don't see you directly using it anywhere.
Thanks again for the reply! And thank you so much for the useful too! I can't really send you my failing html or json files due to information they contain. I'm happy to test any suggestions you might have. I'm trying to walk through the javascript now to see if I can determine what is failing on load.
Sorry for the multiple posts. The SPAM checking refused to let me post all this as a single note. :(
- TimRiker
Cirrocumulus
Patrik I cloned the github repo, redid and committed my local changes, and submitted a pull request. I've still not found why I'm failing, this is just cleanup.
The output is much closer to passing W3C validation.
I notice that "edit" links are broken to orphan pools as they have spaces in the url.
Thanks again!
Hi Tim!
Thanks for the contributions!
To troubleshoot I think we'd need to have a Skype call. It'd also be great if you could separate the changes made into smaller portions to make the review process simpler and making it easier to spot bugs.
I can see that you've removed some trailing and heading white space for instance. Maybe these could be in a separate PR?
/Patrik
- TimRiker
Cirrocumulus
Redoing my commits and splitting them up. The first is the great whitespace cleanup.
My changes are after the whitespace cleanup. I'm having trouble getting them to apply against the original.
Would you consider applying the whitespace pull request first?
Hi Rbennet
Sorry for the late reply, I've been a bit busy.
Did you manage to get the report up and running without the status VIPs? That's a good first step before braving this slightly more advanced feature.
The bigipreport_pool_status.tcl file is just a text file that contains an iRule used to serve pool real-time pool statuses from each load balancer. What do you mean that it prints the XML and not HTML?
If we fail here I'd be happy to help out in a Skype session. A Youtube video might be possible in the future but to be honest I'm not good at editing videos... :)
/Patrik
- Version 5.0.8
- The report now uses the .NET string builder and it sped up the generation a lot. Big thanks to Tim Riker for that idea!
- White space clean-up (Contributed by Tim Riker)
- Some HTML best practices (Contributed by Tim Riker)
/Patrik
It's a bit too late for me here in Stockholm. Suggest a time tomorrow?
/Patrik
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)