Report Available: Fixlet Compliance by Computer Group

(imported topic written by Lee Wei)

Overview:

  • Given a set of Fixlets and a group of Computers, the report will calculate the total compliance, as well as the compliance for individual computers.
  • There is a sister report that provides the compliance of each Fixlet, rather than by each Computer.

Installation:

  • Download the zip file ext-3.2.0-computercompliance16-asset12-fixletcompliance11.zip
  • Unzip to the BigFix Web Reports root directory, for example “C:\Program Files\BigFix Enterprise\BES Server\BESReportsServer\wwwroot”.

You should have a \wwwroot\ext-3.2.0 directory.

  • If the \ext-3.2.0 directory already exists, the easiest is to rename it first.
  • Create the report by going to the Reports link/tab in Web Reports.

Scroll to the bottom to find button “Import Report”

Browse to the
Fixlet Compliance by Computer Group v1.6.beswrpt
report file in the \ext-3.2.0 directory

It is in an XML format

Requirements:

  • The report works in both Web Reports version 7.2 and 8.0.
  • The charts require Flash Player 9.0 or above.
  • The export to Excel function requires Firefox.
  • This report does extensive JavaScript processing. IE7 is particularly slow in this regard. Please consider upgrading to IE8 or better still Firefox.
  • Safari is not supported because it does not allow the modification of script timeout period. For long running reports (say >5000 computers), Safari will timeout.

Bug Fixes/Enhancements:

  • 2010-08-05 v1.6 Added line 47 in fixlet_compliance.js that allows different treatment for computers with 0 applicable Fixlets
  • 2010-08-05 v1.6 Added Mark Macherey filter modifications http://forum.bigfix.com/viewtopic.php?id=5393
  • 2010-05-15 v1.5 Added the ability to multi-select both the Fixlet Content and the Computer Group
  • 2010-05-05 v1.4 Fixed the problem where custom sites show an empty compliance report
  • 2009-12-14 v1.3 This is the originally posted version. (Find the version number where the filters drop list at the top)

Notes:

  • This report is related to and uses the following reports. So as a bonus, import and try the other reports as well.

Asset Management Dashboard v1.2.beswrpt

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014743859&ps=25

Fixlet Compliance by Content v1.1.beswrpt

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014744033&ps=25

Lee Wei

(imported comment written by Lee Wei)

Additional Information:

Content Droplist Filter

  • The Content droplist will retrieve all baseslines and sites available to the login Web Report user.
  • There are a few pre-defined selections:

All Microsoft Critical Fixlets

  • All Patches for Windows (English) critical Fixlets, excluding corrupted or superseded patches.

Microsoft Patches (Current Period)

  • Automatically calculates the Fixlets published from the Patch Tuesday to the Monday before the next period. Excludes all corrupted or superseded patches.

Microsoft Patches (Previous Periods)

  • Same as above but for 2 previous periods.

  • Custom Relevance Expression - Provides a free form entry to specify a Session Relevance that returns a list of Fixlet objects.

For example,
bes fixlets whose (name of it as lowercase starts with “ms09-065”)

This will return all Fixlets with names starting with MS09-065.

Computer Group Droplist Filter

  • The Computer Group droplist will retrieve all computer groups available to the login Web Report user.
  • There are 2 few pre-defined selections:

All Computer

  • Straight forward retrieval of all computers. It is not a good idea to use this if there are too many computers. Always try with a smaller subset.

All Windows Computers

  • All computers with that has “win” in the operating system name.

  • Custom Relevance Expression - Provides a free form entry to specify a Session Relevance that returns a list of Computer objects.

For example,
bes computers whose (now - last report time of it < 7*day)

This will return all computers who have reported within the last week.

Compliance Grid

The Compliance grid displays individual computer compliance status against all the Fixlets selected.

  • Meanings for the various columns:

Applicable Fixlets

  • All the Fixlets that became relevant on the computer at some point. Let’s assume that a completely patched computer is added to the BigFix system, note that Applicable Fixlet will be zero because no Fixlets would have been evaluated as relevant. So the applicable count shows only results after the installation of the BigFix agent. Installed + Outstanding = Applicable.

Installed Fixlets

  • Any Fixlets first detected as relevant, which are now remediated.

Outstanding Fixlets

  • Fixlets that are still relevant.

Compliance

  • This percentage output is calculated with formula (Installed / Applicable) * 100.

  • The Export to Excel function uses a newer browser feature call Data URL. Unfortunately, the support across browsers is not consistent, and as this is written, it only works with FireFox or Safari.

  • Although the grid does paging, this is only a Client Side feature rather than true paging from the Server.

Outstanding Fixlet Grid

The Outstanding Fixlet grid displays all the Fixlets still relevant for the computer group selected.

  • Note that the grid currently limits the displayed data to 1000 items to prevent slow performance.
  • The items are grouped by Computer Name by default. However, it is possible to group them by the other columns, such as by Source Severity. Try this out by locating the Column Filter droplist on the column headings.

Lee Wei

(imported comment written by AakashK)

Hi Lee,

I have a set of custom properties which I want to add in teh report.

I am getting the error as seen in the attachment error.jpg

These two custom properties are added in Manage property list on console & fetching output.

Can you please help me were can I make changes so that I get the correct output in the attached report.jpg format

I tested this in presentation debugger its fetching output to me

((values of results (it, bes property “restart status”)) of bes computers)

((values of results (it, bes property “group name”)) of bes computers)

(imported comment written by Lee Wei)

AkkashK,

There are actually multiple places in the script that need to be modified.

You have edited the Session Relevance statement to retrieve the additional attributes, and there are at least 2 places that need to be changed. One is the JSON object that hold the return value, and the other is the Grid that displays the results.

Lee Wei

(imported comment written by AakashK)

Thanks for your prompt reply Lee.

Can you please guide where JSON object & Grid file are located & where on those files can I make changes and what changes can be made.

Aakash

(imported comment written by Lee Wei)

Everything is contained within that one JavaScript file.

You can search using the names of the other attributes like “Operating System” and “IP Address”.

Lee Wei

(imported comment written by SystemAdmin)

Lee, This rocks. Thanks so much. It should be stickied at the top of the forum! One quick question, is there a way to print out the entire report as a single page or export is as a PDF?

Update: I just noticed that data for Windows 2008 R2 shows all 0’s for Applicable, Installed and Outstanding. Strange.

Update to my update: I don’t know how to read. After Lee spent his time with me, we figured out I was just reading the report wrong.

As for my question on printing, we were looking for a way to print out the report as a whole, not an actual single page but as one report. Talking with Lee, it is not possibly to print as one continuous report at this time.

(imported comment written by Lee Wei)

Hi John,

  • The report cannot be printed as one continuous page.
  • Export as PDF needs to be done as printing to the PDF driver.
  • The report itself should have no bearing on Windows 2008 R2. It does not distinguish the OS in any way. I would love to help you figure out the problem. I will give you a ping via private message.

Lee Wei

(imported comment written by SystemAdmin)

Hi Lee, this looks excellant - but (there’s always a but when a sentence starts like this one :wink: ) when I try and open the report all I see is:-

Important Information

Loading…

How long would you expect it to take to load in the information (we have 21,000 fixlets, 3800 tasks, 100 actions, 2000 computers and a handfull of baselines) ?

Could it be something to do with the fact that we don’t use the default BigFix ports?

I should add that other reports are working OK.

Thanks,

Mark

(imported comment written by Lee Wei)

Hi Mark,

Looks like you don’t have the JavaScript libraries unzipped correctly.

The ext_js_lib.zip goes into the folder “C:\Program Files\BigFix Enterprise\BES Server\BESReportsServer\wwwroot”.

(Or wherever the Web Reports is installed)

You should then have a folder \ext underneath that as in:

“C:\Program Files\BigFix Enterprise\BES Server\BESReportsServer\wwwroot\ext”

You can test this by seeing if you can find a file in that folder via Web Reports:

http://:/ext/resources/css/ext-all.css

If you see text and css content, you have it installed correctly.

The initial load should take 3-5 seconds.

Lee Wei

(imported comment written by raveldc91)

This is a great report. I do occasionally get the error though:

Error: NETWORK_ERR: XMLHttpRequest Exception 101

unique values of (id of item 0 of it as string & “||” & name of item 0 of it & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of (applicable computers whose (exists name of it) of it, ("" & name of it & “”), (if (exists source severity of it) then ( if (source severity of it as lowercase contains “” or source severity of it as lowercase contains “”) then (“Unspecified”) else (source severity of it) ) else (“Unspecified”)), (if (exists source release date of it ) then ((year of it as string & “-” & month of it as two digits as string & “-” & day_of_month of it as two digits as string) of source release date of it as string) else “1000-01-01”), (if (exists category of it) then (if (category of it as lowercase contains “”) then (category of it as string) else (“Unspecified”) ) else (“Unknown”)), (if (exists download size of it) then ((download size of it) as string) else (“0”)),display name of site of it, applicable computer count of it as string) of (bes fixlets whose (fixlet flag of it = true and display name of site of it = “Patches for Windows (English)” and name of it as lowercase does not contain “corrupt patch” and name of it as lowercase does not contain “superseded” and source release date of it >= date “13 Oct 2009” and source release date of it <= date “09 Nov 2009”))

What causes this? Is there a fix?

I should also note that the “” & name of it & “” appears as a hyperlink. When clicked it leads to a HTTP/1.1 404 Not Found, with the URL:

https://

webreports

/ReportFiles/106/%22%22

(imported comment written by Lee Wei)

Hi Raveldc,

The hyperlink that you saw has no bearing on the error.

This is the Session Relevance statement used by the report to retrieve Fixlet information.

The statement is correct, so any intermittent problem might suggest some external issues, potentially because there is a lot of data being returned.

  • What browser are you using?
  • Are you noticing other network issues?
  • How many computers do you have?

Here is a simple Web Report that we can use to test the statement and to see if we can duplicate the error.

Create the following as a new report, then paste the Session Relevance statement above into the text area and run the query.

If you put the statement “number of unique values…” in front of the query, it is also useful to find out how many rows are being returned.

Lee Wei

<table><tr> <td><textarea id=
"query" rows=
"4" cols=
"60"></textarea></td> <td><input type=
'button' onclick=
'run()' value=
'Run'/></td> </tr></table><hr/><div id=
"resultsDiv"></div>   <script type=
"text/javascript"> function run()
{ var relevance = query.value; strResponse = EvaluateRelevance(relevance); document.getElementById(
'resultsDiv').innerHTML = strResponse;
} </script>

(imported comment written by nagaraj.s)

Hi Lee,

I am using IBM Endpoint Manager 9.1v in my enviornment, i have using patch management module also.

so i have deployed the patches in my networks through baseline, i need the report format for all the patches in complain process

i need the web-reports following kinds of thinks

computer name, IP address, last report time, Applied patches in every clients, the deployed patches status, and the fixlet KB number.

Also i have attached the file (required reports formats) please find the same, and please give any ideas.

Thanks & Regards,

Nagarajan.

(imported comment written by koldenbu91)

I do not access to the server to dump the files you suggested into the Server. I have copied the Zip file contents into my local drive c:\Program Files\BigFix Enterprise\Client and then try to run it from the Web Client and it only reports the following.

Important Information

Loading…

Can you let me know if this report can be run from the client side without dumping the Zip file that you suggested to download onto the server?

(imported comment written by Lee Wei)

Hi koldenbu,

The framework is necessary on the server side for processing.

It cannot be installed on the client side.

Sorry about that,

Lee Wei

(imported comment written by SystemAdmin)

Hi Lee,

As requested in your email…

I checked the directory structure as you suggested and yes - the files had unpacked to “C:\Program Files\BigFix Enterprise\BES Server\BESReportsServer\ext”

So I moved the ‘ext’ directory to “C:\Program Files\BigFix Enterprise\BES Server\BESReportsServer\wwwroot\ext” and everything started working just fine.

As I also said in my email to you - this is wonderful addition to the Web Reports, I can now let my managers know that they can generate their own compliancy charts without me having to give them Console access to the SCM Dashboards.

Thanks again. :smiley: :smiley: :smiley:

Mark

(imported comment written by raveldc91)

o.k., thanks for the test. I tried it and it does not return anything, here is the session relevance:

unique values of (id of item 0 of it as string & “||” & name of item 0 of it & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of (applicable computers whose (exists name of it) of it, ("" & name of it & “”), (if (exists source severity of it) then ( if (source severity of it as lowercase contains “” or source severity of it as lowercase contains “”) then (“Unspecified”) else (source severity of it) ) else (“Unspecified”)), (if (exists source release date of it ) then ((year of it as string & “-” & month of it as two digits as string & “-” & day_of_month of it as two digits as string) of source release date of it as string) else “1000-01-01”), (if (exists category of it) then (if (category of it as lowercase contains “”) then (category of it as string) else (“Unspecified”) ) else (“Unknown”)), (if (exists download size of it) then ((download size of it) as string) else (“0”)),display name of site of it, applicable computer count of it as string) of (bes fixlets whose (fixlet flag of it = true and display name of site of it = “Patches for Windows (English)” and name of it as lowercase does not contain “corrupt patch” and name of it as lowercase does not contain “superseded” and source release date of it >= date “08 Dec 2009” and source release date of it <= date “11 Jan 2010”))

I also tried using the same relevance with number of … prepended. Again, no data.

Browser: Safari

Network issues: None that we are aware of

Number of computers: ~9,000

(imported comment written by Lee Wei)

raveldc and I worked on the above issue and determined that Safari is timing out processing the script.

This works correctly with FireFox.

We have not been able to find a way to change the timeout for Safari, as we are able to for FireFox and IE.

We are going to make a note that Safari is not supported.

Lee Wei

(imported comment written by SystemAdmin)

Lee,

Any chance we could have a “By Date” and / or “By Time Period” option added to the report. This way we could run the report for different time periods (we could run them at any point in time) and see some rudimentary trending reports?

Also, we would LOVE a way to schedule and email this report.

John

(imported comment written by Lee Wei)

John,

There are 2 possible time period filters.

One for the release dates for the Fixlets, and the other the remediation date.

I assume you would be interested in the remediation date.

For a certain time period, show me what computers are fixed.

This report is not suitable for scheduling, rather ad-hoc querying. To schedule a report, I would have had to figure out a way to pre-define the filters.

Otherwise, the report is invoked but empty.

I am not actively working on this right now.

Thanks for providing the feedback.

Lee Wei