Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
code share

BigIP Report

Problem this snippet solves:

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 (including those specified in iRules).

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 pair of load balancers, indexing over 1200 virtual servers for over two years now and the report is widely used across the company.

It's easy to setup and use.

Demo/Preview

Please note that it takes time to write these so sometimes they're a bit outdated, and they only cover one load balancer. However, they still serve the purpose of showing what you can expect from the report.

An interactive demo can be found here:

http://loadbalancing.se/bigipreportdemo/

A video of an older version can be found here:

https://youtu.be/mWsmjmY_tbE

Screen shot:

Image Text

Want to speak your mind, share some feedback?

Truth be told, I more or less have no idea who uses the report and I've got no statistics whatsoever except for the feedback I get in this insanely big comment thread.

To make it easier for me to make **better** decisions about future features, or even to get ideas from you guys I'd love if you could answer this **short** poll (**NO registration is required**):

http://www.polljunkie.com/poll/facgco/bigipreport-survey

While the poll is anonymous and the questions is not targeted at you personally it'd nice with an introduction in the last free text question, if you feel like it. :)

Any feedback is appreciated.

/Patrik


How to use this snippet:

Installation instructions

I've been running into problems with the ASM of Devcentral and will move the installation instructions to another site.

Fast track instructions available here:

https://loadbalancing.se/bigip-report/#Fast_track_installation_instructions

Detailed instructions here:

https://loadbalancing.se/bigip-report/#Detailed_installation_instructions

Upgrade instructions

https://loadbalancing.se/bigip-report/#Upgrading_the_script

Got issues/problems/feedback?

Drop a comment below. I usually reply quite fast. Any bugs found, issues detected or ideas contributed makes the report better, so it's always appreciated.

Tested on Version:
12.1
Comments on this Snippet
Comment made 13-Oct-2015 by danielpenna 260
That is awesome, have run it up ourselves as a PoC and will set it up into production. The only thing extra I would like to see ( and will try and get it working ourselves ) is the iRules associated with a Virtual Server and the ability to see that iRule.
0
Comment made 16-Oct-2015 by thennessey 79
Excellent! Thanks for this!
0
Comment made 16-Oct-2015 by Patrik Jonsson 3246
Thanks guys, glad you liked it!
0
Comment made 20-Oct-2015 by cookie2323 0
i like this i am newwwwww...........................
0
Comment made 09-Dec-2015 by Andrew78 12
This worked out great for me. My only comment is it wasn't abundantly clear on how to configure multiple load balancers. The syntax tripped me up since there was no example for multiple. I was trying commas, commas and parentheses... Finally figured out it's a semi-colon to delimit each load balancer and the parentheses needs to be changed to a curly brace. In case anyone else gets stuck on this... Example: $Global:bigipdict = @{ "172.16.0.1" = "LB1"; "172.16.0.2" = "LB2"; "172.16.0.3" = "LB3" }
0
Comment made 09-Dec-2015 by Patrik Jonsson 3246
Thank you for your comment Andrew, I will make it easier in the next version.
0
Comment made 22-Dec-2015 by Walter Kacynski 925
Can this script be adapted to report on "sys db" values? We have a need to reconcile any differences in this information since this falls outside of a sync group.
0
Comment made 22-Dec-2015 by Patrik Jonsson 3246
Yeah, it could. But I'm not sure how this would be presented and/or be beneficial as a permanent part in the report? I believe though that it would be easy to generate a comparison table. Can check it out tomorrow after work.
0
Comment made 23-Dec-2015 by Patrik Jonsson 3246
Here you go: http://pastebin.com/7Le9JFue /Patrik
0
Comment made 03-Feb-2016 by tonytroubleshooter@gmail.com 0
Hi Patrick, this would work wonders in our environment. I am having issues getting it running...Do you have some simple instructions or quick guide to getting this up and running? I Powershell minimum version 3.0 - Check F5 Powershell Snap-in - Check A web server of your choice - ? You mean an F5 load-balancer of our choice to report from? I am surprised of how long F5 has had Load balalncers, but not a simplified way or guided way, to report configuration settings on them in our environment.. i.e. VIP's, pools, pool members, nodes, nodes IP, nodes port. Any help is much appreciated. Thanks again, Tony
0
Comment made 03-Feb-2016 by Patrik Jonsson 3246
Oh dear. The project information disappeared 2 months ago or so (devcentral bug) and it seems like I did not restore the installation instructions. Will do that right away!
0
Comment made 03-Feb-2016 by Patrik Jonsson 3246
For some reason I can't update the snippet. While waiting for the DC superheroes I'll add the info here. Brace yourself for no formatting at all! Instructions: 1. Copy the content of the Web folder to the root of your Web server. 2. Open the script and configure it. Minimum configuration is $user, pass, bigipdict and reportpath. Report path should point to the root of your web server. I recommend using a separate user for the report generation (Only guest access needed). 3. Run the script. 4. Done! Additional instructions: One thing that I have seen in the comments is that the bigipdict can be a bit tricky to declare. I will simplify that in a later version but for now I'll add some extra information here: Example: $Global:bigipdict = @{"192.168.100.1" = "mybigip.domain.local";"192.168.100.11" = "mybigip2.domain.local";} If you run into problems, just leave feedback in the comment section below. I'll do my best to help as soon as I can.
0
Comment made 03-Feb-2016 by Patrik Jonsson 3246
Hope that answered your questions Tony!
0
Comment made 04-Feb-2016 by tonytroubleshooter@gmail.com 0
Thank you very much Patrik! I am now moving forward. For the web server, I am actually working off a Xeon system in the NOC, and want to just use it as the web server, I started up ISS, and have the inetpub folder and all. But I dont have a default.html in my webroot folder.. do I need to just create it? Thanks.. oh here are the first few errors I am getting.. :) hopefully it helps... S C:\BigipReport3.8> C:\BigipReport3.8\NewBigIPReport3.8.ps1 Exception setting "OutputEncoding": "The handle is invalid. " At C:\BigipReport3.8\NewBigIPReport3.8.ps1:291 char:1 + [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], SetValueInvocationException + FullyQualifiedErrorId : ExceptionWhenSetting Test-Path : Cannot bind argument to parameter 'Path' because it is an empty string. At C:\BigipReport3.8\NewBigIPReport3.8.ps1:363 char:20 + if(Test-Path -Path $Global:NATFilePath){ + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidati EmptyStringNotAllowed,Microsoft.PowerShell.Commands.TestPathComm and Initialize-F5.iControl : Could not initialize connection with supplied information At C:\BigipReport3.8\NewBigIPReport3.8.ps1:802 char:13 + $success = Initialize-F5.iControl -Username $user -Password $pass -HostName $bi ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (10.8.96.175:String) [Initialize-F5.iControl], Exception + FullyQualifiedErrorId : 2,iControlSnapIn.CmdLet.Global.InitializeiControl
0
Comment made 04-Feb-2016 by Patrik Jonsson 3246
I will make a fresh install myself and test it. :)
0
Comment made 04-Feb-2016 by Patrik Jonsson 3246
Good news is that I fixed it. Bad news is that I can't update the file on devcentral! Will report to the DC guys.
0
Comment made 04-Feb-2016 by Patrik Jonsson 3246
Ok, you can try this link until they have fixed the problem with the forum: http://www.filedropper.com/bigipreport39 First time using file dropper for me so download and scan it at virustotal or something first. :) /Patrik
0
Comment made 25-Feb-2016 by Patrik Jonsson 3246
Sorry mate, I keep chasing them but no news yet.
0
Comment made 28-Feb-2016 by Patrik Jonsson 3246
Chased them again just now.
0
Comment made 01-Mar-2016 by Adam Embrey 0
Patrick, I am getting the following error Exception setting "SecurityProtocol": "Cannot convert null to type "System.Net.SecurityProtocolType" due to invalid enumeration values. Specify one of the following enumeration values and try again. The possible enumeration values are "Ssl3, Tls"." i have tried to edit line 287 to contain SSl3 or Tls and nothing seems to fix this. can you please advise? Thank you
0
Comment made 01-Mar-2016 by Patrik Jonsson 3246
Hi Adam! Which version of powershell are you using? Have you tried setting the variable $Global:useTLS12 to $false (or removing those 3 lines altogether)? Since I still can't update the project via DC I'll leave the last "stable" version in my dropbox for now: https://dl.dropboxusercontent.com/u/17343231/BigipReport3.9.zip Note that you need to re-configure the script a bit with the new version as it uses a list instead of dictionary when specifying the F5s. /Patrik
0
Comment made 04-Mar-2016 by RossVermette 288
Hey, Love the script, but I have an issue when the pool members are defined using fqdn nodes. (Where you have a non and ephemeral node defined to represent the same server) The Pool/Members displays all nodes in the table even though they do not belong to the pool. any ideas on how to fix this?
0
Comment made 04-Mar-2016 by Patrik Jonsson 3246
Hi! Thanks! Keep an eye out for the next version. There's going to be quite a bit of improvement in usability. About your issue, could you please post a ltm config example (feel free to use dummy objects) which I can use to replicate the issue? /Patrik
0
Comment made 07-Mar-2016 by Patrik Jonsson 3246
Allright! Now I can update the codeshare again!
0
Comment made 07-Mar-2016 by Patrik Jonsson 3246
New versions out. Hope you like the new one! :)
0
Comment made 08-Mar-2016 by RossVermette 288
Hey Patrik, Here is the sample conf: ltm pool /Common/ServicesUAT1_pool { description "" load-balancing-mode fastest-node members { /Common/nodename01.domainname.ca:80 { fqdn { autopopulate enabled name nodename01.domainname.ca } } /Common/nodename02.domainname.ca:80 { fqdn { autopopulate enabled name nodename02.domainname.ca } } } monitor /Common/HTTP-Head-Monitor } ltm node /Common/nodename01.domainname.ca { description "" fqdn { autopopulate enabled name nodename01.domainname.ca } } ltm node /Common/nodename02.domainname.ca { description "" fqdn { autopopulate enabled name nodename02.domainname.ca } }
0
Comment made 08-Mar-2016 by Patrik Jonsson 3246
I added the config and changed the nodes to facebook and google. Is this what you're seeing? http://imgur.com/rYnIAmp /Patrik
0
Comment made 10-Mar-2016 by RossVermette 288
Sort of, it would show me all the fqdn nodes defined, even though they did not belong to that pool. (I haven't tried the latest 4.0 code, but was happening in the 3.9)
0
Comment made 10-Mar-2016 by Sebastian Maniak 262
This is great, looking forward to building it out in my lab
0
Comment made 11-Mar-2016 by Patrik Jonsson 3246
Ross, could you please try version 4.0 and let me know the result? /Patrik
0
Comment made 11-Mar-2016 by Patrik Jonsson 3246
Thank you Sebastian! :)
0
Comment made 11-Mar-2016 by RossVermette 288
I tried the 4.0 code but I seem to have issues with the following: access.log shows 10.0.2.2 - - [11/Mar/2016:15:11:22 -0600] "GET /json/virtualservers.json HTTP/1.1" 404 514 "http://127.0.0.1:22280/default.html" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" For some reason, the "json/virtualservers.json" doesn't get created. (The other json/monitors.json and pools.json do get created) I don't see any errors when I run the powershell script either. (Even enabled debug loggin, and no errors are thrown)
0
Comment made 11-Mar-2016 by Patrik Jonsson 3246
I think I know what it is. New version in a few minutes.
0
Comment made 11-Mar-2016 by Patrik Jonsson 3246
It was a referal to a future function that broke it. Try the new version? /Patrik
0
Comment made 16-Mar-2016 by RossVermette 288
Sorry for the Delay, but you Rock! Latest version fixed the issue I was seeing with the fqdn members. I love the pool details view.(especially the curl/netcat links)
0
Comment made 17-Mar-2016 by Patrik Jonsson 3246
Thanks for your kind words! You might want to check out this one too? https://devcentral.f5.com/codeshare/web-ui-tweaks
0
Comment made 27-Mar-2016 by DebenB 1
thanks for posting such helpful content.. Tried this , its awesome. I this i can see client ssl-profile shows only YES and NO. I will like to add the profile name so thinking to modify below section ; please suggest if that work or any other changes needed. "@ } if($vs.sslprofile -ne "None"){ $Global:html += @" <td> $($vs.sslprofile) ---> Modified from Yes to the added content. </td> "@ } else { $Global:html += @" <td> No </td> "@ Also please guide how i can add VIP enabled / disabled status and poo/node availability status like UP or down. Regards Deben
0
Comment made 27-Mar-2016 by Patrik Jonsson 3246
Thank you for your kind words and suggestions. What you seek will come in the next version. I working on making a similar setup for the virtual servers as I did with the pool details. The issue I had with writing out the name of the SSL profile is that it would take up too much horizontal space in the table. What you suggested seems to be correct though and you're free to make any modifications to the code that you like. :)
0
Comment made 27-Mar-2016 by DebenB 1
Thanks Patrik, Eagerly waiting for next version :).. Meanwhile i will try bit modification if that works for me :) Regards A Cisco guy trying powershell .. ha ha ..:)
0
Comment made 26-Apr-2016 by Andy Edwards 2
I am getting the following error every time I run the script. It appears that the variable $pools is never declared. You cannot call a method on a null-valued expression. At C:\temp\Bigipreport4.0.1\Bigipreport-4.0.1.ps1:1262 char:6 + if(!$pools.loadbalancer.contains($Loadbalancer)){ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
0
Comment made 27-Apr-2016 by Patrik Jonsson 3246
Hi Andrew! Which variables have you configured. What happens if you in the powershell window enter "$pools" and press enter. I suspect that you've missed something in the config section.
0
Comment made 04-May-2016 by mike 54
Fantastic! - is it possible to auto refresh? / make it dynamic? - also in our particular scenario, we want to monitor one particular pool, and would be great if that could be made to be the default page? (with node view expanded? ) many thanks
0
Comment made 09-May-2016 by Patrik Jonsson 3246
Hi Mike! Thank you for your nice comments! Making it dynamic (getting realtime data) is too slow, but you could make it auto refresh. As it is today though you should bet a yellow/red button saying that a new report is available. I chose that way because I figured it would be annoying to look at a report data post and suddenly the page reloaded. Regarding the start page I might suggest that you use the share feature of the report and use that link to access the report. Would that work?
0
Comment made 11-May-2016 by Andy 52
I have been trying to run this against a list of 45 F5, with ~750 VIPs but with no success. The script interrogates the F5 correctly and parses the information but no files are output, is there an upper limit on the amount of files that can be parsed? Also I tried running this in separate scripts and noticed that the output uses html absolute paths, rather than relative paths within the web server, if this were resolved I could split this into multiple scripts which seemed to resolve my issue.
0
Comment made 11-May-2016 by Patrik Jonsson 3246
Hi Andy! That's quite many machines. :) You say the F5 parses the information from the F5's which means that the data collection should work. You can double check this by entering "$pools" in the Powershell prompt after the script has been running. If you get a long list of pools you should be good to go in terms of that. Another thing that could be an issue could be if one of the load balancers has not returned any data to the script (refer to the last section of the script where $loadbalancerdatamissing is set). Double check the execution to check for errors, or manually set the $loadbalancerdatamissing to $true before the check occurs.
0
Comment made 12-May-2016 by DebenB 1
@ paul.dawson Think you have to adjust PS ExecutionPolicy ; please check below Get-ExecutionPolicy –List ---> List all policies Set-ExecutionPolicy AllSigned -Scope CurrentUser ---> Set execution policy for current user
0
Comment made 12-May-2016 by Patrik Jonsson 3246
Hi Paul Which version of TMM are you running? The powershell script has a section where you can enable/disable TLS1.2. If the F5 powershell snap-in is not able to negotiate a cipher it will throw an exception that indicates invalid credentials, but this is NOT true. Also, get-credentials will not help you in this case as the user and password variables expects a string. I would also recommend you to run the script as a non-admin use later when you have made everything work as it does not require and special permissions on the server (just access to write the html files to the web root). Please update this thread if you still have problems.
0
Comment made 13-May-2016 by Patrik Jonsson 3246
Could be newer version of powershell than I use. I will issue a patch soon. Hang on. :)
0
Comment made 13-May-2016 by Patrik Jonsson 3246
Try the new version and please let me know if that solved it for you? Out of curiosity, could you please tell me the PS-version running on your server? Would like to figure out if it's a policy setting of version issue. /Patrik
0
Comment made 14-May-2016 by Patrik Jonsson 3246
Hi Paul! The color setting you're looking for is in /css/bigipreportstyle.css. :) /Patrik
0
Comment made 16-May-2016 by Craig Gauntlett 0
Hi Patrik Is there a way to show the SNAT List/pools/Translation and associated config and also if AutoMap it turned on for VS? Craig
0
Comment made 16-May-2016 by Patrik Jonsson 3246
Hi Craig! Sorry, not at the moment. /Patrik
0
Comment made 16-May-2016 by Craig Gauntlett 0
Thanks Patrik, do you have any plans/time frames to develop this?
0
Comment made 16-May-2016 by Patrik Jonsson 3246
Hi Craig! The next version will contain virtual server details similar to the pool details. Depending on the iControl methods I might add some of that functionality. At the moment I do not have a time frame. I have written the script 50/50 at work and on my spare time so it all mounts up to if I have time to spare. /Patrik
0
Comment made 16-May-2016 by Craig Gauntlett 0
It would be great even if it just showed SNAT Profile = "None|AutoMap|{snat-pool-name}" as an additional column.
0
Comment made 17-May-2016 by mike 54
Hi Patrik Thanks for your reply - the share function might work yes :) . With regard to the "update available yellow/red" button, are you saying that is already a feature of the report? - because I dont see it? Keep up the great work!!
0
Comment made 17-May-2016 by Iqbal_khan 0
hi Patrik, Script run perfect on version 11.5, however I am getting error for 11.6 as below, i am putting correct credentials but seem couldn't initialize icontrole for version 11.6: Initialize-F5.iControl : Could not initialize connection with supplied information At line:1 char:1 + Initialize-F5.iControl -HostName XXXX -Username XXX ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (hostname:String) [Initialize-F5.iControl], Exception + FullyQualifiedErrorId : 2,iControlSnapIn.CmdLet.Global.InitializeiControl Could you please comment on this?
0
Comment made 17-May-2016 by Patrik Jonsson 3246
That particular function is dependent on the report changing. Run a fresh batch to create a new html file, wait a while and see what happens. :-) Thanks!
0
Comment made 17-May-2016 by Iqbal_khan 0
I just tried to Initialize-F5.iControl for multiple version 11.6 devices but it is giving same error on them, it however Initialize-F5.iControl returning True for lower version, looks like powershell Initialize-F5.iControl is not supported on V11.6, any idea on it?
0
Comment made 18-May-2016 by Patrik Jonsson 3246
Are you running the latest version of the snap-in? Do you have the same ciphers configured on the management interfaces? Refer to the earlier comments regarding TLS1.2 for more information. /Patrik
0
Comment made 19-May-2016 by mike 54
Hi Patrik I have this running well on BIG-IP 12.0.0 Build 1.0.628 Hotfix HF1 but if I add another F5 running BIG-IP 11.6.0 Build 6.341.442 Engineering Hotfix HF6, I get similar issues as Iqbal_Khan. the v12 report still runs and populates correctly but v11 fails with the same errors as Iqbal_Khan - I am running PS4 with latest snapin I can find...Any assistance would be most appreciated :-)
0
Comment made 19-May-2016 by Patrik Jonsson 3246
We're not running any v12 devices, so it's nice to hear that the script still seem to work with them. :) Have you compared the management ciphers? /Patrik
0
Comment made 20-May-2016 by mike 54
Hi Patrik I have compared the management ciphers and both are identical: sys httpd { ssl-ciphersuite DEFAULT:!aNULL:!eNULL:!LOW:!RC4:!MD5:!EXP } Any other ideas please? :-)
0
Comment made 20-May-2016 by Patrik Jonsson 3246
The "default" portion of the cipher strings differ between versions, but I checked the SOL article and TLS1.2 should be supported for all of the versions you mentioned. Is the TLS1.2 option set to $true in the config section? What's the exact error message you get? Does it matter in which order you run them? I will try and see if I can fire up a v12 in my home lab. /Patrik
0
Comment made 20-May-2016 by Iqbal_khan 0
Hi Patrik, Tried all combinations mentioned regarding TLS1.2 but no joy :(... getting error message as below: Initialize-F5.iControl : Could not initialize connection with supplied information At C:\Program Files (x86)\F5 Networks\iControlSnapIn\MyBigIPReport.PS1:805 char:13 + $success = Initialize-F5.iControl -Username $user -Password $pass -HostName $Bi ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (test-lb-4:String) [Initialize-F5.iControl], Exception + FullyQualifiedErrorId : 2,iControlSnapIn.CmdLet.Global.InitializeiControl
0
Comment made 21-May-2016 by Patrik Jonsson 3246
Thank you for the update. Will get back to you as soon as I have something.
0
Comment made 21-May-2016 by mike 54
Hi Patrik Thanks for your reply - I did try both true and false for TLS1.2 but that made no difference. The error I was getting is the same as Iqbal_khan. HOWEVER it is now all working perfectly - the trouble is I have no idea why - it just decided to work - I did not change anything.... just arrived at work, decided to try and have another go at it, but is just worked. frustrating. Did you say there should be an "update available" button / indicator on the report? because if there is, I don't see it? Thanks
0
Comment made 21-May-2016 by Patrik Jonsson 3246
Hi Mike. That's good news, if not a bit puzzling. :) Yes, the update button will appear after a while when a new report has been generated. The client runs a javascript which polls the page and checks if the document has been updated. If it has it will show the button, if not it won't. I will still proceed to test 11.6 and 12.0 in order to try and reproduce the problems. As I might have mentioned before the error thrown by Initialize-F5.iControl is a bit devious. It says that the authentication has failed but I believe this is a hard coded error message as it says so even when a connection can't be established at all. I have had issues in the past with certain platforms (I think it was Windows 7). We're running the script on a Windows 2012 server.
0
Comment made 21-May-2016 by Patrik Jonsson 3246
Hi! I just ran the latest version of the snapin using powershell 4.0 on a Windows 8.1 client. Tried to connect to the v12 and then the 11.6. Then I reversed the order. Both worked fine. Could you capture some pcaps and see if iControl manage to negogiate a cipher and send some authentication? Could you also try to change the order of the device list to use v12 first and then v11.6 (and then reverse)? /Patrik
0
Comment made 23-May-2016 by mike 54
Hi Patrik, Not sure what I'm doing / not doing but try as I might, I cannot get the "update indicator" to appear - have the script running every 10 mins using task scheduler on the webserver, and webpage is displayed on there and also on a remote machine - I make changes to nodes etc. but no indicator appears even after considerable time to indicate that a change has been made? thanks!
0
Comment made 23-May-2016 by Patrik Jonsson 3246
Do you use a custom port to host the report by any chance? If you check the network tab of Chrome developer tools, do you see any requests heading for the bigipreport server? By default the update check will run every 30 minutes. I will run it myself and get back to you with my findings. /Patrik
0
Comment made 23-May-2016 by mike 54
Hi Patrik Nope - standard port 80 - and no I dont see any requests - how often should they occur? Thanks
0
Comment made 23-May-2016 by Patrik Jonsson 3246
I ran some tests and the update works as intended. It's just not as aggressive as you expect it to be (our environment is big so the script takes a long time to run so we never had need for short intervals). I've updated the script now and hopefully it will work more closely to what you'd expect. :) Thank you for all the feedback and keep it coming! Version 4.0.3 is out now. /Patrik
0
Comment made 24-May-2016 by mike 54
Hi Patrik Thanks for your reply - update installed, and the "updates available" feature now works :) Cheers
0
Comment made 25-May-2016 by Andy 52
Thanks for the guidance, I am running the script at the moment with "$loadbalancerdatamissing = $true" enabled against a single LB, however I am getting no output. I do get the following error when running the script, could this be the issue? PS D:\F5-PS> D:\F5-PS-4.03\Bigipreport-4.0.3.ps1 Exception setting "OutputEncoding": "The handle is invalid. " At D:\F5-PS-4.03\Bigipreport-4.0.3.ps1:342 char:1 + [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], SetValueInvocationException + FullyQualifiedErrorId : ExceptionWhenSetting
0
Comment made 25-May-2016 by Patrik Jonsson 3246
Hi Andy! What version of Powershell are you using? Which OS is running the script? How are you running the script (directly via the powershell shell: .\bigipreport.ps1 or via explorer, via Powershell ISE, are you pasting it in to a shell or some other way)?
0
Comment made 25-May-2016 by Andy 52
I am running Major Minor Build Revision ----- ----- ----- -------- 3 0 -1 -1 When i run the script via ISE i get the encoding message, but when via powershell directly (./Bigipreport-4.0.3.ps1) I do not get the error message. However in both cases I get no html or json pages generated.
0
Comment made 25-May-2016 by Patrik Jonsson 3246
Skip ISE and try Powergui. :) Do you have the debug option set to true? If so, can you see that the script goes trough partitions and indexes items? When the script has finished, do you get pool data if you enter "$Global:pools" and hit enter? I would recommend to upgrade powershell to version 4.0 (though that's probably not the issue here it's the version I use to test my "builds").
0
Comment made 25-May-2016 by Patrik Jonsson 3246
Have you added the $loadbalancerdatamissing part yourself btw? Because the script won't output any html or json if that's $true. :) The error you got earlier has been fixed since version 4.0.2. If you altered the script (except the config secion), try to use the original. /Patrik
0
Comment made 25-May-2016 by Andy 52
I am running the 4.0.3 code with $loadbalancerdatamissing set as default from download. I have run the script against a single LB and I do get output, when I 'scale' this out to the 45 instances I do not get data written out to file. Is there any further debugging I can enable to help determine the root cause of my issue?
0
Comment made 25-May-2016 by Patrik Jonsson 3246
Reason is most likely that information is missing from one of your devices. If you disable the debug option and run the script on all devices you should have less output and if one of your devices fails you should be able to pinpoint if a device is missing. If you end up empty handed I'll try to write a check function for you for debugging purposes. :) /Patrik
0
Comment made 25-May-2016 by Andy 52
Thanks for the help, I have two nodes that have failed to pull config, when these are commented out of the script the html and json files are created ok.
0
Comment made 25-May-2016 by Patrik Jonsson 3246
Thank you for your feedback Andrew! I will re-write the validation part to give better feedback in terms of missing load balancer data. /Patrik
0
Comment made 26-May-2016 by mike 54
Hi Patrik Just another thought - would it be possible to build in an option to have the default view either with the pools automatically expanded or as it is currently with the click to view? Thanks!
0
Comment made 26-May-2016 by Patrik Jonsson 3246
Sure, I'll add it to the feature request list. :)
0
Comment made 29-May-2016 by SSD 2
Hi Patrick, Thanks for the script! It worked great for a v11 system. I'm getting below error when trying to run against a LTM running v9.x: ************************************************** Cannot index into a null array. At D:\F5\Bigipreport4.0.3\Bigipreport-4.0.3.ps1:598 char:13 + For($x=0;$x -lt $PoolMembers[$i].count;$x++){ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray ************************************************** I have to change the TLS to false for v9 or it was just not connecting.
0
Comment made 30-May-2016 by Patrik Jonsson 3246
Hi! Sorry, I can only support version 11 and to some extent version 12. Simply because I don't have a version 9 to test against. :) /Patrik
0
Comment made 02-Jun-2016 by mike 54
Hi Patrik Is it possible to get the report to display pools that do not have an associated VS please?
0
Comment made 03-Jun-2016 by Patrik Jonsson 3246
Sure, that should not be a problem Mike. I'm on parental leave now and the weather is far too nice, but if you do some rain dancing I'll look into it as soon as the dark clouds arrive. :) /Patrik
0
Comment made 03-Jun-2016 by mike 54
Thanks Patrik, and congratulations :)
0
Comment made 05-Jun-2016 by Amanpreet Singh 384
Hi Patrik, Can we run this report on LB Configuration file. That is, if I import the configuration file to it or specify its path, will I be able to see the similar report ? The Idea is to prevent the script to log on into the production box every-time we run the script.
0
Comment made 05-Jun-2016 by Patrik Jonsson 3246
Sorry, the script is based around the iControl api. To do what you request I'd have to make a whole new script. :) /Patrik
0
Comment made 05-Jun-2016 by Patrik Jonsson 3246
Thanks Mike! :)
0
Comment made 14-Jun-2016 by mike 54
Hi Patrik I am successfully using your monitor which is superb. I am a little confused however, in as much as there are a bunch of nodes which are disabled by monitor (an http monitor) and instead of being shown as down, they are appearing in your monitor as "unknown" (in red) - I have other nodes using similar monitors which act correctly - the only thing I can think of is that the pools to which the naughty monitors belong do not have an associated VS - is it likely that this would cause this behaviour? Thanks!! Mike
0
Comment made 14-Jun-2016 by Patrik Jonsson 3246
Hi Mike! Thank you for keeping reporting bugs! I think that the reason you get "Unknown" is that my status translation function is lacking a case. Will add that to my current to-do list! Pools that do not have an associated VS should not appear at all in the current version. I'm working on a new version now though which will have that and some other features. /Patrik
0
Comment made 21-Jun-2016 by danielpenna 260
Small problem with the way we deploy the script and the json folder ( where monitors.json and pools.json are created and exist ). Because we have a large fleet of F5's we deploy a copy of each script per F5 to an individual folder each ( /F5-Prod and /F5-NonProd for example ) and have an index.html in there. With 4.0.3, it creates the objects successfully under /F5-Prod/json, but the site loads and references the root to find the files ( /json instead of /F5-Prod/json ) which means it doesn't load the site. This is not a complaint, just digging through the powershell now to see if I can resolve it. Just letting you know :). Edit: Found the / reference in bigipreport.js file, now how to figure out how to pass the current folder value into the script. Edit 2: To hard to modify JS, found reference in html input at the end of the PS script so have uniquely modified the html to point to modified bigipreport.js which has specific folder names. Manual hack but it should work.
0
Comment made 21-Jun-2016 by DebenB 1
Hi danielpenna , Same issue with me .. Any idea how to get the site working ... Site never loads
0
Comment made 21-Jun-2016 by danielpenna 260
DebenB, did some basic configuration hacking, Ill try and explain. 1. Modify the powershell for each F5 script from "language="javascript" src="/js/bigipreport.js" to "language="javascript" src="/F5directory/js/bigipreport.js" 2. Modify bigreport.js in each F5 folder to: $.when( // Get pools $.getJSON("/F5directory/json/pools.json", function(result){ pools = result; }), //Get the monitor data $.getJSON("/F5directory/json/monitors.json", function(result){ monitors = result; })
0
Comment made 21-Jun-2016 by DebenB 1
Thanks danielpenna .. I Changed the F5 directory after which site loads but the search option's are not working.
0
Comment made 23-Jun-2016 by DebenB 1
Hi Patrik; I Have problem loading the site.. Script works fine but when i host in IIS its becomes a flat file and no search options and working ... all outputs in one file and JS not working correctly .. Please suggest.
0
Comment made 23-Jun-2016 by Patrik Jonsson 3246
Hi guys! Sorry for the late reply! So the problem you two are facing is that you try to host the report in a subfolder instead of the site root? @DanielPenna, how big is your fleet? For us the report is the most useful when we combine all our machines. Easier to pinpoint where individual services are. If you need to search for data in only one F5 you can filter in the column. That said, I will try to finish the new version asap and try to arrange so it does not have to reside in the site root. Check back sometime next week and thank you both for reporting issues!
0
Comment made 25-Jun-2016 by DebenB 1
Thanks Patrik.... Yup the reason to host seperate reports for individual devices is to limit users to have access all of data. Thanks for support as always , will check next week for ne version :)
0
Comment made 26-Jun-2016 by Patrik Jonsson 3246
New version is out now. Note that the configuration is now done through a configuration file. Just download the zip file, make sure that the bigipreportconfig.xml is in the same directory as the script. Edit the xml file and test the script. As usual, please let me know if you encounter any problems. FAQ can be found here: https://loadbalancing.se/bigip-report/#FAQ /Patrik
0
Comment made 30-Jun-2016 by Patrik Jonsson 3246
Deben, Daniel. Did the new version work out for you?
1
Comment made 03-Jul-2016 by danielpenna 260
Hey Patrick, I will try and get back to you over the next few days. Have a few key tasks that need to be done :)
0
Comment made 04-Jul-2016 by yarrowfish 286
Hi Patrik! Hope you are doing well! I just tried the new version, but unfortunately it didn't work for me. The report was successfully generated, but It did not load in the browser. Any idea's ? /Riad
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
Hi Riad! Thank you for your feedback! When you say it does not load in the browser, do you mean that the spinner never disappears? If so, can you please check the console of the web browser to check for javascript errors? Did you do fresh "install"? /Patrik
0
Comment made 07-Jul-2016 by danielpenna 260
Hey Patrick, have setup 4.1.3 Beta now and it looks much better. The /json folder gets the right files in /f5_name/json folder and the site loads for me. Only issue I have is when you click on the pool name is that the page goes dark and the window shows up in front but there is no details. I confirm monitor.json contains the pool I was searching for. In regards to size of enviornment, I have 7 clusters of F5's for Production and a matching 7 in our PreProd. The one I am testing on now has 690 Virtual servers ( our Preprod device ).
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
Hi Daniel Thank you for your feedback! Could you please check the console window in the browser to see if there's any errors? /Patrik
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
And please tell me which browser you're using? /Patrik
0
Comment made 07-Jul-2016 by danielpenna 260
Hey Patrick, deleted another F5 directory and ran it against another F5 ( 380 VIPs this time ) and it worked fine. Chrome 50 as test browser but will try FF/IE after destroy the whole originial directory and try again. Appreciate your persistence :).
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
Great news! Yes, a fresh install is always preferred. The positive thing now at least is that you can keep the config file between releases unless I add features. :) /Patrik
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
Oh, and the report works best in Chrome, might work in Firefox. Forget IE, it's a lost cause! :) /Patrik
0
Comment made 07-Jul-2016 by danielpenna 260
Sorry Patrick, rerun the report on the F5 with 694 Virtuals and have the empty pool details, ran a report on one with 1390 Virtual Servers and same issue. I have one with only 5 Virtuals and Ill try that one. Edit: Tested one with 200 VS, same issue. I think I'll work backwards from the working one and check the others...probably something simple :|
0
Comment made 07-Jul-2016 by Patrik Jonsson 3246
Daniel, would you mind creating a question in the forum and link it in the comments? The comment formatting in the code share is non-existent and it would be much easier to help that way. /Patrik
0
Comment made 07-Jul-2016 by danielpenna 260
https://devcentral.f5.com/questions/issues-with-bigip-report-47511
0
Comment made 08-Jul-2016 by Patrik Jonsson 3246

Thanks Daniel, I've updated the question.

Btw, formatting is now supported in the comments. But the question is still nice as it keeps the page a bit less cluttered. :)

/Patrik

0
Comment made 11-Jul-2016 by synergieuk 0

Hi Patrik

I'm trying to get the new beta version running but despite completing the necessary IPs, creds etc in the xml config file, I keep getting this:

Initialize-F5.iControl : Could not initialize connection with supplied information At C:\inetpub\wwwroot\Bigipreport-4.1.2-beta.ps1:1047 char:13 + $success = Initialize-F5.iControl -Username $Global:Bigipreportconfig.Settings. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (:String) [Initialize-F5.iControl], Exception + FullyQualifiedErrorId : 2,iControlSnapIn.CmdLet.Global.InitializeiControl

What did I (not) do??

Thanks
0
Comment made 11-Jul-2016 by synergieuk 0

Sorted!! - PROXY Grrrr

0
Comment made 11-Jul-2016 by Patrik Jonsson 3246

Evil evil proxies! :) Thanks for updating, might be useful to others when troubleshooting. Will add that to the FAQ too.

/Patrik

0
Comment made 11-Jul-2016 by Patrik Jonsson 3246

Just wanted to add for those who want to use sub folders to host the report. I have an updated version of bigipreport but I can't upload it due to a problem with devcentral. Meanwhile, please look here for a manual patch:

https://devcentral.f5.com/questions/issues-with-bigip-report-47511

/Patrik

0
Comment made 14-Jul-2016 by Patrik Jonsson 3246

A patch has now been added with the help of DC's esteemed Jason Rahm. Now sub folders should work properly.

/Patrik

0
Comment made 14-Jul-2016 by danielpenna 260

Hey Patrick, thanks for the assistance. Getting great feedback from within my organization around the site. We already have an inhouse portal for pools that is more dynamic ( uses the old SOAP interface ) but the search feature on this gets everyone excited.

The only request I have left is back to the first comment I put back in OCT 2015 :). We love iRules internally and most Virtuals have at least 1-2 ( some 4-5 ) on them. I know you have included a section where you can manually add iRules that you want display but is there a future version where the iRules that are attached to the Virtuals can be dispalyed without explicitly defining them. Just a simple feature request and hopefully not read as a demand.

Again, awesome work. This thing rocks :).

0
Comment made 14-Jul-2016 by Patrik Jonsson 3246

Thanks Daniel, your comment is very much appreciated. I will make sure to include that in a future version. Adding virtual details might take a bit of a time since there's so many properties of a virtual server. Stay tuned. :)

/Patrik

0
Comment made 18-Jul-2016 by Patrik Jonsson 3246

I can't update this page anymore due to the ASM giving me issues so I've added the latest version here:

https://loadbalancing.se/2016/07/18/bigipreport-4-2-0/

It now features:

  • Virtual server details
  • Virtual server details allows for displaying iRules (requested by Daniel Penna)
  • Associated address translation (requested by Craig Gauntlett)
  • Some smaller bug fixes

Hope to make it more pretty in future versions. Enjoy!

/Patrik

0
Comment made 19-Jul-2016 by Patrik Jonsson 3246

Deleted some stuff from the code share page. Latest version can be found there again.

Fixed in 4.2.1:

Members having status unknown is now not listed as down any more. (requested by Mike)

/Patrik

0
Comment made 26-Jul-2016 by Patrik Jonsson 3246

I've seen some potential issues with 4.2.1 and error reporting. Will try to issue an update soon.

/Patrik

0
Comment made 30-Jul-2016 by DebenB 1

Thanks Patrik for you continuous support and dedication.. Appreciated....

Trying scheduler to schedule scripts to generate report every morning.. But the problem is that old file is not replaced by new one and error below...If you can guide / help...

Also need you support/guidance how to display persistence and LB method used.. Is new version 4.2 includes that.


Move-Item : Cannot create a file when that file already exists. At C:\inetpub\Bigipreport-4.1.2-beta\TCS F5 Script\Bigipreport-4.1.2-beta.ps1:1119 char:2 + Move-Item -Force $($Global:poolsjsonpath + ".tmp") $Global:poolsjsonpath + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (C:\inetpub\Bigi...json\pools.json:FileInfo) [Move-Item], IOException

+ FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand

Thanks Deben

0
Comment made 30-Jul-2016 by Patrik Jonsson 3246

Hi Paul

CSV being a flat file is not optimal for this kind of "multi-dimensional" output, but if you could provide me with one or two example rows with data, preferrably with at least two pools connected to the VIP and at least two members per pool, I should be able to figure something out.

/Patrik

0
Comment made 30-Jul-2016 by Patrik Jonsson 3246

Hi Deben

Do you have the files on the same server as the report is running on? Have you double checked the web folder permissions? Do you also get these problems if you run the script manually?

I can see also that you're running an old version of the script. A newer version could give you better error handling.

If you're upgrading to version 4.2.0 or higher, don't forget to update your configuration file with the irules section.

/Patrik

0
Comment made 31-Jul-2016 by DebenB 1

Thanks Patrik,

Yes files are on same server and located in root folder.

Script path >>> C:\inetpub\Bigipreport-4.1.2-beta\TCS F5 Script\ Report HTML Files >>>> C:\inetpub\Bigipreport-4.1.2-beta

Did not get problems normally running the script. Using Admin account to run the scripts and have admin rights on all the folders. Let me try newer version.

0
Comment made 01-Aug-2016 by yarrowfish 286

Hi Patrik!

Just downloaded version 4.2.1 and it works great. One question, is it possible to hide the partition information everywhere and not only for the Pools?

/Riad

0
Comment made 04-Aug-2016 by Patrik Jonsson 3246

Sorry about the late reply. Not at the moment I'm afraid. While starting on new versions I'm usually going through the comments checking for feature requests and I'll include this in the future versions. Just keep track on the project and you'll get an alert. :)

/Patrik

0
Comment made 07-Aug-2016 by yarrowfish 286

Great! I forgot one feature request. It would be really nice to be able to no only see the DataGroup list that is associated with a VIP but also see the content, like you done with the irules. :-)

0
Comment made 07-Aug-2016 by Patrik Jonsson 3246

Added to the list. :)

/Patrik

0
Comment made 17-Aug-2016 by DebenB 1

Hi Patrik, Appreciate you efforts , thanks for great work and sharing.

V4.2.1 In bigipreportconfig.xml section "choose which columns to show" showcompressionprofile set to false but in main .PS file there is no condition set hence its showing up.

.......... Also please guide which section to look for to be able to display "Server SSL Profile" details in virtual server details once clicked a VIP.

.................. Feature request - For VIP persistence used. - For Pool Load-balancing method in use

0
Comment made 17-Aug-2016 by Patrik Jonsson 3246

Thanks Deben, it must have fallen off in one of the upgrades. :)

I started to work on a new version, but it's been some crazy weeks for me with firewall troubles and a new environment to set up from scratch in Georgia (not the US one).

I have not planned to add that many feature in the coming version, it's mostly focus on making it more stable and fixing some bugs that has been raised by the users at my company.

Can't make any promises as to when the new version or what it will contain, but I do promise to put the things you requested on the list.

/Patrik

0
Comment made 19-Aug-2016 by Patrik Jonsson 3246

Released a new and hopefully more stable version now.

  • Fixed a bug with error reporting
  • Made it easier to close larger irules by putting the close button below the lightbox
  • Cleaning up CSS. Still got some work here. :)
  • Fixed a bug in the data group list parser function

Working on the following for the next version:

  • Data group lists
  • Clearing filter searches
  • Fix the bug where you can't hide the compression profile

If I have time:

  • Realtime pool status polling
  • Hiding partition information in more places
  • Persistence profiles used
  • Pool load balancing method

/Patrik

0
Comment made 19-Aug-2016 by Fabinounours 0

Hello, I have seen this program. Thank you It is usefull. I have 2 idea of evolution. 1 - the information presented are good for people that administrate F5. We have, I think too much information for users. To my mind, it could be interested to have a simple view (vs and pool/pool members) for people, who wants know what F5 is loadbalancing. 2 - To have a simple view of state ( of vs and pool member: available, unavailable, offline, unknown, disabled, forced offline))

0
Comment made 19-Aug-2016 by Patrik Jonsson 3246

Hi!

Thanks!

So you would like an option to remove the pool details and the virtual server details altogether?

/Patrik

0
Comment made 01-Sep-2016 by Patrik Jonsson 3246

Hi!

Releasing a new version now, but I have not had time to test it as much as I would have liked to. Thus the "-beta" in the name. :)

The significant changes apart from smaller bug fixes:

  • Adding data group list parsing and writing the output to json files * Fixed so you can hide the compression columns
  • Showing data group list content now works
  • Made data group lists clickable when looking at irules definitions.
  • Added pre-checks for the static files

New options in the settings file, so either update that one fully, or replace the irule settings section with the new content.

I would also like to know if any of you have been encountering issues when extracting virtual server information? I had some issues when running the script on W2012 in regards to getting NAT rules from VIP's.

Left to do for the next version:

  • Clearing search filters

If I have time:

  • Realtime pool status polling
  • Hiding partition information in more places
  • Persistence profiles used
  • Pool load balancing method

Please let me know if you run into any issues with the new version!

/Patrik

0
Comment made 06-Sep-2016 by yarrowfish 286

Nice Work Patrik! Now we can see the Data group list content :-)

What doesn't seem to work is to hide the compression column. I set it to false but it still shows up.

/Riad

0
Comment made 06-Sep-2016 by Patrik Jonsson 3246

Hi!

Thanks. I ran it myself now and it seems to work fine. Have you done a "fresh" install?

/Patrik

0
Comment made 06-Sep-2016 by Patrik Jonsson 3246

4.2.7 Released

Small fix in the data group list parser where it will now ignore data group lists or commands that resides in comments.

/Patrik

0
Comment made 07-Sep-2016 by yarrowfish 286

My mistake Patrik, it now works hiding the Compression column. :-)

Have you thought of making it possible to search inside a Datagroup or irule? I mean that when you in the search field type anything that it will also match the content of the Datagroup lists and rules? Would it be possible?

/Riad

0
Comment made 07-Sep-2016 by Patrik Jonsson 3246

Hi!

Thanks for getting back regarding the compression column and for your feedback.

Yes, but I have not been able to come up with a good way to do it yet. If one day I finally take the step to fully generate the report using javascript it would not be a problem. But right now this would mean that I would have to add the content of the data group lists and irules in the html DOM, and that would make the report several times bigger than it is today.

Given how heavy it is to load already I don't consider that an option. There could be a way to search them in a separate lightbox, but until I can come up with a clever way to do it will have to be added to the RFE list. :)

/Patrik

0
Comment made 12-Sep-2016 by JackRodriguez 1

Hi Patrik,

Just started using the reporting tool on version 4.2.1. Very pleased with the output. Winning big marks with management. Thanks so much. Not sure if this feature request has been discussed or road-mapped already but it would be awesome if we could see the Priority Group settings in the Pool details. Has that been discussed already? I apologize if that is the case.

thanks again.

0
Comment made 12-Sep-2016 by Patrik Jonsson 3246

Hi Jack!

Thanks, it's nice to hear that! :) I don't think it has been mentioned before. Adding it to the feature request list. Not sure when it will be done though as the list is long. :)

/Patrik

0
Comment made 12-Sep-2016 by Patrik Jonsson 3246

Hi again

I am learning Git, so I needed something to experiment with. Consider your wish granted. :)

4.2.8 Released

Now showing priority groups in the pool details.

Planned features

  • Clearing search filters
  • Realtime pool status polling
  • Pool load balancing method
  • Persistence profiles used
  • Using anchor links to make it easier to share information
  • Adding searching in data group lists and irules
  • Pool parsing support of policies and data group lists

Possible updates that might come as a separate module

  • License expiration
  • SSL certificate expiration warnings
  • iHealth analysis

/Patrik

0
Comment made 13-Sep-2016 by JackRodriguez 1

Patrik,

Just loaded 4.2.8 and the Priority Groups are now showing up. Thanks for the quick response on the feature request. I will continue to check back for feature enhancements from time to time.

thanks again.

0
Comment made 28-Sep-2016 by Patric 0

Hi Patrik, thanks for a great work on BigIP-report your sharing. Do you think you can add Hypervisor support? Collect all vCMP in a hypervisor and then collect all the information inside that LB.

"Nice to have" would also be to have Load balancer name as a http link pointing to the F5 device. Or even better would be if link can point to Virtual server it self in GUI.

https:///tmui/Control/jspmap/tmui/locallb/virtual_server/properties.jsp?name=/Common/emer1-443/CallHome_vs.

But maybe last is more admin like stuff and not basic read-only as I understand you have made BigIP report as. / Cheers Patric

0
Comment made 03-Oct-2016 by Patrik Jonsson 3246

Thank you for the suggestions. Adding to backlog!

0
Comment made 04-Oct-2016 by AN 162

Hi Patrik, Are you planning to add graphical presentation of those virtual server and their pool member? I remember there were some script that I came across that show real time status of VSERVER and Pool member with green for up and red for down.

Thanks.

0
Comment made 04-Oct-2016 by Patrik Jonsson 3246

Hi Anis

I have an idea on how to provide real-time status of pool members through javascript, but that would require users to set up a virtual server on every load balancer with a specific irule.

Not sure if people would be willing to do so, and if not, how to do it in another way... Any suggestions are very welcome. :)

/Patrik

0
Comment made 06-Oct-2016 by Patrik Jonsson 3246

Should not be a problem. Added to the list! :)

/Patrik

1
Comment made 06-Oct-2016 by danielpenna 260

Put myself down for a +1 on the ASM Policy request feature Patrick. Would assist my teams in understanding what policy is applied to what.

1
Comment made 07-Oct-2016 by Patrik Jonsson 3246

Noted!

0
Comment made 11-Oct-2016 by Prakash 03 0

Hello Patrik,

Newbee here, Thanks for the awesome script. The script works good for 11.5.x versions. But, it breaks for 10.x Do you have a stable script for 10.2.x and 11.3.x versions?

0
Comment made 18-Oct-2016 by DebenB 1

Thanks Patrik; Can VIP status be added in status ; have a requirement to see both VIP and Pool member status.

0
Comment made 19-Oct-2016 by Frank 135

Thanks Patrick !!! I just started using version 4.2.8 and modified a script little bit so at the end of the script the browser open ups automatically and report comes up instantly. Here is the line

start-process FireFox.exe -ArgumentList 'http://localhost/Report.html'

Also, I have active/Standby LTM's, So if somehow LTM fails over to standby then would it be possible to add that information in the report's Load Balancer section that if it is active or standby.?

0
Comment made 19-Oct-2016 by Patrik Jonsson 3246

Hey!

Np. :) Adding the feature requests to the list. Currently a bit short on time due to big projects at work and spare time so they will probably take a while.

/Patrik

0
Comment made 02-Nov-2016 by Patrik Jonsson 3246

Made a really small change in the last version in order to be able to view persistence profiles.

Sorry to all that is waiting for features. Still crazy and work and spare time. Of course, if you have a serious bug, please let me know and I will make time to solve it.

/Patrik

2
Comment made 09-Nov-2016 by JackRodriguez 1

Hi Patrik. I am running into a small issue with V4.2.8. Seems to only be affecting one of our LTMs on code 11.6.0 HF5. All of our LTMs are running same code so not sure what is different. Anyway, this system is not reporting SSL Client Profiles on any of the SSL VIPs. "SS" column is "No" and when you click the VIP, the Client SSL Profile section is "None". I ran across this issue when trying to search all VIPs that had a certain SSL Profile attached. Not a sortable field by the way but that would be awesome if it was. Anyway, have you seen this issue before?

thanks in advance.

0
Comment made 12-Nov-2016 by Patrik Jonsson 3246

Hi Jack!

  • Was this working in earlier versions?
  • Is is affecting this particular SSL profile, or all of them?
  • Do you have other LTM's with 11.6 where this is working?
  • Do you have error reporting enabled? If not, could you please run it manually against this particular machine? Any exceptions being thrown?

When you refer to the field being sortable, do you mean that you'd like to see the profile name in the column?

/Patrik

-1
Comment made 12-Nov-2016 by Patrik Jonsson 3246

Hi Paul

Sure thing. Our ASM implementation has been put on hold at the moment due to big external projects. But I will add it later.

/Patrik

0
Comment made 15-Nov-2016 by JackRodriguez 1

Patrik,

Here is what I know.

•Was this working in earlier versions? Not completely certain of that since I never was really trying to search for a particular cert profile. •Is is affecting this particular SSL profile, or all of them? It is affecting the entire LTM and all of the VIPs that should have cert profiles attached but are not showing up. In fact no VIPs are reporting SSL client profiles attached on this LTM. •Do you have other LTM's with 11.6 where this is working? Yes, all others are on this code and reporting correctly. •Do you have error reporting enabled? If not, could you please run it manually against this particular machine? Any exceptions being thrown? I do not currently but I will try this.

The sortable thing was just a comment about what I was originally trying to do (task) with this reporting tool. I was trying to find all instances where a particular cert (SSL Profile) was being used. A better word would have been searchable and not sortable.

thanks again

0
Comment made 19-Nov-2016 by Patrik Jonsson 3246

Hi Jack!

Did you get around to checking for errors?

Regarding the sorting. It's hard to fit everything with limited screen estate. Most people today are sadly still using 1080p monitors and adding the name into the column would be stealing too much valuable space.

Searching for it would be possible, but a bit challenging as the report is built right now.

May I suggest a third option parsing the data you have with powershell?

Check out this article:

https://loadbalancing.se/2016/10/07/synergy-effect-of-running-bigipreport/

Searching for all virtual servers using a specific ssl profile could then be accomplished by running:

$Virtualservers | Where-Object { $_.sslprofile -eq "/Common/myprofile" }

/Patrik

0
Comment made 14-Dec-2016 by Bman27 0

Do you have a port of this to python?

0
Comment made 14-Dec-2016 by Patrik Jonsson 3246

No, sorry.

/Patrik

0
Comment made 07-Jan-2017 by Maneesh 288

Hi Patrick I am unable to get correct information for SSL using the script I have got my LTM's running on BIG-IP 12.1.1 Build 1.0.196 Hotfix HF1.

Have got another pair of LTM's running on BIG-IP 10.2.4 Build 866.0 Hotfix HF12. In which I get the SSL info correct but script does not provide the pool information.

0
Comment made 08-Jan-2017 by Patrik Jonsson 3246

Could you please elaborate what is wrong with the ssl information?

As for version 10, sorry but I am unable to support that as we don't have any available for testing.

/Patrik

0
Comment made 08-Jan-2017 by Maneesh 288

In the SSL section it says NO SSL though there is a client and Server SSL profile both enabled on the VIP.

0
Comment made 08-Jan-2017 by Maneesh 288

Image Text

0
Comment made 08-Jan-2017 by Patrik Jonsson 3246

Ok, that's not how it's supposed to be at all. Could you please paste the virtual server config section in a PM to me so I can try to re-produce it?

/Patrik

-1
Comment made 09-Jan-2017 by Patrik Jonsson 3246

I believe that I have managed to re-produce the bug. Will investigate and issue an update as soon as I can.

Thanks for reporting!

/Patrik

0
Comment made 09-Jan-2017 by Patrik Jonsson 3246

Might have been false alarm actually. Upon checking closer I got the right information on my vips.

The script currently only checks for client profiles, so if it was only a server side profile assigned it would show the ssl profile for that vip as "No". But in your case you say you have both client and server assigned.

Have you tried running the script manually? Is there any errors?

/Patrik

0
Comment made 09-Jan-2017 by Maneesh 288

Cannot index into a null array. At C:\inetpub\wwwroot\testBigipreport-4.2.9 -.ps1:1003 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\testBigipreport-4.2.9 -.ps1:1011 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\testBigipreport-4.2.9 -.ps1:1059 char:5 + $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresst ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\testBigipreport-4.2.9 -.ps1:1060 char:5 + $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresss ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

2017-01-09 06:19:49 Adding orphaned pools to the virtual server list 2017-01-09 06:19:49 Verifying load balancer data to make sure that no load balancer is missing 2017-01-09 06:19:49 No missing loadbalancer data was detected, compiling the report 2017-01-09 06:20:01 No iRule links to add to the dropdown 2017-01-09 06:20:01 No iRule definitions to add to the body 2017-01-09 06:20:01 Writing report temporary file to C:\inetpub\wwwroot\index.html.tmp 2017-01-09 06:20:01 Writing temporary pools json object to C:\inetpub\wwwroot\json\pools.json.tmp 2017-01-09 06:20:01 Writing temporary monitor json object to C:\inetpub\wwwroot\json\monitors.json.tmp 2017-01-09 06:20:01 Writing temporary virtual server json object to C:\inetpub\wwwroot\json\virtualservers.json.tmp 2017-01-09 06:20:01 Writing temporary irules json object to C:\inetpub\wwwroot\json\irules.json.tmp 2017-01-09 06:20:01 Writing temporary data group list json object to C:\inetpub\wwwroot\json\datagrouplists.json.tmp 2017-01-09 06:20:01 Successfully wrote the temporary files 2017-01-09 06:20:11 Updating the report with the new data 2017-01-09 06:20:11 The report has been successfully been updated 2017-01-09 06:20:11 There were errors while generating the report 2017-01-09 06:20:11 No error mail reporting enabled/configured

0
Comment made 09-Jan-2017 by Patrik Jonsson 3246

Ok, I have an idea. Writing a fix for you. Hopefully that will help.

/Patrik

0
Comment made 09-Jan-2017 by Patrik Jonsson 3246

Try 4.3.0 and see if you still get the errors?

/Patrik

0
Comment made 09-Jan-2017 by Maneesh 288

Thank you so much Patrick. If it shows SSL info that would be really helpful as we use SSL extensively and for both client and server side encryption.

0
Comment made 09-Jan-2017 by Patrik Jonsson 3246

Sure, I will add that.

Let's focus on getting those errors out of the way first and see if it helps.

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

Cannot index into a null array. At C:\inetpub\wwwroot\newBigipreport-4.3.0.ps1:1004 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\newBigipreport-4.3.0.ps1:1012 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\newBigipreport-4.3.0.ps1:1060 char:5 + $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresst ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\newBigipreport-4.3.0.ps1:1061 char:5 + $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresss ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

2017-01-10 10:18:50 Adding orphaned pools to the virtual server list 2017-01-10 10:18:51 Verifying load balancer data to make sure that no load balancer is missing 2017-01-10 10:18:51 No missing loadbalancer data was detected, compiling the report 2017-01-10 10:19:00 No iRule links to add to the dropdown 2017-01-10 10:19:00 No iRule definitions to add to the body 2017-01-10 10:19:00 Writing report temporary file to C:\inetpub\wwwroot\index.html.tmp 2017-01-10 10:19:00 Writing temporary pools json object to C:\inetpub\wwwroot\json\pools.json.tmp 2017-01-10 10:19:00 Writing temporary monitor json object to C:\inetpub\wwwroot\json\monitors.json.tmp 2017-01-10 10:19:00 Writing temporary virtual server json object to C:\inetpub\wwwroot\json\virtualservers.json.tmp 2017-01-10 10:19:00 Writing temporary irules json object to C:\inetpub\wwwroot\json\irules.json.tmp 2017-01-10 10:19:00 Writing temporary data group list json object to C:\inetpub\wwwroot\json\datagrouplists.json.tmp 2017-01-10 10:19:00 Successfully wrote the temporary files 2017-01-10 10:19:10 Updating the report with the new data 2017-01-10 10:19:10 The report has been successfully been updated 2017-01-10 10:19:10 There were errors while generating the report 2017-01-10 10:19:10 No error mail reporting enabled/configured

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

This certainly shows why you're not seeing the ssl profiles, but it does not explain why the errors occur.

  • What role does the iControl user have? It should have read-only on all partitions.
  • Is there no other error prior to the ones you pasted above? I would have expected an error on line 964 too considering the output.

Please paste this below the data retrieval (line 967) and run the script again?

"Here's the virtual server profile list"
$virtualserverprofilelist
"Here's the object type"
$virtualserverprofilelist.gettype()

Paste the output in a comment (censor as needed). It should look like this:

[array]$virtualserverlist = $f5.LocalLBVirtualServer.get_list()
[array]$virtualserverdestinationlist = $f5.LocalLBVirtualServer.get_destination($virtualserverlist)
[array]$virtualserverdefaultpoollist = $f5.LocalLBVirtualServer.get_default_pool_name($virtualserverlist)
[array]$virtualserverprofilelist = $f5.LocalLBVirtualServer.get_profile($virtualserverlist)
[array]$virtualserverirulelist = $f5.LocalLBVirtualServer.get_rule($virtualserverlist)
[array]$virtualserverpersistencelist = $f5.LocalLBVirtualServer.get_persistence_profile($virtualserverlist)
"Here's the virtual server profile list"
$virtualserverprofilelist
"Here's the object type"
$virtualserverprofilelist.gettype()

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

What role does the iControl user have? It should have read-only on all partitions. Ans - It is an Admin User on the LTM's Is there no other error prior to the ones you pasted above? I would have expected an error on line 964 too considering the output. Ans - I would re-run and look closely, have around 270 VIP's and the four errors I pasted are common for all the VIP's.

Would try again and keep you posted.

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

So strange. We have ~1000 VIPs in total on multiple clusters and I have never seen this before. If you add the debug lines I asked for it might give some more insight as to what could be wrong.

From the errors you have provided it looks like the F5 does not return any profiles at all.

  • Do you have any other load balancers you can try this against?
  • Could you try a different account? The script does not need more than read-only, so feel free to pick any other user with at least read access to all partitions.

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

Would try using a read only account btw FYI I tried on a lab ltm and there I got the ssl information though for both client and server side it gave the same I.e client profile info.

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

That would conclude that it's a problem with one specific load balancer, and only for some objects? Very weird...

Read-only vs admin does not make a difference in terms of results, it's just good practice to not give more access than necessary.

For "fun" could you please run this on the device (ssh to it) and see if you see your ssl profiles then?

curl -sku user:password https://localhost/mgmt/tm/ltm/virtual?expandSubcollections=true\&\$select=name,profilesReference/items/name,profilesReference/items/context | json-format

You need to run the command as an admin user, preferably the same user you used to generate the report earlier.

You should then get a list that looks like this:

{
      "name": "vipname",
      "profilesReference": {
        "items": [
          {
            "name": "profilename",
            "context": "all",
            "nameReference": {
              "link": "https://localhost/mgmt/tm/ltm/profile/tcp/~Common~profilename?ver\u003d12.1.2"
            }
          }
        ]
      }
    },

If you don't see the profiles on your servers you have grounds to open up a case with F5 (they support iControl Rest but not the powershell snap-in).

That would be the "simple" way. Then there is a way of using Wireshark to capture the iControl traffic, decipher it to extract the SOAP request and response and then open up a case with that. But that would probably require too much effort. :)

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

You are correct I tried the command on the problematic LTM and was able to get the output.

"name": "VIP NAME", "profilesReference": { "items": [ { "name": "VIP NAME", "context": "clientside", "nameReference": { "link": "https://localhost/mgmt/tm/ltm/profile/client-ssl/~Common~VIP NAME?ver\u003d12.1.1" }

Additionally the problematic LTM is a Virtual instance on a Viprion chassis dunno if that make a difference.

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

VCMP instance or not would not make a difference I'm afraid. The only thing left from what I can see if so to open up a case with F5 asking them for help troubleshooting iControl SOAP. I'd point out that it's working on other F5's while this particular unit is not returning the SSL profiles.

Perhaps they've seen this issue before or know some way to troubleshoot further.

Is this unit part of a cluster? If so, have you tried it against both nodes?

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

Added those lines "Here's the virtual server profile list" $virtualserverprofilelist "Here's the object type" $virtualserverprofilelist.gettype()

Post running got below output 2017-01-11 05:30:28 Fetching information about /Common/www.VIP-443 Cannot index into a null array. At C:\inetpub\wwwroot\updated-Bigipreport-4.3.0.ps1:1009 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\updated-Bigipreport-4.3.0.ps1:1017 char:4 + $virtualserverprofilelist[$i] | ForEach-Object { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\updated-Bigipreport-4.3.0.ps1:1065 char:5 + $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresst ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

Cannot index into a null array. At C:\inetpub\wwwroot\updated-Bigipreport-4.3.0.ps1:1066 char:5 + $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresss ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray

This is line 1009 $virtualserverprofilelist[$i] | ForEach-Object { 1009 >>>>> $virtualserverprofilelist[$i] | ForEach-Object { 1010>>>>>> if(string -eq "PROFILE_TYPE_CLIENT_SSL"){ 1011>>>>>> $objTempVirtualServer.sslprofile = $_.profile_name; 1012>>>>>> } 1013>>>>>> }

This is line 1017 $virtualserverprofilelist[$i] | ForEach-Object {

0
Comment made 10-Jan-2017 by Maneesh 288

Ok for the working one I got below: - Here's the virtual server profile list

                                              profile_type                                                profile_context profile_name
                                              ------------                                                --------------- ------------
                                      PROFILE_TYPE_FAST_L4                                       PROFILE_CONTEXT_TYPE_ALL /Common/fastL4
                                   PROFILE_TYPE_CLIENT_SSL                                    PROFILE_CONTEXT_TYPE_CLIENT /Common/clientssl-insecure-compatible
                                   PROFILE_TYPE_SERVER_SSL                                    PROFILE_CONTEXT_TYPE_SERVER /Common/crypto-client-default-serverssl
                                          PROFILE_TYPE_TCP                                       PROFILE_CONTEXT_TYPE_ALL /Common/tcp

Here's the object type

Method invocation failed because [iControl.LocalLBVirtualServer] does not contain a method named 'get_source_address_translation_type'.

While for the non-working one I got below: -

2017-01-11 06:04:14 Adding orphaned pools to the virtual server list 2017-01-11 06:04:14 Getting data from IP 2017-01-11 06:04:15 iControl session successfully established 2017-01-11 06:04:15 Getting hostname 2017-01-11 06:04:15 Hostname is ltm-hostname 2017-01-11 06:04:15 Caching LTM information from ltm-hostname 2017-01-11 06:04:15 Getting partition information 2017-01-11 06:04:15 Caching node data in partition Common 2017-01-11 06:04:15 Caching monitors in partition Common 2017-01-11 06:04:16 Caching data group lists in partition Common 2017-01-11 06:04:17 Caching Pools in partition Common 2017-01-11 06:04:28 Caching iRules in partition Common on LTM 2017-01-11 06:04:37 Caching Virtual servers in partition Common Exception calling "get_profile" with "1" argument(s): "There is an error in XML document (1118, 79)." At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:964 char:3 + [array]$virtualserverprofilelist = $f5.LocalLBVirtualServer.get_profile($virtu ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException

Here's the virtual server profile list Here's the object type You cannot call a method on a null-valued expression. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:971 char:1 + $virtualserverprofilelist.gettype() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

Method invocation failed because [iControl.LocalLBVirtualServer] does not contain a method named 'get_source_address_translation_type'.

0
Comment made 10-Jan-2017 by Maneesh 288

Yes Patrick this is part of a cluster and now I tried on another non-viprion unit which is again a cluster tried on primary and results are same no SSL info being populated. The above output is from the same cluster.

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

Yeah, this really confirms that you indeed does not get any profiles. I'm afraid F5 support is the next step.

/Patrik

0
Comment made 10-Jan-2017 by Maneesh 288

Cheers lemme try that route. Thanks for your help and it is a great script you have created.

0
Comment made 10-Jan-2017 by Patrik Jonsson 3246

Thanks mate, please report back with the findings (even if they're not positive)?

/Patrik

0
Comment made 25-Jan-2017 by Patrik Jonsson 3246

That one will most likely come soon. Stay tuned. :)

1
Comment made 25-Jan-2017 by Zdenda 433

Good job!

0
Comment made 16-Feb-2017 by Vikneswaran 69

Hi patrick,

Below is the error. Please help to fix it.:

Out-File : Could not find a part of the path 'C:\inetpub\wwwroot\json\pools.json.tmp'. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:1385 char:54 + ... -Depth 5 | Out-File -Encoding "UTF8" $($Global:poolsjsonpath + ".tmp ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

2017-02-16 08:34:24 Failed to update the temporary pool json file 2017-02-16 08:34:24 Writing temporary monitor json object to C:\inetpub\wwwroot\json\monitors.json.tmp Out-File : Could not find a part of the path 'C:\inetpub\wwwroot\json\monitors.json.tmp'. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:1393 char:57 + ... -Depth 5 | Out-File -Encoding "UTF8" $($Global:monitorsjsonpath + ". ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

2017-02-16 08:34:24 Failed to update the temporary monitor json file 2017-02-16 08:34:24 Writing temporary virtual server json object to C:\inetpub\wwwroot\json\virtualservers.json.tmp Out-File : Could not find a part of the path 'C:\inetpub\wwwroot\json\virtualservers.json.tmp'. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:1402 char:63 + ... -Depth 5 | Out-File -Encoding "UTF8" $($Global:virtualserversjsonpat ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

2017-02-16 08:34:24 Failed to update the temporary virtual server json file 2017-02-16 08:34:24 Writing temporary irules json object to C:\inetpub\wwwroot\json\irules.json.tmp Out-File : Could not find a part of the path 'C:\inetpub\wwwroot\json\irules.json.tmp'. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:1414 char:56 + ... -Depth 5 | Out-File -Encoding "UTF8" $($Global:irulesjsonpath + ".tm ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

2017-02-16 08:34:24 Failed to update the temporary irules json file 2017-02-16 08:34:24 Writing temporary data group list json object to C:\inetpub\wwwroot\json\datagrouplists.json.tm Out-File : Could not find a part of the path 'C:\inetpub\wwwroot\json\datagrouplists.json.tmp'. At C:\inetpub\wwwroot\Bigipreport-4.3.0.ps1:1435 char:64 + ... -Depth 5 | Out-File -Encoding "UTF8" $($Global:datagrouplistjsonpath ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

2017-02-16 08:34:24 Failed to update the temporary data group lists json file 2017-02-16 08:34:24 Failed to write the temporary files, waiting 2 minutes and trying again PS C:\inetpub\wwwroot>

0
Comment made 20-Feb-2017 by paul.dawson 69

Vikneswaran did you extract the directory which says "Move the content of this folder to the configured report root" to the web root which is configured in the XML file?

0
Comment made 20-Feb-2017 by Vikneswaran 69

Hi Paul, Thanks for fixing the issue. Its my mistake. I extracted the files and its successful now. But when i open the default html file (file:///C:/inetpub/wwwroot/default.html) which is written by the script, its showing only the four Dots keep rolling. Am i using the right procedure to open the file ? Please advice.

Here is the output:

2017-02-20 11:48:49 Adding orphaned pools to the virtual server list 2017-02-20 11:48:49 Verifying load balancer data to make sure that no load balancer is missing 2017-02-20 11:48:49 No missing loadbalancer data was detected, compiling the report 2017-02-20 11:48:50 No iRule links to add to the dropdown 2017-02-20 11:48:50 No iRule definitions to add to the body 2017-02-20 11:48:50 Writing report temporary file to C:\inetpub\wwwroot\default.html.tmp 2017-02-20 11:48:50 Writing temporary pools json object to C:\inetpub\wwwroot\json\pools.json.tmp 2017-02-20 11:48:50 Writing temporary monitor json object to C:\inetpub\wwwroot\json\monitors.json.tmp 2017-02-20 11:48:50 Writing temporary virtual server json object to C:\inetpub\wwwroot\json\virtualservers.json.tmp 2017-02-20 11:48:50 Writing temporary irules json object to C:\inetpub\wwwroot\json\irules.json.tmp 2017-02-20 11:48:50 Writing temporary data group list json object to C:\inetpub\wwwroot\json\datagrouplists.json.tmp 2017-02-20 11:48:50 Successfully wrote the temporary files 2017-02-20 11:49:00 Updating the report with the new data 2017-02-20 11:49:00 The report has been successfully been updated PS C:\inetpub\wwwroot>

0
Comment made 20-Feb-2017 by Patrik Jonsson 3246

Thank you for helping Paul!

Sorry, the BigIP Report support crew (aka. me) was on vacation for a few days. :)

This tool won't work using file:// as your browser would not allow XHR requests. Put the stuff on a web server according to the guide and you should be good to go. :)

2
Comment made 23-Feb-2017 by Vikneswaran 69

Thanks Patrik. Is it possible to get the health check parameter & Status as well through the report ? Also Whats next to SSL column(Starting with "c") ?

0
Comment made 23-Feb-2017 by Patrik Jonsson 3246

No problem. :) Health check parameter is available if you click on the pools. Having it in the table would take up way to much space.

C for "Compression Profile". :)

/Patrik

1
Comment made 23-Feb-2017 by Vikneswaran 69

Thanks for your quick response.

0
Comment made 23-Feb-2017 by Patrik Jonsson 3246

You are most welcome! :)

1
Comment made 23-Feb-2017 by Vikneswaran 69

Hi patrik, instead of BigIP Report, version 2.0- is it possible to add our own banner ? Also is it possible to have our own logo ?

0
Comment made 24-Feb-2017 by Patrik Jonsson 3246

Yeah, it is possible. But for what reason? :)

/Patrik

1
Comment made 24-Feb-2017 by Vikneswaran 69

Its to put the organisation logo and the name. Please let me know the procedure.

0
Comment made 24-Feb-2017 by Patrik Jonsson 3246

It's easy. Just replace the logo image file in /images :)

1
Comment made 25-Feb-2017 by Vikneswaran 69

:-) thanks

0
Comment made 27-Feb-2017 by Frank 135

Hi Patrix, I am currently using prior version (4.3.0) of BIG IP report, could please specify the new features introduced in version 4.3.0

Thanks

0
Comment made 27-Feb-2017 by Patrik Jonsson 3246

All the added features are documented in the powershell script. Download it and look at the top of the ps1 script to see what's been changed since your version.

If your version is old you might be better off doing a "re-installation" as the latest versions uses a configuration file instead of a configuration section in the script.

/Patrik

1
Comment made 28-Feb-2017 by Patrik Jonsson 3246

Hi Paul!

Thank you for your patience. :) The way I interpret your RFE is that you want to add one more column to see if the ASM policy is in blocking mode or standby mode. You'd also like the policy name to be available.

My idea how to solve this would be to:

  1. Check if ASM is enabled.
  2. If it is, add a column named ASM and have values "B", "S" or "N/A".

As for the name, this would be best placed in the virtual server details (because of screen estate reasons).

What do you think?

/Patrik

0
Comment made 28-Feb-2017 by Patrik Jonsson 3246

Hehe, as you can see we still have not started implementing it, hence my newbie mistake with the lingo.

I came back this Monday from 2.5 months parental leave so I expect to start with this within a month or so. Need to get back into the game mentally first. :)

/Patrik

1
Comment made 01-Mar-2017 by Luc @ NTTD 10

Awesome script Patrik :) Thank you for sharing. I just figured out an issue and I'm wondering if you can throw an option in to remove routing domain identifiers. It was screwing up my NAT entries really hard. IE $vs.ip returns 1.1.1.1%1 or 1.1.1.1%2 and unless I throw that into my NATFile it will never match! Is there an easy way to clean up $vs.ip so that it prunes the routing domain after the IP? Thanks!

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

Hi Luc

We only had route domains for a short while. Updating this should be simple, if you're OK with testing as I do not have any configured.

/Patrik

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

A "beta" is available now. Please test and get back to me with the results?

/Patrik

0
Comment made 02-Mar-2017 by Luc @ NTTD 10

That little Regex did the trick :) It's now properly matching. Thank you Patrik!

EDIT and as an FYI I've verified that this works on 12.0 and 12.1.2 :)

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

Thank you Luc! :)

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

New beta version:

  • The report generation done in recursive mode, which should speed up the process a lot.
  • Removing route domain info when matching against NAT list
  • Adding option to show column with ASM blocking mode
  • Adding ASM profile name in the VIP details

Please note that in order to use this new version you must update to the latest version of the configuration file, or at your own risk, add the following section:

howASMPolicyBlockingMode>true</ShowASMPolicyBlockingMode>

You will also need to update the js and css folders with content from the latest release.

I have only tested this a short period, so please do treat it as a beta.

/Patrik

0
Comment made 02-Mar-2017 by Luc @ NTTD 10

Welcome! Thought of something - would it be useful to display the version of the script in the web interface so it's easy to know what version you are on? Somewhere down by the 'Report generated on x with BigIPReport Version x' kind of thing. Also I updated to 4.3.3 and noticed that it's now picking up more VIPs than it was before for whatever reason :) So yay. And it works.

Also do you know if there's an easy way to change the location of the f5 powershell snapin? Or remove it and reinstall it? I mistakenly installed it from a stupid location and now I need to change it :(

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

Version is a good idea. I'll add that to the feature list. About the additional VIP's. That sounds weird. Should be the same. Have you verified that all of them are legit?

I think I did the same thing as you did with the snap-in. Don't remember how I solved it, but have you unregistered it through Powershell and registred at the new location? The installation ps1 should have two options. One for install and one for uninstall, or something similar.

/Patrik

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

Some more tests has been made now. The time to generate the report has been cut to half. Would probably be faster except for current VPN throughput issues.

Feedback on the new version appreciated as I don't have an army of QA engineers behind me.

Please note that "All OK" is also helpful.

/Patrik

0
Comment made 02-Mar-2017 by Luc @ NTTD 10

I'm certainly noticing an improvement in the speed of execution :) All is OK and works great for me. Still looking into the additional VIPs

0
Comment made 02-Mar-2017 by Patrik Jonsson 3246

Thanks Luc!

My VIP count and the size of the HTML was exactly the same (down to he byte) so the additional VIPs should be due to something else.

Are you running any other scripts with the bigip report user? If the user is active somewhere else changing ie. partitions it could affect the output of the script.

/Patrik

0
Comment made 04-Mar-2017 by Patrik Jonsson 3246

Hi Paul

Oh noes, you're my main guinea pig. :)

Which version are you running?

/Patrik

0
Comment made 04-Mar-2017 by paul.dawson 69

Hi Patrik, Some more info although the ASM column is still not being populated - all are showing N/A. I noticed that the ASM variables were not being cached.

#Get-Variable | Out-String
 ASMPolicies                    {}

I didn't see any of the other ASM variables loaded.

On line 995 I think ShowCompressionProfile should read ShowASMPolicyBlockingMode. I changed this but it still did not work so I commented out the second condition:

#and ($ProvisionedModules | Where-Object { $_.loadbalancer -eq $loadbalancername     }).ProvisionedModules -Contains "TMOS_MODULE_ASM"){

Now I can see the ASM Policies and they are loaded into cache while the script is running

Get-Variable | Out-String

Name                           Value                                           
----                           -----                                           
$                              $ASMPolicies                                    
?                              True                                            
^                              $ASMPolicies                                    
args                           {}                                              

ASMPolicies                    {ASMPolicy, ASMPolicy, ASMPolicy, ASMPolicy...} 

And the info is there

$ASMPolicies (example)

name               : /Common/TEMPLATE
blockingmode       : Transparent
language           : UNICODE_UTF_8
http_header_length : 8192
cookie_length      : 8192
description        : 
loadbalancer       : lb10mgt.domain.com

Unfortunately still not showing up in the ASM column though. Hope this helps.

0
Comment made 06-Mar-2017 by Patrik Jonsson 3246

Hi Paul

Thank you for your feedback and cooperation. In v12 it looks like the string as "ASM_" is prepended to the policy name when listing virtual server profiles (for some reason the policy is listed amongst the profiles). Perhaps this is not the case in v11.6.

I'll try to write a debug script for you to run tomorrow if that's OK?

Meanwhile could you please try these things (within the same partition)?

  1. Create an ASM policy with the name name as an HTTP profile.
  2. Create an HTTP profile with the name ASM_test and an ASM policy with the name test.

This might help me determine if they share the same "name space" and might make it easier to check if a virtual server has a valid ASM profile.

/Patrik

0
Comment made 06-Mar-2017 by Luc @ NTTD 10

Interesting development and I'm not sure if this started happening with 4.3.3 or when exactly, but now after I run the script and then try to browse to the URL, it just displays the 'loading' animation and will not proceed. The scroll bar in my window is pretty huge so I'm assuming the data is loading but it won't go past the loading animation. Want me to try an earlier version or what's the best way to troubleshoot? I've also tried on Edge (using Chrome) and same result. Oh and the ps1 executes perfectly, no errors reported at all.

0
Comment made 06-Mar-2017 by paul.dawson 69

Hi Patrik, I'll test it out and let you know. It's worth noting that all our policies are prefixed with the string

asm_<domain.name.com>
0
Comment made 06-Mar-2017 by Patrik Jonsson 3246

Luc:

That's a symptom of broken java scripts. Have you updated the web files? If you have, please do a full "re-install"? If that does not work, please let me know the output of the console in Chrome?

Paul:

Ah, I **_think_** I took that into considerations for that, but will double check tomorrow.

/Patrik

0
Comment made 06-Mar-2017 by Luc @ NTTD 10

Turns out it was a ID 10 T error ... incorrect permissions on the json folder because I decided I wanted to share it. DERP. Chrome Console pointed me in the right direction :)

0
Comment made 06-Mar-2017 by Patrik Jonsson 3246

I guess I should add some javascript exceptions too. A very large part of the Powershell script consists of error prevention and pre checks but the web front end contains none. :)

/Patrik

0
Comment made 07-Mar-2017 by Patrik Jonsson 3246

Paul, here's the snippet I'd like you to run. Please note the comments I've made in the output section at the bottom, there's a question mark in it for you to answer (if you can).

#Configuration
$User = "user"
$Password = "password"
$BigIP = "10.10.10.10"

#Allow TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

#Initialize Snapin
if ( (Get-PSSnapin | Where-Object { $_.Name -eq "iControlSnapIn"}) -eq $null ){
    Add-PSSnapIn iControlSnapIn
}

#Connect to the BigIP
$Success = Initialize-F5.iControl -HostName $BigIP -Username $User -Password $Password

#Get an iControl Handle
$F5 = Get-F5.iControl

$f5.LocalLBVirtualServer.get_profile("/Partition/VIP-name")

#            profile_type             profile_context profile_name
#            ------------             --------------- ------------
#       PROFILE_TYPE_HTTP    PROFILE_CONTEXT_TYPE_ALL /Common/http
# PROFILE_TYPE_CLIENT_SSL PROFILE_CONTEXT_TYPE_CLIENT /Common/sslprofile
#        PROFILE_TYPE_TCP    PROFILE_CONTEXT_TYPE_ALL /Common/tcp
#PROFILE_TYPE_WEBSECURITY    PROFILE_CONTEXT_TYPE_ALL /Common/websecurity <-- Not sure where this comes from, but it seems like an indication that ASM is enabled?
#    PROFILE_TYPE_UNKNOWN    PROFILE_CONTEXT_TYPE_ALL /Partition/ASM_test_policy <-- This policy's real name is "test_policy". "ASM_" as added by the API (or configuration). This caused me a lot of grief when the writing the new version. :)
  1. How does the profile names look to you? Is there a prefix?
  2. Do you also have a profile type called "PROFILE_TYPE_WEBSECURITY" for every VIP with an ASM policy?

/Patrik

0
Comment made 07-Mar-2017 by paul.dawson 69

Security Policy Disabled

              $f5.LocalLBVirtualServer.get_profile("/Common/vipname.domain.com")

          profile_type            profile_context profile_name             
          ------------            --------------- ------------             
     PROFILE_TYPE_HTTP   PROFILE_CONTEXT_TYPE_ALL /Common/http             
     PROFILE_TYPE_CLIENT_SSL ...ILE_CONTEXT_TYPE_CLIENT /Common/vipname.domain.com
     PROFILE_TYPE_SERVER_SSL ...ILE_CONTEXT_TYPE_SERVER /Common/vipname.domain.com
     PROFILE_TYPE_TCP   PROFILE_CONTEXT_TYPE_ALL /Common/tcp              

Security Policy Enabled:

$f5.LocalLBVirtualServer.get_profile("/Common/vipname.domain.com")
Exception calling "get_profile" with "1" argument(s): "There is an error in 
XML document (50, 79)."
At line:20 char:1
+ 
$f5.LocalLBVirtualServer.get_profile("/Common/vipname.domain.com")
+ 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : InvalidOperationException
0
Comment made 07-Mar-2017 by Patrik Jonsson 3246

Now that does not look promising at all. When running the actual report and listing $Global:virtualservers, do you get any profiles at all on the virtual servers that has ASM policies assigned to them?

/Patrik

0
Comment made 07-Mar-2017 by Patrik Jonsson 3246

Oh, and could you please try the same procedure on more devices?

/Patrik

0
Comment made 07-Mar-2017 by Patrik Jonsson 3246

Version 4.3.4 changes:

Fixed a mistake when referring to the wrong setting in the column settings (thanks to Paul Dawson for reporting it).

/Patrik

0
Comment made 07-Mar-2017 by paul.dawson 69

I've tried 2 different LB's and 2 different virtual servers with different virtual server names, one with asm_vsname and one without. I've also tried with different asm policynames such as asm_policyname and just TEMPLATE. Still no joy. I don't see asmpolicy being populated in $Global:virtualservers.

0
Comment made 07-Mar-2017 by Patrik Jonsson 3246

Ok, then it would look like it's not possible with version 11.6. :(

/Patrik

0
Comment made 08-Mar-2017 by paul.dawson 69

Hmmm... Tested this on 12 and the same thing. ASM column is not being populated. Very strange.

0
Comment made 08-Mar-2017 by Patrik Jonsson 3246

Could you please run those "manual" tests against the v12 too?

/Patrik

0
Comment made 08-Mar-2017 by Luc @ NTTD 10

Virtual F5 with ASM running 12.0 and I caught it throwing exceptions. Still completes and compiles just fine. Also running 4.3.4 version. Paste below

2017-03-08      14:31:25        Caching iRules
2017-03-08      14:31:26        Caching Virtual servers
Exception calling "get_rule" with "1" argument(s): "Exception caught in LocalLB::urn:iControl:LocalLB/VirtualServer::get_rule()
Exception: Common::OperationFailed
    primary_error_code   : 16908336 (0x01020030)
    secondary_error_code : 0
    error_string         : 01020036:3: The requested query_reply () was not found."
At D:\inetpub\bigipreport\Bigipreport-4.3.4.ps1:1042 char:2
+     [array]$virtualserverirulelist = $f5.LocalLBVirtualServer.get_rule($virtualserv ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SoapHeaderException
0
Comment made 08-Mar-2017 by Luc @ NTTD 10

And also this which would not post due to spam settings:

Exception calling "get_persistence_profile" with "1" argument(s): "Exception caught in LocalLB::urn:iControl:LocalLB/VirtualServer::get_persistence_profile()
Exception: Common::OperationFailed
    primary_error_code   : 16908336 (0x01020030)
    secondary_error_code : 0
    error_string         : 01020036:3: The requested query_reply () was not found."
At D:\inetpub\bigipreport\Bigipreport-4.3.4.ps1:1043 char:2
+     [array]$virtualserverpersistencelist = $f5.LocalLBVirtualServer.get_persistence ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SoapHeaderException
0
Comment made 09-Mar-2017 by Patrik Jonsson 3246

Hi Luc

Thanks for reporting it. Does this happen every time?

/Patrik

0
Comment made 09-Mar-2017 by Luc @ NTTD 10

I've run it twice and it's happened both times, same place. Anything you want me to try?

0
Comment made 09-Mar-2017 by Patrik Jonsson 3246

If I manage to get a few seconds to spare tomorrow I might enable ASM and give it a go myself. Do you also get errors if you disable the ASM checks in the configuration file?

/Patrik

0
Comment made 14-Mar-2017 by Patrik Jonsson 3246

Sorry for the delay guys. It's one of those weeks. Luc, do you get the errors if you disable ASM checks in the configuration file?

/Patrik

0
Comment made 23-Mar-2017 by Patrik Jonsson 3246

4.3.7 Small, but important updates

  • Verifying that each load balancer has added virtual servers, pools, monitors, irules, data group lists and nodes to the report. Otherwise an error is thrown and the report is not written.
  • Using streamwriter instead of out-file

Hoping to get some time to look into ASM next week.

/Patrik

0
Comment made 24-Mar-2017 by Patrik Jonsson 3246

4.3.8 Released

When extracting and generating configuration only the data local to the current load balancer worked on is used. This is also true to the HTML generation. This means that instead of searching for pools in all load balancers the script would only search a sub set of the data. Makes generation of large report much faster.

Compared to version 4.3.1 our report generation of 1183 Virtual servers went down from 40 minutes to 12 minutes. :)

/Patrik

0
Comment made 06-Apr-2017 by silverem 10

Hi I got some error when starting the script:

PS C:\inetpub\wwwroot&gt; .\Bigipreport-4.3.8.ps1
Successfully loaded the config file
2017-04-06      13:02:26        Configuring the console window
2017-04-06      13:02:26        Pre-execution checks
2017-04-06      13:02:26        Mounting
The syntax of this command is:

NET USE
[devicename | *] [\computername\sharename[\volume] [password | *]]
        [/USER:[domainname]username]
        [/USER:[dotted domain name]username]
        [/USER:[username@dotted domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]

2017-04-06      13:02:26        Share  could not be mounted
2017-04-06      13:02:26        There were errors during the config file sanity check
2017-04-06      13:02:26        Exiting
PS C:\inetpub\wwwroot&gt;

What is wrong with the script?

Rgds

Silvere

0
Comment made 06-Apr-2017 by Patrik Jonsson 3246

Hi Silvere

It looks like the configuration file is not properly populated as the share name does not seem to exist rather than an error in the script itself. Are you writing the file to a separate server from the one that generates the script? Otherwise you can just leave that section as it is in the default configuration file.

Example of a functioning share (replace the details with those in your environment):

        <Shares>
            <Share>
                <Path>\\server.domain.local\sharename$</Path> 
                <Username>domain\username</Username>
                <Password>yourpassword</Password>
            </Share>
        </Shares>

/Patrik

0
Comment made 06-Apr-2017 by silverem 10

Hi The config xml has the following parameters. S I don't know why I get an error

        <Shares>
        </Shares>

Silvere      
0
Comment made 06-Apr-2017 by Patrik Jonsson 3246

Ok, that should work indeed. Let me see if I can replicate the issue.

/Patrik

0
Comment made 06-Apr-2017 by Patrik Jonsson 3246

I've tested the latest version now with minimum configuration and it ran just fine. Could you please tell me your Powershell version?

Example:

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14393.953
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.953
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

/Patrik

0
Comment made 07-Apr-2017 by silverem 10

Ok I see where the problem is, now I use the same powershell version like you but now: 2017-04-07 10:32:56 Writing temporary pools json object to E:\personal\scripts\Bigipreport-4.3.8\json\pools.json.tmp New-Object : Exception calling ".ctor" with "4" argument(s): "Could not find a part of the path 'E:\personal\scripts\Bigipreport-4.3.8\json\pools.json.tmp'."At E:\personal\scripts\Bigipreport-4.3.8\Bigipreport-4.3.8.ps1:1541 char:18 + ... eamWriter = New-Object System.IO.StreamWriter($($Global:poolsjsonpath ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

Exception calling "Write" with "1" argument(s): "Cannot write to a closed TextWriter."At E:\personal\scripts\Bigipreport-4.3.8\Bigipreport-4.3.8.ps1:1542 char:24
+ ... eamWriter.Write($($Global:pools | ConvertTo-Json -Compress -Depth 5))
+                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ObjectDisposedException

2017-04-07      10:32:56        Failed to update the temporary pool json file
2017-04-07      10:32:56        Writing temporary monitor json object to E:\personal\scripts\Bigipreport-4.3.8\json\monitors.json.tmp
New-Object : Exception calling ".ctor" with "4" argument(s): "Could not find a part of the path 'E:\personal\scripts\Bigipreport-4.3.8\json\monitors.json.tmp'."At E:\personal\scripts\Bigipreport-4.3.8\Bigipreport-4.3.8.ps1:1552 char:18
+ ... eamWriter = New-Object System.IO.StreamWriter($($Global:monitorsjsonp ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

Exception calling "Write" with "1" argument(s): "Cannot write to a closed TextWriter."At E:\personal\scripts\Bigipreport-4.3.8\Bigipreport-4.3.8.ps1:1553 char:24
+ ... Writer.Write($($Global:monitors | ConvertTo-Json -Compress -Depth 5))
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0
Comment made 07-Apr-2017 by Patrik Jonsson 3246

Hi!

This error is due to the defined ReportRoot not containing the HTML content. Check out step number 3 here:

https://loadbalancing.se/bigip-report/#Download_the_BigipReport_package

/Patrik

0
Comment made 07-Apr-2017 by silverem 10
Strange, got the same result
    2017-04-07      11:26:05        No iRule links to add to the dropdown
    2017-04-07      11:26:05        No iRule definitions to add to the body
    2017-04-07      11:26:05        Writing report temporary file to C:\inetpub\wwwroot\default.html.tmp
    2017-04-07      11:26:05        Writing temporary pools json object to C:\inetpub\wwwroot\json\pools.json.tmp
    New-Object : Exception calling ".ctor" with "4" argument(s): "Could not find a part of the path 'C:\inetpub\wwwroot\json\pools.json.tmp'."At C:\inetpub\wwwroot\Bigipreport-4.3.8.ps1:1541 char:18
    + ... eamWriter = New-Object System.IO.StreamWriter($($Global:poolsjsonpath ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
        + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

    Exception calling "Write" with "1" argument(s): "Cannot write to a closed TextWriter."At C:\inetpub\wwwroot\Bigipreport-4.3.8.ps1:1542 char:24
    + ... eamWriter.Write($($Global:pools | ConvertTo-Json -Compress -Depth 5))
    +                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ObjectDisposedException

    2017-04-07      11:26:05        Failed to update the temporary pool json file
    2017-04-07      11:26:05        Writing temporary monitor json object to C:\inetpub\wwwroot\json\monitors.json.tmp
    New-Object : Exception calling ".ctor" with "4" argument(s): "Could not find a part of the path 'C:\inetpub\wwwroot\json\monitors.json.tmp'."At C:\inetpub\wwwroot\Bigipreport-4.3.8.ps1:1552 char:18
    + ... eamWriter = New-Object System.IO.StreamWriter($($Global:monitorsjsonp ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
        + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

    Exception calling "Write" with "1" argument(s): "Cannot write to a closed TextWriter."At C:\inetpub\wwwroot\Bigipreport-4.3.8.ps1:1553 char:24
    + ... Writer.Write($($Global:monitors | ConvertTo-Json -Compress -Depth 5))
    +                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ObjectDisposedException
0
Comment made 07-Apr-2017 by Patrik Jonsson 3246

Confirm that C:\inetpub\wwwroot\json\ exists? Does not look that way from your error message.

/Patrik

0
Comment made 07-Apr-2017 by Patrik Jonsson 3246

And also, that the user running the script has write permissions to that folder.

/Patrik

0
Comment made 07-Apr-2017 by silverem 10

Thx, correct, json was missing.

0
Comment made 5 months ago by danielpenna 260

Hey Patrick, Upgraded to 4.3.0 last week and the iRule to Virtual Server feature is awesome!

My team is looking at using your script as a baseline to find owners in the organization and we will be using the description field of a virtual server to establish an internal owner to an application. In the short term we will be modifying your PS script to include the description field of a Virtual Server but wondering if this can be a feature request for any future versions ?

0
Comment made 5 months ago by Tom_K 66

Patrik - your demo is awesome, I am not a powershell user so still trying to understand logistically and architecturally where the pieces go. I have powershell on a Windows 10 laptop and am planning to run the web server on a Redhat apache web server and the instructions say to copy the content of the BigipReport package to /var/www/html/ which are files Bigipreport-4.3.8.ps1 and bigipreportconfig.xml - so Bigipreport-4.3.8.ps1 gets put wherever I also put bigipreportconfig.xml? Thanks, Tom

0
Comment made 5 months ago by Patrik Jonsson 3246

Hi Tom

Did you follow the instructions on loadbalancing.se?

Both of these needs to be executed with Powershell:

  • bigipreport-4.3.8.ps1 - This is the actual script

  • bigipreportconfig.xml - Configuration for the script

Then, there's a folder which is named "Move the content of this folder to the configured report root". This folder contains styles and javascripts needed by the report and needs to reside on your web server.

So in your case, if you want to automate things you'd have to install Samba on your Redhat server and share your report root on the linux server.

Alternately, if you don't want to automate things you can just configure the script and copy the html file manually.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3246

New version (4.4.0):

  • Adding support for orphaned pools in the json objects.
  • Fixing a bug with empty irules preventing virtual server details to the shown.

/Patrik

0
Comment made 4 months ago by nrgpill 15

Tried version 4.4, running into this:

Exception calling "get_list" with "0" argument(s): "There is an error in XML document (14, 29)." At C:\Users\lhong\Downloads\Bigipreport-4.4.0\Bigipreport-4.4.0.ps1:688 char:2 + [array]$AvailableModules = $f5.ManagementProvision.get_list() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException

Exception calling "get_level" with "1" argument(s): "Could not find element by name: modules" At C:\Users\lhong\Downloads\Bigipreport-4.4.0\Bigipreport-4.4.0.ps1:689 char:2 + [array]$ModuleLevel = $f5.ManagementProvision.get_level($AvailableModules) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SoapHeaderException

0
Comment made 4 months ago by Patrik Jonsson 3246

Hi!

Thank you for reporting, I will check it out!

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

Ok, I checked those lines in the script. A few questions:

  • What version are you running?
  • Do you have ASM installed?
  • Do you have the latest version of the iControl powershell snapin?
  • Which version of Powershell are you running?

/Patrik

0
Comment made 4 months ago by nrgpill 15

Thanks for looking into this Patrik, really appreciate the quick help!

What version are you running?

BIG-IP 11.4.1 Build 637.0 Hotfix HF3

Do you have ASM installed? Do you have the latest version of the iControl powershell snapin?

version 11.00.0002

Which version of Powershell are you running?

PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.42000 BuildVersion 6.3.9600.17400 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2

0
Comment made 4 months ago by Patrik Jonsson 3246

Doh, 11.4.1 is quite old. I don't have a device that runs it. Since the ASM functions in the script seem to be a hit or miss for some users I am considering removing them until I start writing a REST based version of the report.

Did you try older versions of the script by any chance? 4.3.0 might do the trick for you.

/Patrik

0
Comment made 4 months ago by nrgpill 15

Thanks Patrik

Just tried 4.3.0 -

2017-06-23 09:04:29 Configuring the console window 2017-06-23 09:04:29 Pre-execution checks 2017-06-23 09:04:29 Pre execution checks was successful Add-Type : Cannot add type. The type name 'VirtualServer' already exists. At C:\Users\lhong\Downloads\Bigipreport-4.3.0\Bigipreport-4.3.0.ps1:500 char:1 + Add-Type @' + ~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (VirtualServer:String) [Add-Type], Exception + FullyQualifiedErrorId : TYPE_ALREADY_EXISTS,Microsoft.PowerShell.Commands.AddTypeCommand

0
Comment made 4 months ago by Patrik Jonsson 3246

Looks like you tried to execute it within the same Powershell session. Restart the shell/ISE and try again?

/Patrik

0
Comment made 4 months ago by nrgpill 15

Thanks. I started a new powershell session and got past the error. Now I am seeing "method invocation failed"

Method invocation failed because [iControl.LocalLBVirtualServer] does not contain a method named 'get_source_address_translation_type'. At C:\Users\lhong\downloads\Bigipreport-4.3.0\Bigipreport-4.3.0.ps1:970 char:4 + $virtualserversourceaddresstranlationtypelist = $f5.LocalLBVirtualServer.get_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound

0
Comment made 4 months ago by Patrik Jonsson 3246

Too bad. That one should really work on 11.4.1 according to F5 support docs.

Try commenting out line 970 and 971 and re-execute? Comment out by adding a hashtag before the code.

/Patrik

0
Comment made 4 months ago by Brian 2

Patrik, What are the chances that BigIP Report could be adapted to process an offline static SCF or UCS?

thanks, -Brian

0
Comment made 4 months ago by Patrik Jonsson 3246

Cool idea! However, that would require massive amounts of free text parsing and would not be very reliable.

Out of interest, may I ask you what prevents you from running the report as it is?

/Patrik

0
Comment made 4 months ago by Brian 2

Working as a consultant in a sensitive environment getting anything "on" the network is nigh impossible, but often the client is perfectly content to hand over a directory of UCS files.

Perhaps another option is to load the UCS into a standalone VE, and run BigIP Report against the VE.

0
Comment made 4 months ago by Patrik Jonsson 3246

That's possible, but you'd miss out on the status of pool members that way. We are quite picky with how we do things at my company so I designed the script like this:

  • The user needed to extract the information only needs guest access (which means that private keys or configuration changes are not an issue)
  • The server extracting the information and the server that presents it can be separated. So you can basically run it from your client and write the data to a separate internal server.

In our case we run the script from a production server and the result is written to an internal server which is located in the office. That way no office equipment needs to access the load balancers.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

New version: 4.4.1

  • Removed the ASM support as it only caused issues. Will add support for version 12.1 and above later.
  • Added preferences with possibility to auto expand pool details and links to virtual servers and pools in the LTM interface.

It is recommended, but not necessary to also update the configuration xml file since it contains properties that is not used anymore.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

Screenshot of the new version:

Image Text

0
Comment made 4 months ago by Maneesh 288

Patrick the new version has got ways to edit the VIP and Pools as well ?

Also does it have option to add new VIP's and new Pools ?

0
Comment made 4 months ago by Patrik Jonsson 3246

Hi Maneesh!

No, the report is still only read-only. These are just links to the admin interface of the load balancer. So if you click on ie jira.j.local in the example above it would take you to the configuration of that particular virtual server/pool.

/Patrik

0
Comment made 4 months ago by Maneesh 288

Cheers Patrick.

0
Comment made 4 months ago by Patrik Jonsson 3246

New version again. Please note that you MUST update the configuration xml file this time.

Changes:

  • Client side column toggle
  • CSS fixes for improved readability
  • Settings moved to a lightbox to clear up real estate
  • iRules dropdown moved to a lightbox to clear up real estate

As always, please comment if you find bugs.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

New beta out for those brave souls that want ASM support.

  • Added ASM column with the name of the policy and the enforcement mode (T) for transparent, (B) for blocking.

Please note that the ASM support is only for devices running on 12.0 and above.

Reason being:

  • The iControl module for SOAP had a bit of bugs for ASM
  • REST can only be accessed in Read-Only mode from version 12.0 and above using tokens

Bug reports are appreciated!

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

New version

  • Fixing a bug where the iRule syntax highlighting does not work if the js folder is not located in the root folder.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

New version:

  • Replace the old loader with one that works better with larger data sets.
  • Fixed some spelling errors.

No configuration file update is needed.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3246

New version

  • Added button for resetting filters

No configuration file update is needed.

/Patrik

0
Comment made 3 months ago by Patrik Jonsson 3246
0
Comment made 3 months ago by Patrik Jonsson 3246

Have you looked at the demo?

/Patrik

0
Comment made 3 months ago by karthik_F5 54

I am new to ASM , Is there any report for ASM ( for illegal requests)

0
Comment made 3 months ago by Patrik Jonsson 3246

Not at the moment. If there was how would you have displayed it in the report?

Always open to suggestions and ideas! :)

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski 1112

Hi,

I am really impressed by this tool. Wonder if there is a way (not requiring being programming guru) to adjust type of info retrieved from BIG-IP and displayed in the report?

For example I would like to be able to have info about Enabled on for VS.

Another very useful function (at least in my opinion) would be easy to manage wizard allowing to list different object usage - like show all VS using given HTTP profile, or all pools given node is used etc. Partially it could be done using search - at least this is my first impression but it seems that not all such summaries can be easily created.

Anyway really great job!!

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Hi Piotr

Thank you for the feedback! Do you mean that you'd like to add a column for the state of each VS?

About the Wizard idea - It's a great one, but would take very long to accomplish. I've been considering adding some sort of query input field where you can filter the data with a predefined filter syntax. However the challenge here would be to visualize it.

I will add VS state to the feature request list. The other things would need a lot of time and thinking before I do it.

/Patrik

0
Comment made 3 months ago by Patrik Jonsson 3246

If you want to query the data from the report I also wrote an article about it here:

https://loadbalancing.se/2016/10/07/synergy-effect-of-running-bigipreport/

I use this frequently to find objects.

/Patrik

0
Comment made 3 months ago by Patrik Jonsson 3246

Turns out that the VIP status column was already there. :)

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski 1112

Hi,

I meant more generic idea - easily being able to choose which info (configuration parameters) about objects (like VIP, VS, Pool etc.) are retrieved from BIG-IP and then displayed as column in report.

Enabled on was about VLANs, not state of the VS :-)

I will read article. I just started to play around so probably some functionalities are already there I am just not aware about it.

BTW, I am not a programmer at all so improving/changing project like that is beyond my reach. So question to you - do you know about any framework that could be used to visualize relations between objects - like display schemat where there is VS object, related pool/s and pool members then VLANs used and interfaces, something that as well allows to drill down?

Piotr

0
Comment made 3 months ago by Piotr Lewandowski 1112

Would be nice if PS code would use separate bigipreportconfig.xml per version, something like that:

If Bigipreport-4.5.0.ps1 is launched it's using bigipreportconfig-4.5.0.xml If Bigipreport-4.5.5.ps1 is launched it's using bigipreportconfig-4.5.5.xml

Or maybe, if it's easier Bigipreport-X.X.X.ps1 could be executed with argument specifying name and location of bigipreportconfig.xml.

I don't know if the reason I got below error was that I first generated report (using default.html) using Bigipreport-4.5.0.ps1 and then Bigipreport-4.5.5.ps1 (other.html):

2017-08-03      12:53:10        Pre execution checks was successful
Add-Type : Cannot add type. The type name 'VirtualServer' already exists.
At C:\scripts\bigipreport-4.5.5.ps1:513 char:1
+ Add-Type @'
+ ~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (VirtualServer:String) [Add-Type], Exception
    + FullyQualifiedErrorId : TYPE_ALREADY_EXISTS,Microsoft.PowerShell.Commands.AddTypeCommand

or it's just because 4.5.5 is beta?

Other nice thing to have would be possibility to check given VS, select another device and execute copy to create exactly the same config on another BIG-IP - don't know if easy or at all possible with data that is stored in report?

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

I agree with you, that could be useful in some cases. Reason for the configuration to be the same right now is to make it easy for people to update the report. Most changes does not require a configuration file upgrade. If they do I make sure to put it here. :)

2017-08-03      12:53:10        Pre execution checks was successful
Add-Type : Cannot add type. The type name 'VirtualServer' already exists.
At C:\scripts\bigipreport-4.5.5.ps1:513 char:1
+ Add-Type @'
+ ~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (VirtualServer:String) [Add-Type], Exception
    + FullyQualifiedErrorId : TYPE_ALREADY_EXISTS,Microsoft.PowerShell.Commands.AddTypeCommand

This probably means that you are executing the script by pasting it in the same window, or through Powershell ISE. Save it as a ps1 file instead and run it.

Other nice thing to have would be possibility to check given VS, select another device and execute copy to create exactly the same config on another BIG-IP - don't know if easy or at all possible with data that is stored in report?

The script is only meant to be read-only. For changes it'd have to use a server side scripting language and then it'd be security concerns to worry about. Not ready to go down that road. Yet. :)

0
Comment made 3 months ago by Patrik Jonsson 3246

New version:

Added which vlans virtual servers is listening to. This would let people filter through the data to get which virtual servers is listening to a specific VLAN by using ie. powershell.

Not showing the information in Bigipreport yet.

No need to update the configuration file.

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski 1112

Thanks a lot, really appreciate your work!

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

New version out.

  • Added icons for member statuses and icons
  • Added icons for pool details
  • Added icons for virtual server details

/Patrik

0
Comment made 3 months ago by Patrik Jonsson 3246

One more out.

  • Added filter icons too

Demo has been updated and can be found here.

0
Comment made 3 months ago by RRNF5 3

Any ideas how the Reported info can be exported to excel/CSV

0
Comment made 3 months ago by Patrik Jonsson 3246

If you only want what's visible on the first page you can export it with Powershell.

https://loadbalancing.se/2016/10/07/synergy-effect-of-running-bigipreport/

CSV is rather flat though so you'd have to tweak the syntax a bit for the pool information.

/Patrik

0
Comment made 3 months ago by RRNF5 3

Thanks, That is enough to get me started

0
Comment made 3 months ago by Patrik Jonsson 3246

Sure thing. May I ask why you need it in CSV format? If more people need it there's a possibility to add an export function based on javascript.

/Patrik

0
Comment made 3 months ago by RRNF5 3

Its for more stakeholders viewing pleasure, filtering and so on.. That would be ideal, an export function. Some of the objects wont be of interest and not everyone will have access to the reporting server.

0
Comment made 3 months ago by Patrik Jonsson 3246

I actually wrote the report so stake holders and developers could get access to the data. You can already filter per column, and globally. The use case is still not entirely clear to me?

/Patrik

0
Comment made 3 months ago by RRNF5 3

Your right, I just have Stake Holders that want it in excel - Thanks for your help. The reporting tool is perfect for my daily work.

0
Comment made 3 months ago by Emad 550

Hi Patrik , How about adding BigIP device status in Load Balancer column as Active/Standby. This will be very helpful in identification in case of cluster.

0
Comment made 3 months ago by Piotr Lewandowski 1112

Hi,

Thanks again for great work! I have a question about pool to VS mapping. From demo report page it looks like pool assignment via iRule is detected, is assignment via Local Traffic Policy detected as well?

I assume that when pool is listed as Orphan pool, iRule assignment is as well checked but is Local Traffic Policy checked as well?

Considering improvements I wonder if VIP membership in Traffic Group would be hard to be implemented - at least at the level of data retrieved in json file, not as part of data displayed via GUI?

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Hi guys

Thank you for the feedback, it's much appreciated.

Emad, I have a plan to allow the user to add multiple F5's.

<devicegroup>
    <loadbalancer>f501.domain.local</loadbalancer>
    <loadbalancer>f502.domain.local</loadbalancer>
    <loadbalancer>f502.domain.local</loadbalancer>
</devicegroup>

In this case the script would only register devices that are active. Would this qualify as a solution to your request?

Piotr, I have been considering supporting both pool connections via Traffic Policies but since we don't use traffic policies at my company I have not added it yet due to lack of experience. Will add it to the official enhancement list though as it's a good idea.

"Considering improvements I wonder if VIP membership in Traffic Group would be hard to be implemented - at least at the level of data retrieved in json file, not as part of data displayed via GUI?"

Do you mean adding an additional column with the traffic group information?

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

Adding column in the GUI would be great, but for now I am looking just for a way to add Traffic Group info to json data about VS. So based on VS IP and VIP assignment to given Traffic Group add property to VS json data like "tg":"name of traffic group"

Hope it make sense.

Piotr

0
Comment made 3 months ago by Piotr Lewandowski 1112

There is something wrong with this check for versions higher than 11.x - for example 12.1.1

if($MajorVersion -gt 11 -or ($MajorVersion -eq 11 -and $Minorversion -gt 3))

With this check enabled I am not getting info about SNAT setting. I had to disable it to get correct data.

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Makes sense regarding the traffic group. Adding that to the backlog.

Regarding the check, could you please try this?

if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3))

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

Thanks, will try this one and get back with results.

Piotr

0
Comment made 3 months ago by Piotr Lewandowski 1112

Hi,

Still the same results. Code is now like that:

if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){
    $virtualserversourceaddresstranlationtypelist = $f5.LocalLBVirtualServer.get_source_address_translation_type($virtualserverlist)
    $virtualserversourceaddresssnatpool = $f5.LocalLBVirtualServer.get_source_address_translation_snat_pool($virtualserverlist)
}

and

if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){
    $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i]
    $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i]
} else {
    $objTempVirtualServer.sourcexlatetype = "OLDVERSION"
    $objTempVirtualServer.sourcexlatepool = "OLDVERSION"
}

Result is N/A in Bigip versions prior to 11.3

BTW, is there any simple PS code to create report (from CLI) using json file containing listing of all unique values for given parameter, let's say list all unique IPs used by VSs or unique ports etc.?

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Could you paste the error message you get in terms of the line? And describe and the symptoms? I have not seen an issue regarding this particular line myself.

About your json question. Something like this?

#Create new webclient object
$WebClient = New-Object System.Net.WebClient
#Enable integrated authentication
$WebClient.UseDefaultCredentials = $true
#Get the json objects
$Virtualservers = ($WebClient.DownloadString("https://loadbalancing.se/bigipreportdemo/json/virtualservers.json")) | ConvertFrom-Json

$Virtualservers.ip | select -unique | where-object { $_ -ne "N/A (Orphan pool)" }

/Patrik

1
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

Hi,

I am not sure what error message? Script is executing without any error. Only problem is that in VS details via GUI I have this result:

Image Text

If I will remove if(... part an leave just:

$virtualserversourceaddresstranlationtypelist = $f5.LocalLBVirtualServer.get_source_address_translation_type($virtualserverlist)
$virtualserversourceaddresssnatpool = $f5.LocalLBVirtualServer.get_source_address_translation_snat_pool($virtualserverlist)

and

$objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i]
$objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i]

correct data about SNAT is presented in GUI.

Thanks for sample code, I will try it and see if it's what I need.

Piotr

0
Comment made 3 months ago by Emad 550

That will definitely server the purpose in case of device group. :)

0
Comment made 3 months ago by Piotr Lewandowski 1112

Your command for selecting unique values for parameter works like a charm. Thanks a lot.

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Thank you Emad and Piotr for your input, it's much appreciated! I will look into it when time permits.

/Patrik

0
Comment made 3 months ago by Patrik Jonsson 3246

Piotr, when you get that message (N/A in versions prior to 11.3), are you running that on TMOS 12.1?

I can't reproduce the issue.

If you replace this section:

if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){
    $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i]
    $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i]
} else {
    $objTempVirtualServer.sourcexlatetype = "OLDVERSION"
    $objTempVirtualServer.sourcexlatepool = "OLDVERSION"
}

With this:

if([int]$MajorVersion -gt 11 -or ([int]$MajorVersion -eq 11 -and [int]$Minorversion -gt 3)){
    $objTempVirtualServer.sourcexlatetype = [string]$virtualserversourceaddresstranlationtypelist[$i]
    $objTempVirtualServer.sourcexlatepool = [string]$virtualserversourceaddresssnatpool[$i]
} else {
    Write-Host -ForegroundColor "Major: $MajorVersion, Minor: $Minorversion"
    $objTempVirtualServer.sourcexlatetype = "OLDVERSION"
    $objTempVirtualServer.sourcexlatepool = "OLDVERSION"
}

What's the output you get for the major and minor versions?

/Patrik

0
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

I am connecting to VE running 12.1.1.1.0.196. This is Active Boot location. However it's on HD1.3. I have as well HD1.1 with 11.2 and HD1.2 with 13.0.0.

When script is run it is returning: $MajorVersion: 11 $MinorVersion: 2

So it looks like it's getting version from first boot location (HD1.1) even if it's not active boot location.

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Version 4.6.1

  • Virtual server status icons
  • Bug fix for SNAT pool extraction

/Patrik

1
Comment made 3 months ago by Patrik Jonsson 3246

Version 4.6.2

Fixing a bug with the version extraction. If someone has had issues getting the ASM profiles to show in the report this might fix just that.

/Patrik

1
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

Hi Patric,

Great release, version extraction is working without issue and you added as well traffic group extraction. Superb!

I wonder if there is a way to improve search engine. Right now there is now way I can figure out (except of course doing search directly in json) to for example find all Offline (Disabled) VSs. I guess both Search and Filter is allowing to find only text that is actually displayed on the page - Am I right?

I don't know how complicated generic code would be for GUI to implement something like that:

Additional column in front used as Group on Parameter can be selected for this column Then we have plus in front of unique parameter value, when clicked we can see all VSs having this value set

Examples of grouping:

VSs using same IP VSs belonging to given traffic group VSs using same pool and so on

Hope it makes sense and I am not going completely wild with it :-)

Piotr

-1
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

Just one small addition to extracted data for pool - if possible - it would be great to have info about LB algorithm used

Piotr

0
Comment made 3 months ago by Patrik Jonsson 3246

Version 4.6.3

  • LB method in the pool details
  • Allow NAT in the pool details
  • Allow SNAT in the pool details

/Patrik

1
Comment made 3 months ago by Piotr Lewandowski 1112

Hi,

Thanks a lot.

Piotr

0
Comment made 3 months ago by Piotr Lewandowski 1112

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

0
Comment made 3 months ago by Piotr Lewandowski 1112

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

0
Comment made 3 months ago by Patrik Jonsson 3246

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

0
Comment made 3 months ago by Piotr Lewandowski Softwaredefined 2

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

0
Comment made 2 months ago by Patrik Jonsson 3246

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

0
Comment made 2 months ago by Piotr Lewandowski 1112

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.

0
Comment made 2 months ago by Patrik Jonsson 3246

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

0
Comment made 2 months ago by Piotr Lewandowski 1112

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

0
Comment made 2 months ago by Patrik Jonsson 3246

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

0
Comment made 2 months ago by Piotr Lewandowski 1112

OK, let's forget it. Too much work for too little gains. Maybe I will try to dig in a bit (refreshing my Datatables knowledge from ancient past :-) and figure out something.

Visualization is not the problem in my opinion - even for traffic-group. Let's say you will turn on grouping by traffic-group. So in the collapsed view you will just see list of traffic-groups on the device/devices. When plus is clicked all VS under this traffic-group are shown, in the same way as list looks right now. And why traffic-group is not possible? Traffic Group infor is already retrieved from devices, so where is a problem?

I think example from this link is https://datatables.net/extensions/rowgroup/examples/initialisation/event.html is close - so you have some static grouping list above table, when clicked grouping is applied (as in the example), only missing point is adding accordion but this is somehow cosmetic.

Maybe instead of static link area above table (like in the example) dynamic popup element could be generated with list of all parameters of VS that make sense for grouping (maybe another popup for pool as well)

But still this is not so important just tried to figure out if it is possible and how much work would be required to implement - seems that a lot so let's leave it.

Piotr

0
Comment made 2 months ago by Patrik Jonsson 3246

"Visualization is not the problem in my opinion - even for traffic-group. Let's say you will turn on grouping by traffic-group. So in the collapsed view you will just see list of traffic-groups on the device/devices. When plus is clicked all VS under this traffic-group are shown, in the same way as list looks right now. And why traffic-group is not possible? Traffic Group infor is already retrieved from devices, so where is a problem?"

I see what you mean now. This would be nice, and would be easier if the data source was json. In this case however, it'd be a bit of a pain to accomplish. Love the idea though so in the future if I rewrite it I will remember this. :)

/Patrik

0
Comment made 2 months ago by Piotr Lewandowski 1112

Glad you like it, seems that I am not completely crazy ;-). At least there is already data in json stored so maybe it will not be complete revolution.

Piotr

0
Comment made 2 months ago by RRNF5 3

Quick Question - How do i show all the entries on one page? Current i can only view 10, 25, 50, 100 at any time.

0
Comment made 2 months ago by Patrik Jonsson 3246

You can't do that a time the moment without modifying the javascript. I'll add this to the list of feature requests.

/Patrik

0
Comment made 2 months ago by RRNF5 3

I have found in the "jquery.dataTables.min" aLengthMenu:[10,25,50,100] - Can i change to aLengthMenu:[10,25,50,100,"All"]

0
Comment made 2 months ago by Patrik Jonsson 3246

Yes, that's the way to go. But you'd lose the changes with future versions. Let me see if I can add it.

/Patrik

0
Comment made 2 months ago by Patrik Jonsson 3246

Releasing 4.6.4

  • Added "All" to the Pagination options.

/Patrik

0
Comment made 2 months ago by RRNF5 3

Thanks Patrick, will give that a try - if i replace my current JS folder with this would that work too?

0
Comment made 2 months ago by Patrik Jonsson 3246

Yes, if you're going from 4.6.3 it will. In general I recommend to replace the bigipreport.ps1 script and the front-end content folders (js, img, css etc) each time you upgrade.

If any configuration file changes are required I will point that out in the "release comment".

/Patrik

0
Comment made 2 months ago by RRNF5 3

Doesn't seem to be working (Unless i have missed something) - I can see the changes reference in "BigipReport.js: "lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]] but not in the "jquery.dataTables.min" aLengthMenu:[10,25,50,100]

0
Comment made 2 months ago by Patrik Jonsson 3246

Try to hit CTRL + F5, or clear the cache of your browser? The initiation of data tables would override the default value that you see in the jquery.dataTables.min file.

/Patrik

0
Comment made 2 months ago by Tom_K 66

Hello, between the 4.3.8 release and 4.5.0 I see that I can no longer click on the VIP names and see detail. That has been replaced by an "Edit" link. What option(s) control that part of the display ? Thanks, Tom

0
Comment made 2 months ago by Patrik Jonsson 3246

Hi Tom!

Thank you for reporting back. :)

The edit link should only be visible if that setting is enabled under "Site preferences". Also, when you click on the virtual server details icon, or the name of the virtual server itself you should still get the details just like before.

If you didn't replace the frontend files (js, json, images and css) please do so and force a refresh of the page with CTRL + F5.

If these things still does not work, please bring up the developer console and paste any javascript exception in the javascript console.

/Patrik

0
Comment made 2 months ago by Patrik Jonsson 3246

Added script upgrade instructions here:

https://loadbalancing.se/bigip-report/#Upgrading_the_script

/Patrik

0
Comment made 2 months ago by Tom_K 66

Patrik - are the "site preferences" in the new 4.5.0 bigipreportconfig.xml file or somewhere else? I did not find anything called "site preferences" in that file. By the way this application is awesome. Tom

0
Comment made 2 months ago by Patrik Jonsson 3246

Hi Tom!

Thank you for your kind words. :)

If you have updated the frontend stuff you should have a button that says Site Prefecences near the global search field.

Image Text

Refer/compare to the demo to see how it should look like once upgraded. Still have issues? Please let me know.

/Patrik

0
Comment made 2 months ago by Patrik Jonsson 3246

4.6.5 released.

  • Bug fix for when the script encounters unknown modules.

No configuration file updates needed when moving from previous version (4.6.4).

/Patrik

1
Comment made 2 months ago by Patrik Jonsson 3246

Hi!

Truth be told, I more or less have no idea who uses the report and I've got no statistics whatsoever except for the feedback I get in this insanely big and messy comment thread.

To make it easier for me to make better decisions about future features, or even to get ideas from you guys I'd love if you could answer this short poll (no registration is required):

http://www.polljunkie.com/poll/qojfxr/bigipreport-survey

While the poll is anonymous and the questions is not targeted at you personally it'd nice with an introduction in the last free text question, if you feel like it. :)

/Patrik

0
Comment made 2 months ago by Christoph Frischhut 132

First of all, thank you for your hard work and your beatiful report, we're using it a lot. I also just saw your link to polljunkie and entered there a new feature request.

Because i think it would be nice to also see the current connections on the VS and the pool members in order to generate the report more frequently and give it also to some other internal departments. But i'm not sure if this could be added.

0
Comment made 2 months ago by Patrik Jonsson 3246

Thank you for your feedback! I'll add it to the feature list and see if I can think of a good way to realize it. I assume you'd prefer to have it in the actual table rather than in the object details?

Object details is faster and could be done soon. As for the table I would need to find a "pretty" way to do it.

/Patrik

0
Comment made 2 months ago by Christoph Frischhut 132

I think it would be the best to add such a feature in the details page from the VS/Pool, otherwise the complete table will be overloaded.

Cheers, Christoph

0
Comment made 2 months ago by Patrik Jonsson 3246

Version 4.6.6

Added virtual server and pool member statistics in the object details div.

No update of the configuration file is needed.

Christoph, please note that I have not had an opportunity to test this one fully yet. Feedback appreciated. :)

/Patrik

0
Comment made 2 months ago by Christoph Frischhut 132

Wow thank you for your fast response. Unfortunetly I'm getting a lot of errors after executing the script. Tested it on two different devices running BigIP Version 12.1.2.

Here is one example:

Cannot index into a null array.
At C:\_dev\_F5\BigipReport-4.6.6-beta\bigipreport-4.6.6.ps1:1357 char:101
+ ... h $($VipStatistics[8].value.high) -Low $($VipStatistics[8].value.low)
+                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

The property 'currentconnections' cannot be found on this object. Verify that the property exists and can be set.
At C:\_dev\_F5\BigipReport-4.6.6-beta\bigipreport-4.6.6.ps1:1357 char:101
+ ... h $($VipStatistics[8].value.high) -Low $($VipStatistics[8].value.low)
+                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException
0
Comment made 2 months ago by Patrik Jonsson 3246

Did you start a new powershell window before executing it? If trying both the old, and new version within the same PS Session it will fail because types can't be declared twice in the same session.

/Patrik

0
Comment made 2 months ago by Patrik Jonsson 3246

Version 4.6.6

Made a small CSS fix to avoid member name wrapping in the pool details table.

No config file update needed.

/Patrik

0
Comment made 2 months ago by Christoph Frischhut 132

Patrik, i just tested today with a fresh powershell window. Now everything was working. A little bit strange because yesterday i also used a complete new instance.

Anyway, the main thing is that it's working. Thank you very much for your help

0
Comment made 2 months ago by Patrik Jonsson 3246

Great stuff, thank you for reporting back!

/Patrik

0
Comment made 1 month ago by PhilShannon 10

I just followed your instructions (ver 4.5), everything seems to work ok. Except I can't view the report all I see are 4 circles spinning

Image Text

0
Comment made 1 month ago by PhilShannon 10

I fixed this by changing line 1263 of bigipreport.js to

function showPoolDetails(pool, loadbalancer, layer){

originally this line was:

function showPoolDetails(pool, loadbalancer, layer = "first"){

0
Comment made 1 month ago by Patrik Jonsson 3246

Hi Phil!

Sorry to hear you're having trouble.

My first guess would be that the static content of the web site is not added to the root directory. If they are there already, could you please send me the details of the Chrome console in the Developer tools (F12, and then the console tab)?

If I were you I'd give the latest version a go. The visuals has improved quite a bit lately and it's been running stable in our prod environment for quite some time now.

/Patrik

0
Comment made 1 month ago by Patrik Jonsson 3246

Thanks for reporting back Phil. I tested the version just now and it's working fine to me (even the pool details). Looks like you're using chrome as well.

Strange indeed!

/Patrik

0
Comment made 1 month ago by Patrik Jonsson 3246

Version 4.6.9

  • Adding fix for duplicate detected data group lists
  • Preventing caching of Json files

No configuration file update is needed.

/Patrik

0
Comment made 1 month ago by PhilShannon 10

Still having trouble viewing default.html from remote systems. Attached are the errors

Image Text

also these json files with the 404's are in the IIS at C:\inetpub\wwwroot\json

Image Text

0
Comment made 1 month ago by Patrik Jonsson 3246

If you load https://bigipreport.yourdomain.local/json/irules.json you get content?

/Patrik

0
Comment made 1 month ago by PhilShannon 10

p.s. thanks, I will try the newest version. also, thank you for being so responsive here this really helps!

0
Comment made 1 month ago by Patrik Jonsson 3246

Been thinking a bit.

If these happens because of lack of permissions you'd get a 401, not 404. Have you double checked the IIS bindings and logs to verify that you're actually reaching the correct site?

If the default.html residers in the same folder as /json I don't see how this would occur. If you find the issue, please let me know the root cause so others can be helped (or to satisfy my curiosity :))?

/Patrik

0
Comment made 1 month ago by PhilShannon 10

previous question: default.html resides in root www folder, the json folder is withing wwwroot

I installed version 4.6.9 and ran it. Tons of errors but the report was generated, I can view it locally and from remote systems, and the report looks good! here are some of the errors (too many to paste here)

Update: unable to paste any of the errors here because "Content has been identified as spam. If this is not the case, please contact devcentral@f5.com";

Update: will try to attach as an image

Image Text

Update2: also seeing this error in several lines:

Line: 66 Error: 'togglePoolHighlight' is undefined

0
Comment made 1 month ago by Patrik Jonsson 3246

Classic. Close your Powershell session and open a new one?

/Patrik

0
Comment made 1 month ago by Patrik Jonsson 3246

And please also refresh the page with CTRL + F5 to discard the cache and force a full refresh.

/Patrik

0
Comment made 1 month ago by PhilShannon 10

perfect! Started a new PS session now got zero errors and a beautiful report. Thank you! It even works with that POS IE 11, great job

0
Comment made 1 month ago by Patrik Jonsson 3246

Not a problem, glad it worked out!

/Patrik

0
Comment made 1 month ago by icefrog 0

This is an awesome script

0
Comment made 4 days ago by KjJava 0

Love the script, Patrik. Had a few issues running it, but finally got it to work, now when I open the file, I get this weird loading animation. Image Text

0
Comment made 4 days ago by Patrik Jonsson 3246

Hi!

Thank you for your kind words!

This symptom indicates an issue with the javascript. Judging by the old loading icon I assume you have upgraded the script? If so, did you follow these instructions?

https://loadbalancing.se/bigip-report/#Upgrading_the_script

/Patrik

0
Comment made 4 days ago by KjJava 0

Thanks Patrik! It was a permissions issue was trying to delete my comment!

-Kj

0
Comment made 4 days ago by Patrik Jonsson 3246

No problem. Glad to help!

/Patrik

0