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
- EmadCirrostratus
Hi Patrik , How about adding BigIP device status in Load Balancer column as Active/Standby. This will be very helpful in identification in case of cluster.
- dragonflymrCirrostratus
Hi,
Thanks again for great work! I have a question about pool to VS mapping. From demo report page it looks like pool assignment via iRule is detected, is assignment via Local Traffic Policy detected as well?
I assume that when pool is listed as Orphan pool, iRule assignment is as well checked but is Local Traffic Policy checked as well?
Considering improvements I wonder if VIP membership in Traffic Group would be hard to be implemented - at least at the level of data retrieved in json file, not as part of data displayed via GUI?
Piotr
Hi guys
Thank you for the feedback, it's much appreciated.
Emad, I have a plan to allow the user to add multiple F5's.
f501.domain.local f502.domain.local f502.domain.local
In this case the script would only register devices that are active. Would this qualify as a solution to your request?
Piotr, I have been considering supporting both pool connections via Traffic Policies but since we don't use traffic policies at my company I have not added it yet due to lack of experience. Will add it to the official enhancement list though as it's a good idea.
"Considering improvements I wonder if VIP membership in Traffic Group would be hard to be implemented - at least at the level of data retrieved in json file, not as part of data displayed via GUI?"
Do you mean adding an additional column with the traffic group information?
/Patrik
- Piotr_Lewandow1Nimbostratus
Adding column in the GUI would be great, but for now I am looking just for a way to add Traffic Group info to json data about VS. So based on VS IP and VIP assignment to given Traffic Group add property to VS json data like "tg":"name of traffic group"
Hope it make sense.
Piotr
- dragonflymrCirrostratus
There is something wrong with this check for versions higher than 11.x - for example 12.1.1
if($MajorVersion -gt 11 -or ($MajorVersion -eq 11 -and $Minorversion -gt 3))
With this check enabled I am not getting info about SNAT setting. I had to disable it to get correct data.
Piotr
Makes sense regarding the traffic group. Adding that to the backlog.
Regarding the check, could you please try this?
if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3))
/Patrik
- Piotr_Lewandow1Nimbostratus
Thanks, will try this one and get back with results.
Piotr
- dragonflymrCirrostratus
Hi,
Still the same results. Code is now like that:
if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){ $virtualserversourceaddresstranlationtypelist = $f5.LocalLBVirtualServer.get_source_address_translation_type($virtualserverlist) $virtualserversourceaddresssnatpool = $f5.LocalLBVirtualServer.get_source_address_translation_snat_pool($virtualserverlist) }
and
if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){ $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i] $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i] } else { $objTempVirtualServer.sourcexlatetype = "OLDVERSION" $objTempVirtualServer.sourcexlatepool = "OLDVERSION" }
Result is N/A in Bigip versions prior to 11.3
BTW, is there any simple PS code to create report (from CLI) using json file containing listing of all unique values for given parameter, let's say list all unique IPs used by VSs or unique ports etc.?
Piotr
Could you paste the error message you get in terms of the line? And describe and the symptoms? I have not seen an issue regarding this particular line myself.
About your json question. Something like this?
Create new webclient object $WebClient = New-Object System.Net.WebClient Enable integrated authentication $WebClient.UseDefaultCredentials = $true Get the json objects $Virtualservers = ($WebClient.DownloadString("https://loadbalancing.se/bigipreportdemo/json/virtualservers.json")) | ConvertFrom-Json $Virtualservers.ip | select -unique | where-object { $_ -ne "N/A (Orphan pool)" }
/Patrik
- Piotr_Lewandow1Nimbostratus
Hi,
I am not sure what error message? Script is executing without any error. Only problem is that in VS details via GUI I have this result:
If I will remove if(... part an leave just:
$virtualserversourceaddresstranlationtypelist = $f5.LocalLBVirtualServer.get_source_address_translation_type($virtualserverlist) $virtualserversourceaddresssnatpool = $f5.LocalLBVirtualServer.get_source_address_translation_snat_pool($virtualserverlist)
and
$objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i] $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i]
correct data about SNAT is presented in GUI.
Thanks for sample code, I will try it and see if it's what I need.
Piotr