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
- jba3126
Cirrostratus
I'm ashamed to admit, but this has helped us ID 163 orphaned pools across the enterprise, so we have found it useful. Ideally we shouldn't have scenarios this extreme; however it has helped us quickly ID loads of clean up work. Keep up the good work and please feel free to share how we can help support you guys.
Wanted to add a side note: Only issue we found with the feature was it did ID our High Availability -> Fail-Safe -> Gateway Pools as Orphaned and to some extent it's fair as they are not attached to a virtual, but are in use.
Regards,
Jeff
- TimRiker
Cirrocumulus
163? Wow. (runs and hides under his 3000+ reported orphan pools)
I don't think the script is catching all pools. For example if a pool is selected through a data group lookup, I don't think that pool is associated with the virtual host. I'll do some more testing on this.
- esloan
Nimbostratus
@TimRiker LOL!! :)
- jba3126
Cirrostratus
Ah that makes sense. Interestingly enough it does pickup our pool members that are associated by an iRule that does pool selection.
Thank you Tim for all your hard work. I recently wrote a plugin to BigIPReport at work that displays Orphan pools, monitors and iRules. What if we moved all this to a separate section in the console?
I think what Tim was after was to reduce logic in the table generation in terms of the orphan pools and keep the virtual servers json file clean and this could accomplish that.
What do you think?
Jeff, could you share that iRule with me?
/Patrik
- TimRiker
Cirrocumulus
Thank you Patrik for all your hard work! I've packaged up my changes into a release called 5.1.0. Download available from my git repo here:
https://github.com/timriker/BigIPReport/raw/master/Releases/BigipReport-5.1.0.zip
This release greatly reduces the loading time in the browser. Our giant setup used to take over 5 minutes to load in the browser, and with these changes, loads in about 10 seconds. Re-copy all resource files when you upgrade or your table will be empty.
More info on the pull request here:
https://github.com/epacke/BigIPReport/pull/93
Diff, if anyone is interested using w=1 to ignore whitespace:
https://github.com/epacke/BigIPReport/pull/93/files?w=1
Changes:
- uses datatables in memory data source to render in client
- "orphan pools" are exported in
virtualservers.json - "orphan pools" show with pool name in virtual server field
- ASM types are in
asmpolicies.json - made the logo transparent (unrelated)
- relative paths for resource loading from javascript
- use Map() for pool lookups to speed up loading
- bumped to 5.1.0 version and made a release package
- disabled console resizing
The only thing I've found not working is the NATFile support. Are people using this? If so, what should happen with the browser side rendering? I could export the NAT table and use it on the client, or just mangle the IPs in the existing json files. I'm not using that feature, so asking for some feedback.
- Mike_Perez_6161
Nimbostratus
Thanks Tim. I use the NATFile support and it is being heavily used while we go through our Data Center consolidation projects. Let me see how it acts in the new 5.1.0 version. Will get back to you with results. Will also work a deployment with w=1 to check results.
- Mike_Perez_6161
Nimbostratus
NAT entries should look like this. Example with and without Public IP
I think we'll have to re-do the NAT file support to use Json format. Maybe convert the nat file to json during report generation. Or ask the user to write the NAT file as Json directly to the json folder of the report.
/Patrik
- jba3126
Cirrostratus
Patrik, I hope my comment was clear. I was actually complimenting the fact that while there is only one pool attached to the VIP, the report shows both associated and selected via the iRule.
iRule when HTTP_REQUEST { if { [HTTP::uri] starts_with "/insight" } { pool Insight-UAT-8050 } else { pool Tableau-UAT-8054 } }
tmsh list ltm virtual AI-UAT-INET-443 | grep poolpool Tableau-UAT-8054The cool part is both the 8054 and 8050 pools are displayed!
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)