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
You can pass the xml file on the command line. I keep one directory with the scripts in it, and run against multiple xml files to generate different reports.
- TimRiker
Cirrocumulus
New release. I'd appreciate some feedback. Particularly interested in my moving the console menu to the main screen. Is that useful? It helps the new iRules popups. Do you like having all iRules in the report or not? Should we add all data groups too? Changes in this release:
- moves the previous console menu down to the main screen
- add all irules to the irules table
- Pool status is exported and displayed
- more items have details and edit links
- upgraded jQuery and Datatables
- minor Edge ES6 fix
- ErrorReportAnyway to generate report even when there are errors
https://github.com/timriker/BigIPReport/raw/master/Releases/BigIPReport-5.1.4.zip
Remember to replace your underlay files, and run the new script so that the new data elements in pools are built. Config changes are minor. Add ErrorReportAnyway if you want, and remove your iRules export list as everything is exported now.
I prefer it under the console section since that information is mostly needed by admins and not the "regular" users. Besides, it saves real estate on smaller screens while being able to keep the column toggles.
/Patrik
Need to report a problem too. Loadbalancers.json has to be written as an array even if there's only one load balancer. As it is now it's defined as an object.
/Patrik
Also get this after manually defining loadbalancers.json as an array:
jquery.min.js:2 jQuery.Deferred exception: Cannot read property 'columns' of undefined TypeError: Cannot read property 'columns' of undefined at populateSearchParameters (http://linuxmgmt.j.local:777/js/bigipreport.js:1150:15) at initializeStatusVIPs (http://linuxmgmt.j.local:777/js/bigipreport.js:665:4) at Array. (http://linuxmgmt.j.local:777/js/bigipreport.js:137:4) at l (http://linuxmgmt.j.local:777/js/jquery.min.js:2:29375) at c (http://linuxmgmt.j.local:777/js/jquery.min.js:2:29677) undefinedAgain, thanks for all your work Tim.
/Patrik
- SL
Cirrus
Is it possible to run the ps file once and it calls multiple xml files to generate everything into one report?
- TimRiker
Cirrocumulus
SL, no.
You can define multiple device DeviceGroup sections in the xml. Each can have one or more paired devices.
Patrik,
This commit should have forced loadbalancers.json to an array:
commit 9176056c5fb25ce14ea9a8f2affd14db0a22eb50 Author: Tim Riker Date: Wed May 2 10:49:47 2018 -0600 force array for datagroups.json, remove commentAre you testing someplace before that commit? The write line should look like this:
$WriteStatuses += Write-JSONFile -DestinationFile $Global:devicegroupsjsonpath -Data ( $Global:DeviceGroups | Sort-Object name | ConvertTo-Array )I'm not able to duplicate your error. I've tried with one or more DeviceGroups and I get an array in all cases now.
I hear your comments on the console being embedded. I debated giving up the screen real estate for quite a while. I reduced the default page size from 15 to 10 to get things to fit better. Moving iRules out means that links work better using just the firstlayerdiv and secondlayerdiv. I suppose we could extend that logic to get more layers. What I was seeing was that pool details were showing up behind the consolediv tab for iRules. The iRule popped up on top, but pool details popped up below.
I notice that my "mainsection" as part of the URL is not working. I'll see if I can track that down. ie: this should work, but does not:
http://bigipreport/mainsection=certificatedetails - jba3126
Cirrostratus
Testing 5.1.4.
Getting this error at the beginning. Add-Type : Cannot add type. The type name 'VirtualServer' already exists. At E:\f5\BigIPReport\dev\bigipreport-5.1.4.ps1:632 char:1 + Add-Type @' + ~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (VirtualServer:String) [Add-Type], Exception + FullyQualifiedErrorId : TYPE_ALREADY_EXISTS,Microsoft.PowerShell.Commands.AddTypeCommand
Getting the following error multiple times when running the PS script.
The property 'status' cannot be found on this object. Verify that the property exists and can be set. At E:\f5\BigIPReport\dev\bigipreport-5.1.4.ps1:1242 char:3 + $ObjTempPool.status = $PoolStatus[$i].status_description + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyAssignmentException
In Firefox the pages are hanging at 99% for a bit and then loading and get a blank page. Same for Chrome. When I look at the page source in both Chrome and FireFox both show the page content is there. I cleared the cache just to be certain. I also switched back to previous version 5.1.0 virtual directory and everything displays just fine.
- TimRiker
Cirrocumulus
Power shell "Add-Type" command has no "remove type" so once a type has been added, it cannot be removed in that running version of powershell. If you have run a different version of the script in that same powershell window, you will need to close that window and relaunch powershell in order for the Add-Type commands to work.
This has bit me more times than I can count. :(
If you're getting the Add-Type error, then your run has not completed. This means you're trying to load old json files with the new scripts. That won't work, as the new attributes won't exist. Restart powershell, run the script, and then check the output.
- esloan
Nimbostratus
@TimRiker @Patrik Jonsson:
Code version 5.1.4 I've noticed that when I click in to view an irule and use ctrl+F to find a value in the irule in FF it doesn't jump to the entry; Chrome does.
Looks to be a FF thing, but thought I'd post it in case anyone else was using FF and ran into the same issue.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)