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
- Lonce
Nimbostratus
Just tested it, script runs however the index page doesn't seem to load.
Error:
There were errors when loading the object json files
The following json files did not load:
I have created the web.config file with the following.
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
- TimRiker
Cirrocumulus
You show the error, but not the files that didn't load. The 5.3.1 release creates a json/preferences.json when it runs. Do you have that file? Older builds do not create this file.
My beta 5.4.0 also creates and uses this file.
Can you see files in the json directory? If you are installed on https://bigipreport.example.com/ then go to https://bigipreport.example.com/json/preferences.json for example.
- Lonce
Nimbostratus
@Tim, thanks for the reply, seems I overlooked the default document setting, when changing this to index.html it started working.
This was removed "<mimeMap fileExtension=".json" mimeType="application/json" />" as it's not required on IIS 10.
Thanks again for speedy response and assistance, my next steps is to get this running in a mixed environment V12, V15, over a WAN link with 100+ F5 Devices.
I'm planning to use both scripts, to cater for both V12 and V15, at least until all of them are on V15, do you have any recommendations for doing this over a WAN link?
- TimRiker
Cirrocumulus
v5.4.0 tries to talk to all the configured f5s in parallel. Running over 100 in one xml will put a serious load on the box. I'll look into putting a process limit on it. In theory we can start some scripts as the other scripts end and get better performance out of it. I've run against 34 f5s and the old script doing them in series took over a half hour to run. The new one runs in less than 15 minutes, but with much higher cpu load on the box running the script.
I run the build script over vpn against all our f5s that are remote without issues. We have a number of different datacenters including an instance at Amazon and I've had no issues with the WAN.
With v14 an v15 I have had issues with REST (and ssh) logins. mentions above the tmsh commands to alter the ldap timeout. I'm testing that now on our development systems.
I'm still running both the release and beta versions, one on the half hour, and one on the hour. They both seem to run fine. My live F5s are v13 through v15 systems.
Interested to hear how 100 systems scales. Does the box you run the script on have many cores? It should take advantage of that. Worst case you may have to split them up and have multiple versions of the report until I put some process throttling in place.
Keep me posted!
- Lonce
Nimbostratus
@Tim, I haven't tested this yet, however I have built the server specifically for this function. I only plan to run the script once or twice a day per device. The idea is more towards searching of irules/configurations/certs etc. I'm curious as to how you are using the single index.html file for all 34 of your devices? If you are utilizing both scripts in parallel they should overwrite eachother which would defeat the purpose of a central place for all your configurations?
I was thinking of creating a new html which would references the index file for both script versions I.e. 5.3.1 and 5.4.0.
But my scripting knowledge is limited, I'm currently doing a POC on BIG IQ as well which should resolve the above challenges.
I must say I have been using 5.3.1 for a while and very happy with it.
- TimRiker
Cirrocumulus
Currently I run the release version on the root of the website, and the beta version in a /test/ directory. So I have /json/ for the release and /test/json/ for the beta. In the beta I added a config entry for NavLinks and I add there a link back to the main version as well as a link to the json/ directory as I have people using the json files for reporting. Example:
<NavLinks> <NavLink> <Text>release</Text> <URI>../</URI> </NavLink> <NavLink> <Text>json</Text> <URI>json/</URI> </NavLink> </NavLinks>Glad you like 5.3.1! I'm interested to hear how 5.4.0 works for you. 🙂
- Lonce
Nimbostratus
Going to give this a bash, thanks for the NavLink this is very helpful. 🍺
I might also use the json data as well as an alternative for reporting.
Will keep you posted 😊
- TimRiker
Cirrocumulus
I added a MaxJobs setting to the xml and prepped a 5.4.1 beta release. You can download it here:
https://github.com/epacke/BigIPReport/raw/timriker/Releases/BigIPReport-5.4.1.zip
Until posts it above.
- Lonce
Nimbostratus
HI
Get the following error message when executing.
Do you mind if I move our comments to github?
So we do not fill up this page with comments?
https://github.com/epacke/BigIPReport/issues/176#issuecomment-635775253
PS C:\BigIP\BigIPReport-5.4.1> .\bigipreport-5.4.1.ps1
2020-05-29 05:43:17 Successfully loaded the config file: C:\BigIP\BigIPReport-5.4.1/bigipreportconfig.xml
2020-05-29 05:43:17 Starting: PSCommandPath=C:\BigIP\BigIPReport-5.4.1\bigipreport-5.4.1.ps1 ConfigurationFile=C:\BigIP\BigIPReport-5.4.1/bigipreportconfig.xml PollLoadBalancer= Location= PSScriptRoot=C:\BigIP\BigIPReport-5.4.1
2020-05-29 05:43:17 Pre-execution checks
2020-05-29 05:43:17 Pre execution checks were successful
Add-Type: C:\BigIP\BigIPReport-5.4.1\bigipreport-5.4.1.ps1:731
Line |
731 | Add-Type @'
| ~~~~~~~~~~~
| Cannot add type. The type name 'Certificate' already exists.
- TimRiker
Cirrocumulus
Same issue posted above. The script defines some structure. Different releases have slightly different structures. Don't run different versions of the script in the same powershell instance.
The stable version runs on PowerShell 5. The beta version requires at least PowerShell 6. I'm testing on PowerShell 7.0.1 now.
Startup a new window, or spawn a child shell (pwsh.exe) and run the script there.
These "types" are added in Add-Type, but there is no Remove-Type that I am aware of, so you have to start a new shell.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)