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
Hi Mihir
Sorry for the late reply. I did not get a notification when you made this comment. Will poke the DC team about that.
To answer your question. No I have never had the reason to do that as most places I've worked at a longer time did not have GTM.
/Patrik
New version out now. Calling it a Beta for a while since the code has only been tested in two places by two people (Tim Riker and myself). BIG thanks to Tim for contributing the code!
Since I did not do that much in this release other than reviewing and testing I'll let Tim describe the new features and fixes!
Take it away !
- TimRiker
Cirrocumulus
Version 5.3.0 is now available.
http://loadbalancing.se/downloads/bigipreport-5.3.0-beta.zip
This release includes bug fixes and a number of new features. You will need to update your xml config files to include the new settings.
- Regular Expression searching on both general and column searches. Some examples in the help
- rename "underlay" instead of "Move the content of this folder to the configured report root"
- new settings in xml file! See example and add autoExpandPools, showAdcLinks, regexSearch
- new preferences.json containing preferences including polling settings
- datagroup caching now uses the REST service. the caching account on the F5 for versions older than 12 will need to be an Administrator. For APM retrieval the account will need to be an Administrator even on newer versions of BIG-IP.
- avoid status polling for the same pool multiple times each poll cycle
- stats to loggederrors, more entries show up on the Log tab.
- hide some columns by default on various tables
- links in datagroups to pools and http/https entries
- snat pool fixes, allow filtering by snat pool
- new status searching, see help. {ENABLED|DISABLED}:{BLUE|GREEN|RED}
- updated tab/button/input styling. Now includes row hover coloring, and sort column coloring. Note: Datatables supports sorting on multiple columns.
- expand/collapse support for associated pools, datagroups, virtual servers, etc. Not supported on Edge.
- expand/collapse/restore button to change current view
- monitor column on pool table, allows searching pools by monitor name
- column search boxes have clear (x) on Chrome. Not supported on Edge or Firefox.
- Delbrugge
Nimbostratus
Great tool. Sorry if this was already asked, but is there any plan to add association between LTM policies and pools? Kinda like the replacement for iRule association to pools.
In the upcoming versions we'll migrate from the SOAP api and onto the REST API. This will enable us to integrate policies. Stay tuned. :)
- matthew_wedlow1
Nimbostratus
Great work on this! I really like how it is able to interpret pools from iRules. That is something I struggled with in my own attempts at something similar.
One issue I am having is when I configure a relatively large amount LTMs in the XML file the web page has issues loading. I have around 60 or so devices and the json files that are created after running the script are large. The webpage will usually load up to 99% and then sit for awhile. If you wait a few minutes it eventually loads. However it seems to only be able to load part of the page/content. The HTML looks normal. JSON files also look correct. It may be an issue with my NGINX settings though so I am starting there. If I test with a single LTM it works fine.
- TimRiker
Cirrocumulus
What are your stats? Originally BigIPReport rendered all content into the html file, and then loaded all the json files to handle searching and linking etc. Now we only render content for each tab in the client when you switch to the tab. This has make the loading much faster. We do wait until all the json files are loaded before rendering the initial screen to insure that linking and cross references all work. How large are your files? In my environment on 5.3.0 (plus some fixes) I have this:
Stats: G:21 LB:34 VS:5961 P:6486 R:5004 DG:756 C:483 M:4170 ASM:219 T:1605.7656189
Search for "stats" on the "log" tab to see this output. You can search for "loaded:" to get this:
loaded: loadbalancers:34, virtualservers:5961, pools:6486, iRules:5004, datagroups:756, certificates:483, monitors:4170, asmPolicies:219.
which is rendered on the client once the json files have loaded. Looking at the previous message, I see it took 6 seconds to load and render for me. I'm on a local fast connection. It takes much longer to load and render while remote over vpn. My pools.json is around 14M in size. That's the largest one.
Side note: we also track pools when linked from datagroups. ie: virtual-server -> irule -> datagroup -> pool We do not currently track datagroup names or pool names that are assembled in an irule. ie: dg_$vip\_something so the text names of datagroups or pools need to actually occur in the irule. They can be in a comment, and will still be linked. Sometimes I consider that a bug, and sometimes a feature.
- matthew_wedlow1
Nimbostratus
Thanks for the quick response. I am running Version 5.2.8
I do not see stats in my logs. I removed a bunch of devices to test but I am seeing the same issue with only 6 LTMs.
loaded: loadbalancers:6, virtualservers:1732, pools:2426, iRules:397, certificates:1472, datagroups:68, asmPolicies:0.
If I setup an IIS server on my local box it loads very quickly (under 5 seconds). If I export all files to a remote Nginx webserver it either fails to load or takes several minutes. This is why I am assuming there is some issue with my Nginx settings. In the browser I can see it taking several minutes to try to load the specific pools and virtual json files.
- TimRiker
Cirrocumulus
can you download the files from your nginx manually? Something like:
$ curl https://loadbalancing.se/bigipreportdemo/json/pools.json
I don't think we rely on the mime type, but I'm not positive on that. The images, css, javascript, and json files need to all be readable. If your small sample works, I would think the permissions are correct. You're running the small sample from the ngnix server too?
Note: My current 5.3.1 snapshot runs over REST instead of SOAP and does not need the pssnapin. I needs powershell 6.x or newer, and can run directly on non-windows machines.
- matthew_wedlow1
Nimbostratus
correct I can download all the json files manually and navigate to them as well. The permissions seem to be correct. And yes I have tested with a single small dev F5 inside nginx and it works fine. I'll continue to tweak nginx as I really think that is the bottleneck.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)