BIG-IP Report
Problem this snippet solves:
Overview
This is a script which will generate a report of the BIG-IP 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 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 auditor (read-only) permissions on your devices.
Demo/Preview
Interactive demo
http://loadbalancing.se/bigipreportdemo/
Screen shots
The main report:
The device overview:
Certificate details:
How to use this snippet:
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).
- Downloads:
https://loadbalancing.se/downloads/bigipreport-v5.7.13.zip - Documentation, installation instructions and troubleshooting: https://loadbalancing.se/bigipreport-rest/
Docker support
https://loadbalancing.se/2021/01/05/running-bigipreport-on-docker/
Kubernetes support
https://loadbalancing.se/2021/04/16/bigipreport-on-kubernetes/
BIG-IP Report (Legacy)
Older version of the report that only runs on Windows and is depending on a Powershell plugin originally written by Joe Pruitt (F5)
BIG-IP Report (only download this if you have v10 devices):
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.
---
Join us on Discord: https://discord.gg/7JJvPMYahA
Code :
BigIP Report
Tested this on version:
12, 13, 14, 15, 16
- Mathieu_Cerfon1Altostratus
Hi Patrik
Still have a small issue with the docker version of BigIP Report. It used to take around 5-6 minutes at each execution with a Windows VM Server.
Now it's dockerized, it can take 30 to 106 minutes to execute. Noticed that seems to block on those steps :
2023-09-20 11:19:18 <device_A:Caching nodes.5757715
2023-09-20 11:19:18 <device_B>:Caching monitors
2023-09-20 11:19:33 <device_A:Caching monitors77379
2023-09-20 11:21:35 <device_B>:Caching Pools.7717258
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 296.7917296
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 297.7953358
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 300.7993795
2023-09-20 11:21:54 <device_A:Caching Pools
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 301.8015409
2023-09-20 11:24:02 <device_A:Caching Policies00432
2023-09-20 11:24:17 <device_A:Caching datagroups965
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 463.0189142
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 464.0201473
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 465.021371
2023-09-20 11:24:49 <device_A:Caching iRules0349808
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 491.05705852023-09-20 11:25:06 <device_A:Caching profiles0633
2023-09-20 11:25:14 <device_B>:Caching Policies40969
2023-09-20 11:25:30 <device_B>:Caching datagroups032
2023-09-20 11:26:00 <device_B>:Caching iRules1423518
2023-09-20 11:26:16 <device_B>:Caching profiles61971
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 844.5591946
Wait: 0, Run: 2, Done: 6, Fail: 0, Time: 1010.7925092 317972023-09-20 11:39:16 <device_B>:Caching Virtual servers
2023-09-20 11:39:33 <device_A:Caching Virtual servers
2023-09-20 11:40:18 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:40:34 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:40:50 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:41:06 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:41:10 <device_B>:Detecting orphaned pools
2023-09-20 11:41:10 <device_B>:Stats: VS:311 P:307 R:44 POL:0 DG:5 C:10 M:199 ASM:0 T:1455.6709484
2023-09-20 11:41:23 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:41:28 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:41:43 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:41:58 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:42:00 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:42:15 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:42:33 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:42:48 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:43:07 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:43:26 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:43:41 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:44:00 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:44:10 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:44:24 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:44:42 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:44:57 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:45:15 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:45:17 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:45:36 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:45:49 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:46:08 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:46:24 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:46:40 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:46:55 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:47:14 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:47:30 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:47:46 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:48:03 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:48:16 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:48:33 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:48:48 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:49:03 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
Wait: 0, Run: 1, Done: 7, Fail: 0, Time: 1935.16374332023-09-20 11:49:19 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:49:22 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:49:42 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:49:55 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:50:14 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:50:33 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:50:49 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:51:05 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:51:20 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:51:36 <device_A:Polling policy reference information for /Common//<Random_ASM_Policy>
2023-09-20 11:51:54 <device_A:Detecting orphaned pools
2023-09-20 11:51:54 <device_A:Stats: VS:97 P:187 R:274 POL:16 DG:61 C:26 M:57 ASM:99 T:2099.2386718
2023-09-20 11:51:55 Checking for missing data
2023-09-20 11:51:55 <device_B> does not have any Policy data
2023-09-20 11:51:55 No missing data was detected, sending alerts and compiling the report
2023-09-20 11:51:55 No certificate alerting channel has been enabled
2023-09-20 11:51:55 Support Checks has been disabled, skipping
2023-09-20 11:51:55 No failed devices alerting channel has been enabledAnd this for all devices of the same customer.
On our shared infra, which has lot more objects, that work much better :
2023-09-20 11:19:09 <device_X>:Stats: VS:699 P:623 R:204 POL:213 DG:96 C:144 M:239 ASM:87 T:134.3199104
I checked CPU and memory usage on the docker, doesn't seem really high.
Network doesn't seem to be the problem, same path used than the previous setup.
Any idea ?
Upgraded Cypress to patch vulnerabilities and make the vulnerability scanners calm down. 🙂
Working on a new version where there's a view for nodes too.
Kind regards,
Patrik- Mathieu_Cerfon1Altostratus
Hi Patrik,
Me as well, I'm a bit disapointed that was such a simple human mistakes ! I could do better lol
Anyway thank you for your support 😉
Regards,
Re-pull your frontend images. Just updated nginx alpine base to a new minor version due to vulnerabilities.
Kind regards,
PatrikHi Mathieu
Although I was hoping for a fun troubleshooting session over discord I'm glad that it worked out for you!Always fun to hear from users of the project, be it over mail, message or comments. ❤️
Kind regards,
Patrik- Mathieu_Cerfon1Altostratus
Hi Patrik,
Indeed, issue was coming from the file !
Thank you for you quick support and you work 😉
Best regards,
M.
Hi Mathieu
Since you've tried using curl from within the container I reckon you've ruled out network issues at least.
One thing you could try is to try to re-create the config file (start with a new one, don't re-use the old) if you have not done so already.Windows and linux has different line breaks and I've also had the pleasure of experiencing garbage characters more than once.
Which version of BigIPReport are you using and which version of TMOS are you running?
Kind regards,
Patrik- Mathieu_Cerfon1Altostratus
Hi Patrik,
We recently moved our bigip-report to a doker since our old windows server is going to be end of support.
unfortunately, with the same setup, same users, i always got a 401 F5 Authorization failed.
I've tried a lot of think suggested in the topics and on :
https://loadbalancing.se/bigipreport-rest/#Authentication_failed_see_inner_exception
I also check F5 possible bugs ID but still nothing.
From the docker itself, curl is working perfectly : I can get the token and the list of pools.
Also tried to moved the user from Guest access all partitions to full admin : nothing
Any idea what could cause the issue ?
Best regards,
Oh, right. Meant to add these stats a while ago:
- Since I started measuring a few years back we've had 3817 total downloads of the app packages
- From at least 50+ countries where US has by far the most downloads
- We get ~200 clones per month on GitHub
- The images has been pulled 6784 times on DockerHub
Questions/support?
Join our discord channel, we usually answer pretty fast:
https://discord.gg/TM3BJaX7Working on upgrading some dependencies for security reasons to avoid the project getting flagged as vulnerable by internal tools.
However, when combining old jQuery, Typescript, Webpack and a bunch of other node modules it's easier said than done. At the moment I'm stuck at the E2E tests (Cypress).
There's an issue:
https://github.com/cypress-io/cypress/issues/27769If you do get some pokes regarding vulnerable stuff they should all be false positives. Most of the vulnerabilities are invalid since BigIPReport does not have a backend web service, most of the code is static HTML.
Just keep track of this pages comments and update the docker images regurlarly as I update the base image dependencies and you're gonna do fine.
Kind regards,
Patrik