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
- dragonflymrCirrostratus
Hi,
Thanks a lot.
Piotr
- dragonflymrCirrostratus
Hi,
Another idea that just came to my mind. Maybe not so complicated. I just noticed ready to use commands using curl or netcat for testing pool members.
It's not exactly the same but triggered my idea - would it be complicated to attach links to for example persistence profile or clientssl profile (my first idea is using iControlREST) to retrieve whole config of such object - something like when issuing tmsh list command in CLI.
So it would be easy to check how given object/profile is exactly configured without touching BIG-IP GUI or CLI.
Piotr
- dragonflymrCirrostratus
Just noticed that monitor retrieval works only when monitor is applied at the pool level. If there is no monitor at the pool level but instead monitor/s is set using Member Specific at pool member level, nothing is retrieved.
Wonder if that can be fixed?
Piotr
The REST API would be great, but CORS would stop so that can't be done. :(
I know about the member level monitor. When I wrote the report we did not have any of those so I simply skipped it. Will add it to the list. :)
/Patrik
- Piotr_Lewandow1Nimbostratus
I am pretty sure that CORS means Cross-Origin Resource Sharing - Am I right? So you mean that it would not be possible to create HTTP request from withing Java Script used on the BIGIPReport page - is that what you mean for "can't be done"?
Pool level monitor is not so urgent or important but would be nice to have :-)
What about grouping column feature I mentioned before - is that not possible/to complicated to be done?
Piotr
Hi!
You're right, the browser would kill the request "pre flight" because the F5 REST API does not have Allow-Origin headers that matches the domain of your bigipreport.
Sorry, I missed that. That kind of grouping would be too complex with datatables, but might be possible if I created my own frontend. I started with that but it took so much time that I froze it until later.
Tip:
You can filter per column for things that is not shown. Ie. searching for "DOWN", or "UP, or "DISABLED" would find members with that state. I am planning to make this more obvious later on.
/Patrik
- dragonflymrCirrostratus
Datatables - I am pretty sure I was playing around with it. I just did some quick search, can't this feature be used for row grouping https://datatables.net/extensions/rowgroup/?
What can be filtered in per column filter? I can see that status of VS can be used but for example LB algorithm for Pool not.
Piotr
P.S. Really bad that implementing iControlREST is not possible, would be great to figure out some workaround for that.
I saw that one too, but the demos were not very user friendly and I don't think they do what you intend them to do?
Check out this page for examples:
https://datatables.net/extensions/rowgroup/examples/
/Patrik
- dragonflymrCirrostratus
You right, most of the examples are not promising, too static and there is no way to collapse groups to hide members (but probably possible to be done?).
However this one look promising, still a bit static but better than nothing https://datatables.net/extensions/rowgroup/examples/initialisation/event.html
Take note about:
- Group by Position
- Group by Office
- Group by Age
Above table.
Piotr
P.S I found such example that is very close to what I am looking for https://datatables.net/examples/api/row_details.html
Maybe I have misunderstood your initial suggestion but let me respond to it as how I interpreted it.
The difference here is that the example you linked to is using Json as data source while Bigipreport uses static HTML. It does a bit like what I did with the pool details and the functionality is more about hiding/showing information rather than grouping. And it's not dynamic (you can't choose different group parameters).
Looking at the initial suggestion and combining that with the link:
- VSs using same IP - I think this would not make sense for a lot of companies. Some hosts significantly different types of applications separated by port. You can sort of achieve this today by filtering the IP column, but it's not grouped.
- VSs belonging to given traffic group - This is not possible today, but if it was the group in question might be huge depending on your configuration. Not sure how to visualize this in a nice way?
- VSs using same pool - This can be achieved by filtering the pool column.
/Patrik