BigFix Deployment Health Checks report

Hi All,

Is there a way to create a web report for the BigFix Deployment Health Checks?Thanks

Hello!

This is doable, yes, but requires creating a custom report.

For your reference, see Creating a Custom Report

If you look in your console’s cache folder, within C:\Users\Administrator\AppData\Local\BigFix\Enterprise Console\SERVER\USER\Sites\BES Support you will see a DeploymentHealth.js file.

This file contains most of the session relevance which drives the Health Checks dashboard in the getIntoHelper() function. On each line, to the right of the = sign and in between the single quotes.

You may want to start with these relevance statements as you attempt to build your custom report:

info['now'] = 'now';
['numAgents'] = 'number of bes computers';
['numRelays'] = 'number of computers of results whose (exists value of it and value of it as lowercase contains "yes") of bes properties "BES Relay Service Installed" whose (reserved flag of it)';
['numConsoles'] = 'number of results whose (exists value of it and value of it as string contains ".") of bes property whose (name of it = "BES Console Version" and name of site of source analysis of it = "BES Support")';
['numAgentsToday'] = 'number of computers of results whose (exists value of it and ((now - (value of it as time)) < 1 * day)) of bes properties "Last Report Time" whose (reserved flag of it)';
['licenseSiteNumber'] = 'site number of bes license';
['licenseRegistarNumber'] = 'registrar number of bes license';
['licenseStartDate'] = 'start date of bes license';
['licenseExpirationDate'] = 'expiration date of bes license';
['licenseExpirationState'] = 'expiration state of bes license';
['licenseOrganization'] = 'organization of bes license';
['licenseEmailAddress'] = 'email address of bes license';
['licenseCommonName'] = 'common name of bes license';
['licenseGatherURL'] = 'gather url of bes license';
['licenseEvaluation'] = 'evaluation of bes license';
['licenseMaxCount'] = 'maximum seat count of bes license';
['licenseSeatCountState'] = 'seat count state of bes license';
['numOp'] = 'number of bes users';
['numMO'] = 'number of bes users whose (master flag of it = true)';
['numNMO'] = 'number of bes users whose (master flag of it = false)';
['BESUsage'] = '((now - (minimum of (creation times of bes users))) / day ) as string';
['avgNumManaged'] = 'if (exists bes users whose (not master flag of it) ) then ( mean of (if (exists administered computers of it) then (number of administered computers of it) else 0) of bes users whose (not master flag of it) as integer) else 0';
['minNumManaged'] = 'minimum of (number of administered computers of it) of bes users';
['maxNumManaged'] = 'maximum of (number of administered computers of it) of bes users ';
['numCustomContentFlag'] = 'number of bes users whose (custom content flag of it = true)';
['avgLastLoginDays'] = 'mean of ((now - last login time of it) /day) of bes users whose (exists last login time of it) as integer';
['numNeverLoggedIn'] = 'number of bes users whose (not exists last login time of it) ';
['numNotLoggedInFor3Months'] = 'number of bes users whose (exists last login time of it AND (now - last login time of it > 13 * week))';
['numLoggedInForLast4Weeks'] = 'number of bes users whose (exists last login time of it AND (now - last login time of it < 4 * week))';
['numTopLevelActions'] = 'number of top level bes actions';
['numActions'] = 'number of bes actions';
['openNumTopLevelActions'] = 'number of top level bes actions whose (state of it as string as lowercase = "open")';
['openNumActions'] = 'number of bes actions whose (state of it as string as lowercase = "open")';
['totalFixlets'] = '((number of bes fixlets whose (fixlet flag of it = true AND applicable computer count of it > 0 AND globally visible flag of it = true ) as string) & " / " & (number of bes fixlets whose (fixlet flag of it = true AND globally visible flag of it = true) as string))';
['totalTasks'] = '((number of bes fixlets whose (task flag of it = true AND applicable computer count of it > 0 AND globally visible flag of it = true ) as string) & " / " & (number of bes fixlets whose (task flag of it = true AND globally visible flag of it = true ) as string))';
['totalAnalyses'] = '((number of bes fixlets whose (analysis flag of it = true AND (exists best activation whose (active flag of it = true) of it) AND globally visible flag of it = true ) as string) & " / " & (number of bes fixlets whose (analysis flag of it = true AND globally visible flag of it = true ) as string))';
['totalHiddenFixlets'] = '((number of bes fixlets whose (fixlet flag of it = true AND applicable computer count of it > 0 AND globally visible flag of it = false) as string) & " / " & (number of bes fixlets whose (fixlet flag of it = true AND globally visible flag of it = false) as string))';
['totalHiddenTasks'] = '((number of bes fixlets whose (task flag of it = true AND applicable computer count of it > 0 AND globally visible flag of it = false) as string) & " / " & (number of bes fixlets whose (task flag of it = true AND globally visible flag of it = false) as string))';
['totalHiddenAnalyses'] = '((number of bes fixlets whose (analysis flag of it = true AND (exists best activation whose (active flag of it = true) of it) AND globally visible flag of it = false) as string) & " / " & (number of bes fixlets whose (analysis flag of it = true AND globally visible flag of it = false) as string))';
['subscribedSites'] = 'concatenation ", " of unique values of names of bes sites whose (custom site flag of it = false)';
['actionsPerSite'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of names of sites of source fixlets of bes actions whose (exists source fixlet of it)';
['numCustomSites'] = 'number of bes custom sites';
['numBaselines'] = 'number of bes fixlets whose (baseline flag of it)';
['avgNumComponentPerBaseline'] = 'if (exists bes fixlets whose (baseline flag of it)) then (mean of (number of components of component groups of it) of bes fixlets whose (baseline flag of it) as integer) else 0';
['maxNumComponentPerBaseline'] = 'if (exists bes fixlets whose (baseline flag of it)) then (maximum of (number of components of component groups of it) of bes fixlets whose (baseline flag of it)) else 0 ';
['numProperties'] = 'number of bes properties';
['numActiveProperties'] = 'number of properties of bes fixlets whose (analysis flag of it AND exists activation of it AND exists active flags of activations of it)';
['numCustomProperties'] = 'number of bes properties whose (custom flag of it)';
['numActiveAnalyses'] = 'number of bes fixlets whose (analysis flag of it AND exists activation of it AND exists active flags of activations of it)';
['numRelaysToday'] = 'number of computers of results from (bes properties "Last Report Time" whose (reserved flag of it)) whose (exists value of it and (now - value of it as time) < 1 * day) of (computers of results whose (exists value of it AND value of it as lowercase contains "yes") of bes properties "BES Relay Service Installed" whose (reserved flag of it))';
['numAutomatic'] = 'number of results whose (exists value of it AND value of it = "Automatic") of bes properties "BES Relay Selection Method" whose (reserved flag of it)';
['numManual'] = 'number of results whose (exists value of it AND value of it = "Manual") of bes properties "BES Relay Selection Method" whose (reserved flag of it)';
['avgNumClientPerRelay'] = '(if (exists it as integer) then it as integer else 0) of mean of multiplicities of unique values of values of results whose (exists value of it and value of it != "BES Root Server") of bes properties "Relay" whose (reserved flag of it)';
['maxNumClientPerRelay'] = 'if (exists results whose (exists value of it and value of it != "BES Root Server") of bes properties "Relay" whose (reserved flag of it)) then (maximum of multiplicities of unique values of values of results whose (exists value of it and value of it != "BES Root Server") of bes properties "Relay" whose (reserved flag of it)) else 0';
['minNumClientPerRelay'] = 'if (exists results whose (exists value of it and value of it != "BES Root Server") of bes properties "Relay" whose (reserved flag of it)) then (minimum of multiplicities of unique values of values of results whose (exists value of it and value of it != "BES Root Server") of bes properties "Relay" whose (reserved flag of it)) else 0';
['distanceBreakdown'] = 'concatenation ", " of (it & "--" & (multiplicity of it as string)) of (unique values of ((values of results whose (exists value of it) of bes properties "Distance to BES Relay" whose (reserved flag of it));("255--" & (number of results whose (error flag of it) of bes properties "Distance to BES Relay" whose (reserved flag of it)) as string)))';
['avgDistance'] = 'mean of (it as integer) of (values whose (exists it as integer) of results whose (exists value of it) of bes properties "Distance to BES Relay" whose (reserved flag of it)) as integer';
['numUnknownDistance'] = '(number of results whose (error flag of it) of bes properties "Distance to BES Relay" whose (reserved flag of it)) ';
['maxDistance'] = 'maximum of (it as integer) of (values whose (exists it as integer) of results whose (exists value of it) of bes properties "Distance to BES Relay" whose (reserved flag of it))';
['numClientsUsingServer'] = 'number of values whose (gather url of bes license as lowercase contains it as lowercase) of results whose (exists value of it) of bes properties "Relay" whose (reserved flag of it)';
['osBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values of results whose (exists value of it) of bes properties "OS" whose (reserved flag of it)';
['osTypeBreakdown'] = 'concatenation ", " of (it as string) of (if (exists bes properties "OS Type - Windows") then (it & "--" & (multiplicity of it as string)) of unique values of values of results whose (not error flag of it and exists value of it) of bes properties "OS Type - Windows" else nothings)';
['numSubnets'] = 'if (exists bes properties "subnet address") then (number of unique values of values of results whose (not error flag of it and exists value of it) of bes properties "subnet address") else 0';
['numNonTrivialSubnets'] = 'if (exists bes properties "subnet address") then (number of unique values whose (multiplicity of it > 2) of values of results whose (not error flag of it and exists value of it) of bes properties "subnet address") else 0';
['avgNumComputersPerSubnet'] = 'if (exists bes properties "subnet address") then (mean of multiplicities of unique values of values of results whose (not error flag of it and exists value of it) of bes properties "subnet address" as integer) else 0';
['maxNumComputersPerSubnet'] = 'if (exists bes properties "subnet address") then (maximum of multiplicities of unique values of values of results whose (not error flag of it and exists value of it) of bes properties "subnet address" as integer) else 0';
['numUnlocked'] = 'number of values whose (it = "No") of results whose (not error flag of it and exists value of it) of bes properties "Locked" whose (reserved flag of it)';
['languageBreakdown'] = 'concatenation ", " of (it as string) of (if (exists bes properties "OS Language - Windows") then (it & "--" & (multiplicity of it as string)) of unique values of values of results whose (not error flag of it and exists value of it) of bes properties "OS Language - Windows" else nothings)';
['numUnmanagedAssets'] = 'number of bes unmanagedassets';
['numScanpoints'] = 'number of unique values of values of fields whose (name of it = "Scan Point") of bes unmanagedassets';
['numUnmanagedAssetSources'] = 'number of unique values of sources of bes unmanagedassets';
['numBigFixServers'] = 'number of values whose (it = "BES Root Server" or it = "Main BES Server") of results whose (exists value of it) of bes properties "Relay" whose (reserved flag of it)';
['bigFixServerCPU'] = 'concatenation ", " of values of results from (bes properties "CPU") whose (exists value of it) of computers of results whose (exists value of it and value of it = "BES Root Server" or value of it = "Main BES Server") of bes properties "Relay" whose (reserved flag of it)';
['bigFixServerRAM'] = 'concatenation ", " of values of results from (bes properties "RAM") whose (exists value of it) of computers of results whose (exists value of it and value of it = "BES Root Server" or value of it = "Main BES Server") of bes properties "Relay" whose (reserved flag of it)';
['bigFixServerOS'] = 'concatenation ", " of values of results from (bes properties "OS") whose (exists value of it) of computers of results whose (exists value of it and value of it = "BES Root Server" or value of it = "Main BES Server") of bes properties "Relay" whose (reserved flag of it)';
['bigFixServerDetails'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of (it as trimmed string) of values of (results (properties of bes fixlets whose (analysis flag of it = TRUE AND name of it as lowercase contains "hardware information"), it) whose (exists value of it)) of bes computers whose (exists value of result (bes properties "Relay" whose (reserved flag of it),it) and (value of result (bes properties "Relay" whose (reserved flag of it),it) = "BES Root Server" or value of result (bes properties "Relay" whose (reserved flag of it),it) = "Main BES Server"))';
['clientVersionBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values of results whose (not error flag of it and exists value of it) of bes property whose (name of it = "BES Client Version" and name of site of source analysis of it = "BES Support")';
['consoleVersionBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values whose (it contains ".") of results whose (not error flag of it and exists value of it) of bes property whose (name of it = "BES Console Version" and name of site of source analysis of it = "BES Support")';
['apiVersionBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values whose (it contains ".") of results whose (not error flag of it and exists value of it) of bes property whose (name of it = "BES API Version" and name of site of source analysis of it = "BES Support")';
['serverVersionBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values whose (it contains ".") of results whose (not error flag of it and exists value of it) of bes property whose (name of it = "BES Server Version" and name of site of source analysis of it = "BES Support")';
['relayVersionBreakdown'] = 'concatenation ", " of (it as string) of (it & "--" & (multiplicity of it as string)) of unique values of values whose (it contains ".") of results whose (not error flag of it and exists value of it) of bes property whose (name of it = "BES Relay Version" and name of site of source analysis of it = "BES Support")';
['efficientMIME'] = 'not (exists bes deployment option "usePre70ClientCompatibleMIME" AND value of bes deployment option "usePre70ClientCompatibleMIME" as boolean)';
['deploymentOptions'] = 'concatenation ", " of (it as string) of (name of it & "--" & value of it) of bes deployment options';
2 Likes

hi Ninja,

thanks for this, anyway can you tell me exactly on how to encode this on a web report even a singe lines? because I tried to put this on a custom report but I got an error.