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.

This information is used to relay information to our NOC and developers to give them insight in where things are located and to be able to plan patching and deploys. I also use it myself as a quick way get information or gather data used as a foundation for RFC's, ie get a list of all external virtual servers without compression profiles.

The script has been running on 13 pairs of load balancers, indexing over 1200 virtual servers for several years now and the report is widely used across the company and by many companies and governments across the world.

It's easy to setup and use and only requires guest permissions on your devices.

Demo/Preview

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

Interactive demo

http://loadbalancing.se/bigipreportdemo/

Video

https://www.youtube.com/watch?v=B0IcmOisL-w&feature=youtu.be

Screen shots

The main report:

Image Text

The device overview:

Image Text

Certificate details:

Image Text

How to use this snippet:

Installation instructions

Fast track instructions available here:

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

Detailed instructions here:

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

Upgrade instructions

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

Protect the report using APM and active directory

Written by Devcentral member Shann_P:

https://loadbalancing.se/2018/04/08/protecting-bigip-report-behind-an-apm-by-shannon-poole/

Got issues/problems/feedback?

Check out the FAQ here:

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

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

Comments on this Snippet
Comment made 13-Oct-2015 by danielpenna 261
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 3440
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 3440
Thank you for your comment Andrew, I will make it easier in the next version.
0
Comment made 22-Dec-2015 by Walter Kacynski 934
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
I will make a fresh install myself and test it. :)
0
Comment made 04-Feb-2016 by Patrik Jonsson 3440
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 3440
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 3440
Sorry mate, I keep chasing them but no news yet.
0
Comment made 28-Feb-2016 by Patrik Jonsson 3440
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 3440
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 292
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 3440
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 3440
Allright! Now I can update the codeshare again!
0
Comment made 07-Mar-2016 by Patrik Jonsson 3440
New versions out. Hope you like the new one! :)
0
Comment made 08-Mar-2016 by RossVermette 292
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 3440
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 292
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 3440
Ross, could you please try version 4.0 and let me know the result? /Patrik
0
Comment made 11-Mar-2016 by Patrik Jonsson 3440
Thank you Sebastian! :)
0
Comment made 11-Mar-2016 by RossVermette 292
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 3440
I think I know what it is. New version in a few minutes.
0
Comment made 11-Mar-2016 by Patrik Jonsson 3440
It was a referal to a future function that broke it. Try the new version? /Patrik
0
Comment made 16-Mar-2016 by RossVermette 292
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 3440
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 261
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 261
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 3440
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 3440
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 3440
Deben, Daniel. Did the new version work out for you?
1
Comment made 03-Jul-2016 by danielpenna 261
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 3440
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 261
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 3440
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 3440
And please tell me which browser you're using? /Patrik
0
Comment made 07-Jul-2016 by danielpenna 261
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 3440
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 3440
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 261
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 3440
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 261
https://devcentral.f5.com/questions/issues-with-bigip-report-47511
0
Comment made 08-Jul-2016 by Patrik Jonsson 3440

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 3440

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 3440

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 3440

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 261

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 1

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 3440

Thank you for the suggestions. Adding to backlog!

0
Comment made 04-Oct-2016 by AN 164

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 3440

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 3440

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

/Patrik

1
Comment made 06-Oct-2016 by danielpenna 261

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 3440

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 139

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

No, sorry.

/Patrik

0
Comment made 07-Jan-2017 by Maneesh 292

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 3440

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 292

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 292

Image Text

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

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 3440

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 3440

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 292

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 3440

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

/Patrik

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

Try 4.3.0 and see if you still get the errors?

/Patrik

0
Comment made 09-Jan-2017 by Maneesh 292

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 3440

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 292

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 3440

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 292

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 3440

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 292

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 3440

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 292

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 3440

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 292

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 292

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 292

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 3440

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 292

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 3440

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

/Patrik

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

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

1
Comment made 25-Jan-2017 by Zdenda 439

Good job!

0
Comment made 16-Feb-2017 by Vikneswaran 72

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 72

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 3440

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 72

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 3440

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 72

Thanks for your quick response.

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

You are most welcome! :)

1
Comment made 23-Feb-2017 by Vikneswaran 72

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 3440

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

/Patrik

1
Comment made 24-Feb-2017 by Vikneswaran 72

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

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

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

1
Comment made 25-Feb-2017 by Vikneswaran 72

:-) thanks

0
Comment made 27-Feb-2017 by Frank 139

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

Thank you Luc! :)

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

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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

/Patrik

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

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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 3440

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

/Patrik

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

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 3440

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 3440

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 3440

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 23-May-2017 by danielpenna 261

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 24-May-2017 by Tom_K 72

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 25-May-2017 by Patrik Jonsson 3440

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 21-Jun-2017 by Patrik Jonsson 3440

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 23-Jun-2017 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 23-Jun-2017 by Patrik Jonsson 3440

Hi!

Thank you for reporting, I will check it out!

/Patrik

0
Comment made 23-Jun-2017 by Patrik Jonsson 3440

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 23-Jun-2017 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 23-Jun-2017 by Patrik Jonsson 3440

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 23-Jun-2017 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 23-Jun-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 23-Jun-2017 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 23-Jun-2017 by Patrik Jonsson 3440

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 29-Jun-2017 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 29-Jun-2017 by Patrik Jonsson 3440

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 30-Jun-2017 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 30-Jun-2017 by Patrik Jonsson 3440

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 06-Jul-2017 by Patrik Jonsson 3440

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 06-Jul-2017 by Patrik Jonsson 3440

Screenshot of the new version:

Image Text

0
Comment made 10-Jul-2017 by Maneesh 292

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 12-Jul-2017 by Patrik Jonsson 3440

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 12-Jul-2017 by Maneesh 292

Cheers Patrick.

0
Comment made 12-Jul-2017 by Patrik Jonsson 3440

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 16-Jul-2017 by Patrik Jonsson 3440

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 20-Jul-2017 by Patrik Jonsson 3440

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 21-Jul-2017 by Patrik Jonsson 3440

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 21-Jul-2017 by Patrik Jonsson 3440

New version

  • Added button for resetting filters

No configuration file update is needed.

/Patrik

0
Comment made 22-Jul-2017 by Patrik Jonsson 3440
0
Comment made 28-Jul-2017 by Patrik Jonsson 3440

Have you looked at the demo?

/Patrik

0
Comment made 28-Jul-2017 by karthik_F5 55

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

0
Comment made 02-Aug-2017 by Patrik Jonsson 3440

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 03-Aug-2017 by Piotr Lewandowski 1126

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 03-Aug-2017 by Patrik Jonsson 3440

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 03-Aug-2017 by Patrik Jonsson 3440

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 03-Aug-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 03-Aug-2017 by Piotr Lewandowski 1126

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 03-Aug-2017 by Piotr Lewandowski 1126

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 04-Aug-2017 by Patrik Jonsson 3440

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 04-Aug-2017 by Patrik Jonsson 3440

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 04-Aug-2017 by Piotr Lewandowski 1126

Thanks a lot, really appreciate your work!

Piotr

0
Comment made 13-Aug-2017 by Patrik Jonsson 3440

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 13-Aug-2017 by Patrik Jonsson 3440

One more out.

  • Added filter icons too

Demo has been updated and can be found here.

0
Comment made 15-Aug-2017 by RRNF5 3

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

0
Comment made 15-Aug-2017 by Patrik Jonsson 3440

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 15-Aug-2017 by RRNF5 3

Thanks, That is enough to get me started

0
Comment made 15-Aug-2017 by Patrik Jonsson 3440

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 15-Aug-2017 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 15-Aug-2017 by Patrik Jonsson 3440

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 15-Aug-2017 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 15-Aug-2017 by Emad 551

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 16-Aug-2017 by Piotr Lewandowski 1126

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 16-Aug-2017 by Patrik Jonsson 3440

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 16-Aug-2017 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 16-Aug-2017 by Piotr Lewandowski 1126

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 16-Aug-2017 by Patrik Jonsson 3440

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 16-Aug-2017 by Piotr Lewandowski Softwaredefined 2

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

Piotr

0
Comment made 17-Aug-2017 by Piotr Lewandowski 1126

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 17-Aug-2017 by Patrik Jonsson 3440

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 17-Aug-2017 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 17-Aug-2017 by Emad 551

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

0
Comment made 18-Aug-2017 by Piotr Lewandowski 1126

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

Piotr

0
Comment made 18-Aug-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 18-Aug-2017 by Patrik Jonsson 3440

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 18-Aug-2017 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 18-Aug-2017 by Patrik Jonsson 3440

Version 4.6.1

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

/Patrik

1
Comment made 18-Aug-2017 by Patrik Jonsson 3440

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 19-Aug-2017 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 19-Aug-2017 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 19-Aug-2017 by Patrik Jonsson 3440

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 20-Aug-2017 by Piotr Lewandowski 1126

Hi,

Thanks a lot.

Piotr

0
Comment made 21-Aug-2017 by Piotr Lewandowski 1126

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 21-Aug-2017 by Piotr Lewandowski 1126

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 21-Aug-2017 by Patrik Jonsson 3440

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 21-Aug-2017 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 21-Aug-2017 by Patrik Jonsson 3440

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 21-Aug-2017 by Piotr Lewandowski 1126

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 21-Aug-2017 by Patrik Jonsson 3440

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 21-Aug-2017 by Piotr Lewandowski 1126

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 21-Aug-2017 by Patrik Jonsson 3440

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 21-Aug-2017 by Piotr Lewandowski 1126

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 21-Aug-2017 by Patrik Jonsson 3440

"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 21-Aug-2017 by Piotr Lewandowski 1126

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 24-Aug-2017 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 24-Aug-2017 by Patrik Jonsson 3440

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 24-Aug-2017 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 24-Aug-2017 by Patrik Jonsson 3440

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 24-Aug-2017 by Patrik Jonsson 3440

Releasing 4.6.4

  • Added "All" to the Pagination options.

/Patrik

0
Comment made 25-Aug-2017 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 25-Aug-2017 by Patrik Jonsson 3440

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 25-Aug-2017 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 25-Aug-2017 by Patrik Jonsson 3440

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 30-Aug-2017 by Tom_K 72

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 30-Aug-2017 by Patrik Jonsson 3440

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 30-Aug-2017 by Patrik Jonsson 3440

Added script upgrade instructions here:

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

/Patrik

0
Comment made 30-Aug-2017 by Tom_K 72

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 31-Aug-2017 by Patrik Jonsson 3440

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 08-Sep-2017 by Patrik Jonsson 3440

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 09-Sep-2017 by Patrik Jonsson 3440

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 10-Sep-2017 by Christoph Frischhut 134

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 10-Sep-2017 by Patrik Jonsson 3440

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 10-Sep-2017 by Christoph Frischhut 134

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 11-Sep-2017 by Patrik Jonsson 3440

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 11-Sep-2017 by Christoph Frischhut 134

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 11-Sep-2017 by Patrik Jonsson 3440

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 11-Sep-2017 by Patrik Jonsson 3440

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 11-Sep-2017 by Christoph Frischhut 134

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 12-Sep-2017 by Patrik Jonsson 3440

Great stuff, thank you for reporting back!

/Patrik

0
Comment made 27-Sep-2017 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 27-Sep-2017 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 27-Sep-2017 by Patrik Jonsson 3440

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 27-Sep-2017 by Patrik Jonsson 3440

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 27-Sep-2017 by Patrik Jonsson 3440

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 27-Sep-2017 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 27-Sep-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 27-Sep-2017 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 27-Sep-2017 by Patrik Jonsson 3440

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 27-Sep-2017 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 27-Sep-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 27-Sep-2017 by Patrik Jonsson 3440

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

/Patrik

0
Comment made 27-Sep-2017 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 27-Sep-2017 by Patrik Jonsson 3440

Not a problem, glad it worked out!

/Patrik

0
Comment made 13-Oct-2017 by icefrog 0

This is an awesome script

0
Comment made 14-Nov-2017 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 14-Nov-2017 by Patrik Jonsson 3440

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 14-Nov-2017 by KjJava 0

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

-Kj

0
Comment made 14-Nov-2017 by Patrik Jonsson 3440

No problem. Glad to help!

/Patrik

0
Comment made 26-Nov-2017 by Munawar Khan 0

Dear ,

kindly help me setting up the IIS, I could not find default.html to start the webserver.

0
Comment made 26-Nov-2017 by Patrik Jonsson 3440

Hi!

There can be several issues. Here's a few questions:

  • Did you check the script configuration for which name it should write as the default file?
  • When you say could not find, do you mean that you can't see it in the file system or that you get a 404?
  • Did the script run as it should without any errors?

There's a bunch of troubleshooting steps available here:

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

Please let me know if you continue to have problems?

/Patrik

0
Comment made 5 months ago by Munawar Khan 0

Hi, I am very close to get reports. Installed on windows 2016 server ,but I cannot see the contents in Web page where as I can see the Jason files collected the data. I am getting a blank report page .it is not displaying the contents in Web page. It's not displaying the infor

0
Comment made 5 months ago by Patrik Jonsson 3440

Hi!

  • If you open the javascript console of your browser do you see any errors?
  • Have you copied over the files from the web files directory (included in the zip file)?
  • Do you get any error message from IIS?

Also could be worth double checking the security permissions on the web directory to ensure that the user has access to it.

/Patrik

0
Comment made 5 months ago by leo.graells 53

Hello, Your script seems to be awesome. I have a problem when executing it with 1826 line :

PS E:\wamp64\www> .\bigipreport-4.6.9.ps1 Vous devez fournir une expression de valeur à droite de l'opérateur « - ».Au niveau de E:\wamp64\www\bigipreport-4.6.9.ps1 : 1826 Caractère : 57+ $ruleScope = $Global:irules | Where-Object { $_.name - <<<< in $Bigipreportconfig.Settings.iRules.iRule.iRuleName -and $_.loadbalancer -in $Bigipreportconfig.Settings.iRules.iRule.loadbalancer } + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : ExpectedValueExpression

Thanks for your help !

0
Comment made 5 months ago by Munawar Khan 0

Hi Patrik, I cannot able to see the complete report. Attached error snapshot.

Image Text

0
Comment made 5 months ago by Patrik Jonsson 3440

@Leo - Thanks for reporting. I don't believe that I have tested without iRule links in a while. Will get back to you.

@Munawar, the error you see is probably not the cause. Could you please do the following?

  1. Start up a command prompt and go to the web root of your IIS server. Default is C:\inetpub\wwwroot (to enter that directory, issue the command "cd C:\inetpub\wwwroot").
  2. When you're in that directory, issue this command "dir /s".
  3. Paste the output here.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Leo, I tried to disable the iRule links and it worked as expected. Which version of TMOS are you running?

Try following the set-up guide (https://loadbalancing.se/bigip-report/) and minimize the configuration file changes?

Please report back when done? :)

0
Comment made 5 months ago by leo.graells 53

@Patrik,I've already followed your set-up guide, I'm running with BIG-IP 11.6.1 Build 2.0.338 Hotfix HF2 TMOS version.

What do you expect with "I tried to disable the iRule links and it worked as expected" ?

Thanks you

0
Comment made 5 months ago by Munawar Khan 0

Hi, Patrik, Attached is the resultsImage Text

0
Comment made 5 months ago by Patrik Jonsson 3440

@Leo, what I meant was that I figured that you'd configured the report to now show iRule links since the section you referred to is activated when you do. But if you didn't the issue must be somewhere else. What's your powershell version (enter $PSversiontable in the powershell window)?

@Munawar, it's almost as if you don't have anything configured in your BigIP. Are you running the LTM module on it? Is the powershell script really finishing without any errors?

0
Comment made 5 months ago by Patrik Jonsson 3440

@Munawar, sorry but I have to ask this as well. Double check that you've configured any load balancer IP's in the config file?

0
Comment made 5 months ago by Patrik Jonsson 3440

@Leo, I would also like to ask, is the script failing straight away? As in refusing to load at all, or do you get the pre-execution checks?

I tested the script against an 11.6.1 device just now and it worked fine.

Image Text

/Patrik

0
Comment made 5 months ago by leo.graells 53

Hello,

Here my powershell version :

`PS E:\wamp64\www> $PSversiontable`

Name                           Value
    ----                           -----
    CLRVersion                     2.0.50727.8762
    BuildVersion                   6.1.7601.17514
    PSVersion                      2.0
    WSManStackVersion              2.0
    PSCompatibleVersions           {1.0, 2.0}
    SerializationVersion           1.1.0.1
    PSRemotingProtocolVersion      2.1

I don't really need Irules informations, is it possible to disable it ? I have no pre execution check the script isn't working for me with the error reported to 1826 line :/

Thanks Léo

0
Comment made 5 months ago by Patrik Jonsson 3440

There's the issue. :)

https://loadbalancing.se/bigip-report/#Requirements <-- States that you need at least Powershell version 4.0. Upgrade and the script should work just fine. :)

Regarding the iRules. If you want to hide them there are examples at the bottom of the configuration file on how to do that. :)

/Patrik

1
Comment made 5 months ago by leo.graells 53

Hello Patrik, thanks you !! It's working perfectly now :)

0
Comment made 5 months ago by Munawar Khan 0

Hi Patrik, I really appreciate your work and help. I was not aware it was testing appliance without the virtual server defined Now i can able to see the complete report without any errors. i was able to connect to ltm before. root cause there was no virtual servers in LTM. Thanks alot

Image Text

0
Comment made 5 months ago by Patrik Jonsson 3440

No problem.

Leo, Munawar, glad it worked out in the end!

Feel free to hit the upvote button for any comments you feel was helpful, and please give the script a review if you're happy with it once you tried it. :)

Image Text

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Version 4.7.0

There's an option to export the current search to CSV. Please note that only the visible rows will be exported, so if you want it all you must use the pagination dropdown meny and select all.

To take part of this feature you must update the configuration file with the ExportLink section.

Feedback is welcome as always. And if you like the report, please submit a review by selecting the stars at the top. :)

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Version 4.7.1

Support for monitors using HEAD instead of get. Note the previous comment regarding configuration file updates.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Version 4.7.2

This version has two of the most requested things from the survey:

  • CSV export
  • Multiple configuration files.

Example on how to use an alternate configuration file:

.\bigipreport.ps1 -ConfigurationFile 'C:\Scripts\bigipreportconfig2.xml'

The script defaults to "$PSScriptRoot\bigipreportconfig.xml" so there is no need to change the scheduled tasks unless you need this feature.

/Patrik

0
Comment made 5 months ago by PhilShannon 10

I upgraded to 4.7.2, works great. Can you give me a clue for how to export to CSV? Can't seem to find the option. I confirmed that ExportLink setting is enabled. thanks

0
Comment made 5 months ago by Patrik Jonsson 3440

Hi Phil

Did you update the web content folders too (js, css, images)? Also, force a reload of the page and clear the cache?

Here's a screen shot with the location:

Image Text

/Patrik

0
Comment made 5 months ago by PhilShannon 10

Yes. And I just deleted everything, started over, cleared cache, replaced all 4 of these directories with the new ones, still don't have any search or export or site prefs showing. Tried 3 different browsers, also tried from 2 other computers. I'm baffled how that is even possible.

I do get an error via email:

The following exceptions was thrown during script execution Category Linenumber Line Stacktrace FileNotFoundException 0

0
Comment made 5 months ago by Patrik Jonsson 3440

Wait, you don't see the site preferences either? What's your previous version?

Would you mind sharing your configuration file (exclude user/password and device IPs etc) via ie. pastebin?

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Could you also verify that the files (json/html) has been updated? If you run the script manually, can you get a more detailed error?

/Patrik

0
Comment made 5 months ago by PhilShannon 10

I don't have a pastebin account? Can I email it? Also, how do I "verify that the files (json/html) has been updated"? I completely deleted css, js, json, & images folders multiple times, and copied the new 4.7.2 ones over. thanks

0
Comment made 5 months ago by PhilShannon 10

Never tried pastebin before, just did so here is my config

https://pastebin.com/4VxK1hKC

0
Comment made 5 months ago by PhilShannon 10

I always run it manually, here is all of the output

PS C:\Users\Administrator\Documents\BigIpReport> .\bigipreport-4.7.2.ps1 Successfully loaded the config file 2017-12-21 10:51:12 Configuring the console window 2017-12-21 10:51:12 Pre-execution checks 2017-12-21 10:51:12 Pre execution checks was successful 2017-12-21 10:51:12 Enabling TLS1.2 2017-12-21 10:51:13 Getting data from 10.60.88.15 2017-12-21 10:51:13 iControl session successfully established 2017-12-21 10:51:13 Getting hostname 2017-12-21 10:51:13 Hostname is cardc-f5devl1.rpega.com 2017-12-21 10:51:13 Caching LTM information from cardc-f5devl1.rpega.com 2017-12-21 10:51:13 Fetching information about the device 2017-12-21 10:51:13 Caching monitors 2017-12-21 10:51:13 Caching data group lists 2017-12-21 10:51:13 Caching Pools 2017-12-21 10:51:13 Caching iRules 2017-12-21 10:51:13 Caching Virtual servers 2017-12-21 10:51:14 Adding orphaned pools to the virtual server list 2017-12-21 10:51:14 Verifying load balancer data to make sure that no load balancer is missing 2017-12-21 10:51:14 No missing loadbalancer data was detected, compiling the report 2017-12-21 10:51:15 Writing report temporary file to C:\Inetpub\wwwroot\default.html.tmp 2017-12-21 10:51:15 Writing temporary pools json object to C:\Inetpub\wwwroot\json\pools.json.tmp 2017-12-21 10:51:15 Writing temporary monitor json object to C:\Inetpub\wwwroot\json\monitors.json.tmp 2017-12-21 10:51:15 Writing temporary virtual server json object to C:\Inetpub\wwwroot\json\virtualservers.json.tmp 2017-12-21 10:51:15 Writing temporary irules json object to C:\Inetpub\wwwroot\json\irules.json.tmp 2017-12-21 10:51:15 Writing temporary data group list json object to C:\Inetpub\wwwroot\json\datagrouplists.json.tmp 2017-12-21 10:51:15 Successfully wrote the temporary files 2017-12-21 10:51:25 Updating the report with the new data 2017-12-21 10:51:25 The report has been successfully been updated 2017-12-21 10:51:25 There were errors while generating the report 2017-12-21 10:51:25 Sending report

0
Comment made 5 months ago by Patrik Jonsson 3440

Ok, now I've tried your configuration file (you might want to change your password unless you obfuscated it :) ), and it worked fine on my side.

A few things that I could think of that could have happened.

  1. Do you have two html files in the root perhaps? I'm thinking that the script in your configuration file writes to default.html, while the old configuration file might write to default.htm. That would explain the same result from different browsers.
  2. The old ps1 could still be executed by mistake.
  3. There could be a be another script scheduled somewhere to overwrite the html file?

You can verify that the html file contains the necessary code by checking the head section of it (right click and choose "View page source" and look for the following:

Image Text

Btw, I'm in the Singapore time zone so our time zones might be a bit off. :)

/Patrik

0
Comment made 5 months ago by PhilShannon 10

Thanks Patrik. I hope you enjoy the holiday season in Singapore. This isn't very urgent at all, I appreciate the help. I do see the ShowExportLink = true; so this remains a mystery. No other .htm or .html files I've actually deleted all the files from any/all previous versions on the report. On this system all that is there is the 4.7.2 files, what a freaking mystery! At least all the other info is there and accurate so again no rush on this, but the mystery is very dramatic so I will continue to chip away today, may even setup a brand new vm and move everything there. Image Text

0
Comment made 5 months ago by PhilShannon 10

p.s. yes that's a fake password I typed in there at pastebin and I put fake IP's as well

0
Comment made 5 months ago by Patrik Jonsson 3440

It's almost like javascript has been turned off. You don't see the column toggles either. Let me generate a new demo and upload it. See if you can see it there?

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Could you also please verify that all the objects in the network tab has been loaded successfully (and has more than 0 bytes size)?

Another thing you can do is to click on each javascript and css to verify that the encoding is not funky (it'd look like Chinese/japanese).

Image Text

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

I've uploaded a demo with the latest version here:

http://loadbalancing.se/bigipreportdemo/

See if it loads as expected?

When I reloaded I the export link was missing too. Forcing a reload of the page solved it though. From the looks of it you're missing the whole top row, which makes this even weirder.

Double check the javascript console for exceptions?

/Patrik

0
Comment made 5 months ago by PhilShannon 10

Image Text

0
Comment made 5 months ago by PhilShannon 10

Yeah I see everything there at your new demo... I think I want to cry, how is this even possible? Like I said there is NOTHING on this system except for version 4.7.2

0
Comment made 5 months ago by PhilShannon 10

trying from other computers too. Just saw this error from an older IE version Image Text

0
Comment made 5 months ago by Patrik Jonsson 3440

I'd start with the 404's :) Looks like there's some missing files there.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

IE is not really supported so let's focus on Chrome/Firefox. Microsoft browsers has always been a pain in the b*tt.

/Patrik

0
Comment made 5 months ago by PhilShannon 10

how do you approach this type of error?

GET http://vshanpw7/json/pools.json? =1513956610656 404 (Not Found)

The pool.json file is there and accessible, does this mean 1513956610656 is missing from within the file?

Also, what is "1513956610656" (if you know)? thanks

0
Comment made 5 months ago by PhilShannon 10

since we don't use browsers on most of the systems I'm working with, we don't install anything else like firefox or chrome. I do have a couple of systems with chrome, also have Vivaldi but I don't install firefox anywhere

0
Comment made 5 months ago by Patrik Jonsson 3440

The numbers are there to prevent caching. Not sure where the white space comes from though. That is very weird... If you navigate to http://vshanpw7/json/pools.json without the query string. Do you see the JS file then?

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

If you want to try without the disabled cache you can try to replace ./js/bigipreport.js with this file.

https://pastebin.com/raw/h42rdU1z

/Patrik

0
Comment made 5 months ago by PhilShannon 10

when I try to go to that url: 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

0
Comment made 5 months ago by Patrik Jonsson 3440

I don't really see how that's the the issues though. The query string should just be ignored by the web server when serving these files.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Ok, then I was right. The files are missing. Simple as that.

Could you please do what Munawar did above?

  1. Start up a command prompt and go to the web root of your IIS server. Default is C:\inetpub\wwwroot (to enter that directory, issue the command "cd C:\inetpub\wwwroot").
  2. When you're in that directory, issue this command "dir /s".
  3. Paste the output here.

/Patrik

0
Comment made 5 months ago by PhilShannon 10

But the files aren't actually missing, they are right where they should be : c:\inetpub\wwwroot>dir /s Volume in drive C has no label. Volume Serial Number is 24D9-8247

Directory of c:\inetpub\wwwroot

12/22/2017 11:19 AM

. 12/22/2017 11:19 AM .. 02/21/2014 09:46 AM aspnet_client 12/21/2017 08:52 AM css 12/22/2017 11:19 AM 142,356 default.html 12/19/2013 07:14 PM 689 iisstart.htm 12/21/2017 08:52 AM images 12/21/2017 08:52 AM js 12/22/2017 11:19 AM json 12/19/2013 07:14 PM 184,946 welcome.png 3 File(s) 327,991 bytes

Directory of c:\inetpub\wwwroot\aspnet_client

02/21/2014 09:46 AM

. 02/21/2014 09:46 AM .. 02/21/2014 09:46 AM system_web 0 File(s) 0 bytes

Directory of c:\inetpub\wwwroot\aspnet_client\system_web

02/21/2014 09:46 AM

. 02/21/2014 09:46 AM .. 02/21/2014 09:46 AM 4_0_30319 0 File(s) 0 bytes

Directory of c:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319

02/21/2014 09:46 AM

. 02/21/2014 09:46 AM .. 0 File(s) 0 bytes

Directory of c:\inetpub\wwwroot\css

12/21/2017 08:52 AM

. 12/21/2017 08:52 AM .. 12/21/2017 08:51 AM 29,396 bigipreportstyle.css 12/21/2017 08:51 AM 15,985 jquery.dataTables.css 12/21/2017 08:51 AM 10,251 pace.css 12/21/2017 08:51 AM 3,065 sh_style.css 4 File(s) 58,697 bytes

Directory of c:\inetpub\wwwroot\images

12/21/2017 08:52 AM

. 12/21/2017 08:52 AM .. 12/21/2017 08:51 AM 18,516 bigipreportlogo.png 12/21/2017 08:51 AM 15,932 black-circle-checkmark.png 12/21/2017 08:51 AM 19,055 black-diamond-exclamationmark.png 12/21/2017 08:51 AM 18,004 blue-square-questionmark.png 12/21/2017 08:51 AM 249 chevron-down.png 12/21/2017 08:51 AM 259 chevron-up.png 12/21/2017 08:51 AM 538 chosen-sprite.png 12/21/2017 08:51 AM 15,748 details.png 12/21/2017 08:51 AM 19,003 f5logo.png 12/21/2017 08:51 AM 1,150 favicon.ico 12/21/2017 08:51 AM 434 filter.png 12/21/2017 08:51 AM 15,882 green-circle-checkmark.png 12/21/2017 08:51 AM 35,166 Preloader_11.gif 12/21/2017 08:51 AM 15,896 red-circle-cross.png 12/21/2017 08:51 AM 19,148 red-diamond-exclamationmark.png 12/21/2017 08:51 AM 1,526 share.png 12/21/2017 08:51 AM 160 sort_asc.png 12/21/2017 08:51 AM 201 sort_both.png 12/21/2017 08:51 AM 158 sort_desc.png 19 File(s) 197,025 bytes

Directory of c:\inetpub\wwwroot\js

12/21/2017 08:52 AM

. 12/21/2017 08:52 AM .. 12/21/2017 11:26 AM 57,105 bigipreport.js 12/21/2017 08:51 AM 80,041 jquery.dataTables.min.js 12/21/2017 08:51 AM 4,091 jquery.highlight.js 12/21/2017 08:51 AM 85,634 jquery.min.js 12/21/2017 08:51 AM 52,757 modernizr.js 12/21/2017 08:51 AM 12,364 pace.js 12/21/2017 08:51 AM 15,433 sh_main.js 12/21/2017 08:51 AM 1,763 sh_tcl.js 8 File(s) 309,188 bytes

Directory of c:\inetpub\wwwroot\json

12/22/2017 11:19 AM

. 12/22/2017 11:19 AM .. 12/22/2017 11:19 AM 841 datagrouplists.json 12/21/2017 08:51 AM 342 defaultpreferences.json 12/22/2017 11:19 AM 107,117 irules.json 12/22/2017 11:19 AM 17,550 monitors.json 12/22/2017 11:19 AM 23,867 pools.json 12/22/2017 11:19 AM 35,868 virtualservers.json 6 File(s) 185,585 bytes

 Total Files Listed:
          40 File(s)      1,078,486 bytes
          23 Dir(s)  28,083,527,680 bytes free

c:\inetpub\wwwroot

0
Comment made 5 months ago by PhilShannon 10

this is frustrating, can't even paste the results in here in a veiwable way. Maybe we just drop this whole thing, export to CSV isn't THAT important. I wish we could just drop the files into wwwroot as instructed, and everythign works.

0
Comment made 5 months ago by PhilShannon 10

results on pastebin anyway, at least they are viewable there https://pastebin.com/Gmzh4Kb4

0
Comment made 5 months ago by Patrik Jonsson 3440

Yep, they are there indeed. But somehow your IIS server reports them as missing when you browse to them which to me indicates that the directory you listed just now might not be the directory where the IIS is fetching files from.

Have a look at the site bindings in IIS?

Image Text

Please note that I only have one site. You might have more than one?

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

You can also double check the folder content according to IIS by opening up the manager, navigating to the json folder and clicking browse in the top right corner:

Image Text

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Let's not give up too easily. Mysteries are to be solved. ;)

/Patrik

0
Comment made 5 months ago by PhilShannon 10

Image Text

0
Comment made 5 months ago by PhilShannon 10

when I click browse it takes me there: Image Text

0
Comment made 5 months ago by Patrik Jonsson 3440

Ok... I'm running out of ideas here without actually doing a remote session. What happens if you copy the files to another server and try there? Maybe run IIS on your client and try localhost?

I really don't think that the script is the problem here considering how you get 404's from your web server.

Almost 01am here so I need to hit the sack. :)

/Patrik

0
Comment made 5 months ago by PhilShannon 10

Sure I'll try another computer, let's take a break and I will report back next week. Thank you for helping with this I'm sure you have much better things to do. Happy Holidays

0
Comment made 5 months ago by Patrik Jonsson 3440

No problem. Also check the hosts file to make sure that there are no entries there that could throw you off track. :)

Please report back with any findings? Always nice to solve a mystery.

Merry christmas!

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Discussed this with a friend of mine and he had the idea that you could create ie. a text file at the root at attempt to access it. Then create it in the json folder and try to access it.

Also double check the file and folder permissions.

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Problem: One more thing:

When attempting to open a file from a web server running IIS 6.0 or later, and the file has an extension that is not a defined "MIME Type", the following error message will be displayed:

HTTP Error 404 – File or Directory not found

Solution:

Define a wildcard "MIME Type" within the roaming user profile directory of the IIS server. In order to define the wildcard "MIME Type", please follow the steps listed below:

0
Comment made 5 months ago by Patrik Jonsson 3440

Version 4.7.3

Only quality improvements in this one.

Better pre-execution checks

  • The script now will check if the report root directory contains the js, css, images and json folders.
  • Script will also verify that the folders has content.

Better report error handling

  • The report will show an error message if any of the json files does not exist.
  • Each failure is recorded and links to the failed objects is provided.

Merry christmas!

/Patrik

0
Comment made 5 months ago by PhilShannon 10

I setup another vm, brand new vm running windows 7. Tried version 4.7.3 but it fails with this error:

PS C:\Users\Administrator\Documents\BigIpReport> .\bigipreport-4.7.3.ps1You must provide a value expression on the right-hand side of the '-' operator.At C:\Users\Administrator\Documents\BigIpReport\bigipreport-4.7.3.ps1:1871 char:57+ $ruleScope = $Global:irules | Where-Object { $_.name - <<<< in $Bigipreportconfig.Settings.iRules.iRule.iRuleName -and $_.loadbalancer -in $Bigipreportconfig.Settings.iRules.iRule.loadbalancer } + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : ExpectedValueExpression

I tried the same files on my current system, script runs, I get the results, but same issue. I'm not seeing the export and other options at the top

0
Comment made 5 months ago by PhilShannon 10

Next thing I tried: since the script won't run on the brand new vm, I copied the 4 directories over to the new vm, and also the default.html file. On the new VM I can view default.html but the same issue exists, the top options are missing including export to cvs. This is a default IIS 7 setup, I haven't edited any settings at all.

0
Comment made 5 months ago by PhilShannon 10

If nobody else can even end up with this mess, I'm assuming the problem I am facing is something related to security here in our network, maybe IT is deploying a group policy that is disabling the ability to have these js files actually work as normal. If you can't replicate this issue anywhere I think it's time to just move on and worry about more important issues. I couldn't make it any easier to replicate, fresh win 7 system with default IIS 7 settings.

0
Comment made 5 months ago by Patrik Jonsson 3440

Your first error will be solved if you upgrade to Powershell version 4. Do that and try again?

/Patrik

0
Comment made 5 months ago by Patrik Jonsson 3440

Version 4.7.4

The script won't run on systems with a Powershell version lower than 4.

/Patrik

0
Comment made 4 months ago by PhilShannon 10

After upgrading to Powershell 4:

PS C:\Users\Administrator\Documents\BigIpReport> .\bigipreport-4.7.3.ps1 Successfully loaded the config file 2017-12-27 08:55:06 Configuring the console window 2017-12-27 08:55:06 Pre-execution checks 2017-12-27 08:55:06 iControl Snapin could not be found, aborting 2017-12-27 08:55:06 There were errors during the config file sanity check 2017-12-27 08:55:06 Attempting to sen an error report via mail 2017-12-27 08:55:06 There were errors while generating the report 2017-12-27 08:55:06 Sending report 2017-12-27 08:55:06 Exiting

the email says:

The following handled errors was thrown during the execution iControl Snapin could not be found, aborting The following exceptions was thrown during script execution Category Linenumber Line Stacktrace PSSecurityException 1 At line:1 char:1 + .\bigipreport-4.7.3.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~ at , : line 1 CommandNotFoundException 1 At line:1 char:2 + ;s + ~ at , : line 1 ItemNotFoundException 1 At line:1 char:1 + cd Big + ~~~~~~ at , : line 1

0
Comment made 4 months ago by PhilShannon 10

update: tried to install the plugin that I found here https://devcentral.f5.com/d/microsoft-powershell-with-icontrol but I'm getting a bunch of errors on that one too

0
Comment made 4 months ago by PhilShannon 10

Before I continue with 1 hurdle after another, do you know a better way to setup a brand new system where this would actually work out of the box? Like Windows 10 or Server 2016 or anything like that? thanks

0
Comment made 4 months ago by Patrik Jonsson 3440

If you follow the instructions here, step by step it would work on both of those systems.

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

I have not written any automatic installation yet as the installation is (usually) pretty straight forward.

/Patrik

0
Comment made 4 months ago by PhilShannon 10

OK not only do you need to "unblock" the zip file, but after you extract it to C:\Program Files\F% Networks\ you have to unblock each of the files. After that I got it to work. Here is the result:

0
Comment made 4 months ago by PhilShannon 10

Image Text]

0
Comment made 4 months ago by PhilShannon 10

Haven't messed with an IIS settings, these files all are present in what seems to be the correct location

Image Text]

0
Comment made 4 months ago by PhilShannon 10

Adding JSON to mime types fixes it for chrome (not IE but who cares lol) Found the info here, about adding it to IIS mime settings https://stackoverflow.com/questions/15944311/error-404-3-not-found-for-json-file

0
Comment made 4 months ago by Patrik Jonsson 3440

Nice! That was actually suggested a few comments back. :)

So the report works now? I have a feeling that this could be due to an old IIS version.

I will update the installation guide.

0
Comment made 4 months ago by PhilShannon 10

"Define a wildcard "MIME Type" within the roaming user profile directory of the IIS server" actually the link I posted tells you to go into IIS Manager and add the MIME type there, which works. Yes this is all set now, the report has everything that was missing previously. For the record, the version of IIS running in the Windows 7 vm is 7.5.7600.16385 I'll try to learn if there is a newer version of IIS that works for Win 7 or not. thanks for all the help to get these features working, I was one of the people that asked for export to CSV

0
Comment made 4 months ago by PhilShannon 10

Doesn't seem to be a newer version of 7.5 for Windows 7. This IIS version has numerous vulnerabilities as well. What OS/IIS combo are you using Patrik? I wonder if I should switch over to Server 2012 with latest IIS 8, thinking it's probably a good idea

0
Comment made 4 months ago by Patrik Jonsson 3440

Thank you for your feedback Phil! Since introducing json to the report I've only used:

  • Windows 2012
  • Windows 2016
  • Windows 8
  • Windows 10

I guess that makes IIS 8 and above?

/Patrik

0
Comment made 4 months ago by PhilShannon 10

Yeah I built a new Windows 7 vm because that's what I've been running this on, my old win 7 vm and I wanted to troubleshoot in the same enviro. I already disabled IIS 7.5 on my original old school WIn 7 vm, and will now build a small Server 2016 vm for this. Thank you for being so quick with suggestions and next steps. Happy New Year

0
Comment made 4 months ago by Cinder 10

Hello Patrik, I've enjoyed using your report generator. Thank you for the hard work. I've run into an issue when opening the html file in Chrome - "There were errors when loading the object json files". I've validated the json files do indeed have data. I've also tried opening the html in IE, I don't get the error about the json files but none of the links to see virtual server details work. I've interrogated the ltms several times and don't see any issues in the logs.

Any ideas? Win7x64\Chrome-v63.0.3239.84\IE-v11.0.9600

0
Comment made 4 months ago by Patrik Jonsson 3440

Hi Cinder

Look at PhilShannons comments just above yours. He most likely just went through the same issue. :)

I've added some instructions here:

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

If you were running recent versions of BigIP Report it used to be broken without you knowing it so you might get a pleasant surprise after fixing this. :)

Meanwhile, I will update the report to suggest this solution in the error message.

Happy new year!

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3440

Version 4.7.5

Improving the error message when failing to load the json files.

/Patrik

0
Comment made 4 months ago by Cinder 10

Thanks Patrik, I got it all working. How frequently do you run the script to interrogate all of your ltm's? Have you run into any issues on a an ltm with regards to resources while running the script too often?

0
Comment made 4 months ago by Patrik Jonsson 3440

No problem.

It depends on how which platform you have, the size of your configuration, if you have generally high the CPU usage or not. Most of the heavy lifting is done on the BigIP-Report server.

At my work place the report is used by the organization to troubleshoot stuff and to know status of objects so we run it as often as we possibly can. The whole batch takes ~20 minutes to finish so the Scheduled Task has been set to run every 30 minutes in case of slow network/BigIP-report server.

You can test yourself by running the report repeatedly against a lab/QA server:

cd <bigipreport script directory>
do { .\bigipreport.ps1 } while { 0 -lt 1 }

Do note, that if you have a virtual lab edition, please make sure that you run it against the management interface and not one of the other types. Otherwise you might hit the throughput limit of 10mbit. :)

/Patrik

0
Comment made 4 months ago by Vingert 0

I was facing the same issue as Shannon and Cinon ("There were errors when loading the object json files".) using the BigIPReport v4.7 in a test LTM environment and IIS 10.0. My config had one pool and one virtual server. Started to struggle with this issue not showing the vs and pool details, and then I created a few more pool and virtual servers and run the script again. Reloaded the page and it worked perfectly! Dunno why but the important thing is that works 100%! Thx Dude! Great work! :)

0
Comment made 4 months ago by Patrik Jonsson 3440

Thank you for the feedback! I believe the issue you faced is a bug that I actually encountered myself today.

It will be fixed in the next version.

0
Comment made 4 months ago by Patrik Jonsson 3440

And say hi to Riad from me. :)

0
Comment made 4 months ago by Patrik Jonsson 3440

4.8.0 Beta release

  • Many many small fixes, improvements that you likely won't notice. :)
  • Bug fix for reports only containing single objects (vs, pool, nodes).

But on to the cool stuff

  • The report is now able to poll your F5 devices and thus getting the current state of the pool members.

Please read this first:

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

Configuration file update is needed to make this work.

I would very appreciate feedback on the implementation and reports of any issues implementing the polling feature.

0
Comment made 4 months ago by Vingert 0

Thanks for the feedback :)

You know Riad! Small world :) I will say hi to him :)

0
Comment made 4 months ago by Munawar Khan 0

Hi,

It is possible to export the report in PDF format?, I Dont want to use chrome print to PDF. is there any way we can do it. Munawar

0
Comment made 4 months ago by Patrik Jonsson 3440

Thanks for the feedback.

It's currently not possible unless using windows/chrome's PDF printer.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3440

Awkward. Forgot to add the zip file for the 4.8.0 beta release. :)

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3440

Found an issue with the Beta. If using SSL to host the report the status VIP's won't work. I will need to re-do the configuration section so I will remove the beta for now.

/Patrik

0
Comment made 4 months ago by Patrik Jonsson 3440

4.8.5 - Big update this time

Please note that you must update/re-do the configuration this time as the way that the load balancers are defined has changed from individual IP's to device groups.

  • The script now supports real-time member status
  • Changing to device groups instead of individual load balancers
  • Using dictionaries to generate the report to speed up large installations. Tests shows up to 40% faster!
  • Introducing slight delay when updating filters to make searches in larger installations faster
  • A lot of Powershell code cleaning and optimizing
  • Changing the style of the report to a brighter theme
  • Fixing the bug with the chevrons not expanding/collapsing
  • Fixed a bug with the CSV export function having issues with VS's haivng multiple pools
  • Fixed a bug with the PS script detecting member status endpoints where there are none configured

More to come!

As usual, please let me know if you encounter any bugs!

/Patrik

0
Comment made 4 months ago by Christoph Frischhut 134

Hey Patrik, just updated to the latest version and as always - it's great. Also all of our other departments are excited about your work on this report.

But there would be one question from my side, maybe i just don't see it in the report. But can the report also display the comment field (for example the comment field from the virtual server config) Or is this feature missing?

Because the idea was, when there is any maintenance we need to inform the application owner and therefore i would add the names to the comment field. So that we just need to generate a csv and filter the comments out.

Could this be done, or is it impossible to gather those fields?

Cheers, Christoph

0
Comment made 4 months ago by Patrik Jonsson 3440

Hi Christoph!

Thank you for your kind words. I think this is a bit of an edge case which would not make sense to most people. But let me see if I can do a workaround for you?

Kind regards, Patrik

0
Comment made 4 months ago by Christoph Frischhut 134

Would be great when you have a workaround for this case. Because I know the description field can be gathered via iControl, but unfortunately I'm not really confirmed with the PowerShell part.

Thanks, Christoph

0
Comment made 4 months ago by Patrik Jonsson 3440

Version 4.8.6 now also indexes virtual server descriptions. You won't be able to filter by description in the application (might think of some way in the future), but it's visible in the VS details, and it's included when exporting to CSV.

Also, you can use this method to extract Virtual Servers that has a description:

#Create new webclient object
$WebClient = New-Object System.Net.WebClient
#Enable integrated authentication
$WebClient.UseDefaultCredentials = $true
#Get the json objects

$Virtualservers = ($WebClient.DownloadString("https://linuxworker.j.local/json/virtualservers.json")) | ConvertFrom-Json

$VirtualServers | Where-Object { $_.description -ne "" }

More examples are available here:

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

Hope that helps a bit for now at least.

/Patrik

0
Comment made 4 months ago by Christoph Frischhut 134

Hi Patrik,

the description field is displaying with your new version, many thanks for this great feature. But unfortunately the script is just working when i'm running it with one configured LB. When i add the second node from the HA Cluster to the xml file I'm getting the following error:

Method invocation failed because [iControl.ManagementDeviceGroup] does not contain a method named 'get_failover_status'.
At C:\_tools\_f5-report\intern\bigipreport.ps1:1721 char:3
+         $FailoverStatus = $F5.ManagementDeviceGroup.get_failover_status()
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Did i missed any special configuration part?

Thanks, Christoph

0
Comment made 4 months ago by Patrik Jonsson 3440

Hi Christoph

Np. Which version are the devices running? I need to install that specific version to try to reproduce as I have not seen this error before.

/Patrik

0
Comment made 4 months ago by Christoph Frischhut 134

Both devices are running on 12.1.2 HF2, but i just saw that i also get the error when I just have one IP in the xml config file. But with one IP the report was generated.

0
Comment made 4 months ago by Patrik Jonsson 3440

I'm running 12.1.3 so the difference can't be that big... I wonder, when was the first time you installed and used the report? Considering if your iControl dll's could be old.

Could you please run this command and let me know the outcome?

Get-PSSnapin -Registered | Where-Object { $_.Description.contains("iControl") }

I have this version:

Name        : iControlSnapIn
PSVersion   : 5.1
Description : iControl Snap-in for F5 Device Management

Please try to upgrade/replace the current one? There's a guide over at https://loadbalancing.se/bigip-report/ on how to install the Snap-In (I had some issues myself a few months ago as the procedure had changed).

/Patrik

0