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
- Mike_Perez_6161
Nimbostratus
I will add the brackets to the file to get it to load.
my log file show up as wingdings after the first line.
2018-04-3020:09:53ERRORNo error mail reporting enabled/configured ?????????????????????????????????? ?????????????????????????????????? ??????????????????????????????????
- TimRiker
Cirrocumulus
I can't get the files to come up empty. Are you sure you ran the new script to get the
andasmpolicies.json
files?nat.jsonI have seen the log issue. The truncating code seems to fill the file with garbage at the end.
- Mike_Perez_6161
Nimbostratus
Yes I am running the new script. Nat.json looks great
- Mike_Perez_6161
Nimbostratus
re-ran the script, each time it recreates the asmpolicies.json file with 0kb and no contents.
- TimRiker
Cirrocumulus
Added an explicit export for empty asmpolicies.json
I just noticed that devicetable.json is wrong if there is only one entry. I'll get that tomorrow.
https://github.com/timriker/BigIPReport/raw/master/Releases/BigipReport-5.1.2.zip
- Abed_AL-R
Cirrostratus
Hi
In the 5.0.6 still showing : "The report was generated on MNOOBMNG02 using BigIP Report version 5.0.4. Script started at 05/02/2018 09:06:46 and took 1 minutes to finish."
Is it OK just ot edit the ps file , line: $Global:ScriptVersion = "5.0.4" to $Global:ScriptVersion = "5.0.6" ?
- TimRiker
Cirrocumulus
We currently don't handle datagroup pool lookups. Something like this:
when HTTP_REQUEST { pool [class match -value [string tolower [HTTP::host]] equals dg_ptest] }and then a datagroup like this:
a.example.com := pool_a.example.com b.example.com := pool_b.example.comThoughts, Patrik? Does anyone else do shared vhosts like this?
Our rule is much larger than this to handle errors, etc. but this is the simplified view.
We've gotten feature requests regarding this before so there's more people doing it for sure. Just never prioritized it.
My thought was to parse data group list values and match them against pool names in the data group list partition or the common partition. Then add a property containing an array to the data group list object.
Also, the Powershell script would have to parse for data group lists in the iRules and add a property named datagrouplists to the irules object. Does that make sense?
/Patrik
- TimRiker
Cirrocumulus
If we load pools before datagroups, then while processing string datagroups we could match the value against an existing pool name on that loadbalancer.
Ideally this adds those pools to each vs that uses that irule. In practice for us, this is generally only one vs, but I suppose there could be more than one.
virtualservers.json should include the datagroups and pool dependancies at runtime so that the linked pools can get rendered. This means moving the irule processing over to the server side.
It would be awesome to see iRules reference virtual servers that use them someplace. Same for datagroups, if they showed iRules that used them. It would be awesome to be able to browse around objects and where they are used and what they use.
Agreed, a back-tracking function would be really useful. Good idea!
Regarding the data structure:
The end goal here should be to grab all the pools that is directly, or indirectly (via iRules, or data-group lists) associated with a virtual server right? Then, perhaps part of the iRule processing could be to:
- Scan the iRule for data group lists.
- For each data group list found, add any pools associated with it to the irules.pools list.
- Then the old VIP logic can be maintained.
Then technically the pools associated with an iRule is still "correct". What do you think?
Agree about the iRule processing being done server side.
/Patrik
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)