BigFix Platform Health Check -- Enable FillDB Performance Logging (4.0)
Log In or Register to download the BES file, and more.

0 Votes

Description

Description

This task will enable FillDB Performance logging.  Log size and logging duration options are presented in the User Input and Parameters section.
 
Deployment Notes

  • This task can only be run by Master Operators.
  • This will only be relevant on BigFix root servers that do not already have FillDB Performance logging enabled.
  • Creates the Health Check folder structure on the same drive that the BigFix root server is installed on. 
    • Note: The default for this is the root of that drive.  Edit the actionscript parameters if you want something different.
  • Run this as a one time action.
  • The FillDB service must be restarted to enable logging and disable it later - if that option is chosen below.
  • More information about BigFix logging can be found here.
User Input and Parameters

Log Size

FillDB Performance log files can grow quite large over time. For general health check purposes, it is suggested that the FillDB log file size be capped at 1000 MB (1 GB). 

Enter in the maximum log file size below - with the minimum size being 100 MB and the maximum size being 2000 MB (2 GB).


FillDB Performance Log Maximum Size (MB):

To disable the FillDB Performance maximum log file size limit, select the "Disable Maximum Log File Size" checkbox below.

Disable Maximum Log File Size


Log Duration

FillDB Performance logging adds some overhead and should not be enabled without a clear plan to disable it when logging is no longer needed.

This task can generate a sub-task to disable FillDB Performance logging after a specified number of hours. 

Enter in the maxiumum duration for FillDB Performance logging to be run in the field below. 


FillDB Performance Logging Duration (Hours):

To run open ended logging, select the "Do Not Automatically Disable Logging" checkbox below. There is a companion task named "BigFix Platform Health Check -- Disable FillDB Performance Logging" to disable logging at any time.


Credentials

Enter in the credentials for a master operator so this task can generate the action to disable FillDB Performance logging using the BigFix REST API after the duration specified above. These credentials will be protected by using the secure parameters feature.

Specify API Username:

Specify API Password:

Confirm API Password:

Supported Platforms

Windows

Version and Release Notes
 
4.0 - Version sync. Service restart warning. Updated log min/max values to be 100 MB and 2 GB, respectively..
3.0 - Added MO restriction. Dated backup folders. Moved FillDB Performance logs up 1 level and out of the main Logs folder to avoid back up issues/conflicts with other logging tasks. Version sync with other HC content.
2.0.1 - Changed file names.
2.0.0 - Re-branded.
1.0 - Initial version.

Property Details

ID27393
StatusBeta - Preliminary testing ready for more
TitleBigFix Platform Health Check -- Enable FillDB Performance Logging (4.0)
DomainBES
CategoryBigFix Platform Health Check
Download Size0
SourceHCL BigFix AVP and Professional Services
Source IDData Collection - Day 1
Source SeverityRequired
Source Release Date7/28/2025 12:00:00 AM
KeywordsFillDB, FillDB Health, Automation
Is TaskTrue
Added by on 10/29/2025 8:18:06 AM
Last Modified by on 10/29/2025 8:18:06 AM
Counters 237 Views / 2 Downloads
User Rating 1 star 2 star 3 star 4 star 5 star * Average over 0 ratings. ** Log In or Register to add your rating.

Relevance

Used in 222 fixlets   * Results in a true/false
Show indented relevance
(if exists property "in proxy agent context" then ( not in proxy agent context ) else true )
Used in 1 fixlet   * Results in a true/false
Show indented relevance
/* IS A WINDOWS ROOT SERVER */ ((exists main gather service AND windows of operating system) AND /* LOGGING NOT SET */ (not exists value "EnablePerformanceLogging" whose (it as string = "1") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB" of x32 registry))

Actions

Action 1 (default)

Action Link Click here to deploy this action.
Script Type BigFix Action Script
//* ====================================================================================================>
//*
//* DESCRIPTION AND NOTES
//*
//* - This task will enable FillDB Performance logging and, if chosen, spawn a
//* BigFix action to disable FillDB Performance logging after a specified duration (hours).
//*
//* ====================================================================================================>

//* ====================================================================================================>
//*
//* SET SOME PARAMETERS
//*
//* - These parameters can be used to control the location and naming of the various health check files
//* and folders.
//*
//* - Ideally, the only thing that would be changed here would be the driveLetter. Be careful about
//* adjusting anything else.
//*
//* ====================================================================================================>


action parameter query "restart" with description "To enable these changes you need to restart the FillDB Service. Enter 'Y' to confirm you are aware of the serivce restart for both the enablement of logging and the disabling of logging later, if chosen. Click Cancel to exit the task if you wish to do this at another time." with default "N"
parameter "res" = "{parameter "restart" of action as string as lowercase}"

if {(parameter "res") is "y"}

parameter "driveLetter" = "{preceding texts of firsts "\" of (value "EnterpriseServerFolder" of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\BigFix\Enterprise Server" of native registry as string)}"
parameter "checkType" = "Platform"
parameter "rootFolder" = "{parameter "driveLetter" & "\BigFix_Health_Check\" & parameter "checkType"}"
parameter "cliFolder" = "{value "EnterpriseServerFolder" of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\BigFix\Enterprise Server" of native registry as string & "IEM CLI"}"
parameter "apiPort" = "{value "Port" of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\BigFix\Enterprise Server" of x32 registry}"
parameter "resultsFolder" = "{parameter "rootFolder" & "\Results"}"
parameter "backupFolder" = "{parameter "rootFolder" & "\Backup"}"
parameter "resultsBackupFolder" = "{parameter "backupFolder" & "\Results"}"
parameter "xmlFilesFolder" = "{parameter "rootFolder" & "\XML_Files"}"
parameter "logsFolder" = "{parameter "resultsFolder" & "\Logs"}"
parameter "fillDBPerfLogsFolder"="{parameter "logsFolder" & "\FillDB_Performance"}"
parameter "fillDBPerfLogsBackupFolder" = "{parameter "resultsBackupFolder" & "\Logs\FillDB_Performance" & "\" & (((month of it as two digits & "-" & day_of_month of it as two digits & "-" & year of it as string) of date(local time zone) of it & "_" & (two digit hour of it as string & two digit minute of it as string) of time (local time zone) of it) of now)}"
parameter "fillDBPerfLogsName"="{"FillDBperf.log"}"
parameter "fillDBPerfLogsFullName"="{parameter "fillDBPerfLogsFolder" & "\" & parameter "fillDBPerfLogsName"}"

//* ====================================================================================================>
//*
//* BACKUP EXISTING FILES, IF PRESENT. THIS IS MORE FOR TROUBLESHOOTING.
//*
//* ====================================================================================================>

if {if (exists folder (parameter "fillDBPerfLogsFolder")) then (exists files of folder (parameter "fillDBPerfLogsFolder")) else (false)}
folder create "{parameter "fillDBPerfLogsBackupFolder"}"
waithidden cmd.exe /C xcopy "{parameter "fillDBPerfLogsFolder" & "\*.log"}" "{parameter "fillDBPerfLogsBackupFolder" & "\*.log"}" /E /Y
waithidden cmd.exe /C del /F /Q "{parameter "fillDBPerfLogsFolder" & "\*.*"}"
endif

//* ====================================================================================================>
//*
//* DELETE ANY EXISTING FOLDERS, SCRIPTS, ETC. SO WE CAN CREATE FRESH CONTENT
//*
//* ====================================================================================================>

// Nothing to delete here...

//* ====================================================================================================>
//*
//* BUILD OUT THE FOLDER STRUCTURE TO SUPPORT THE GLOBAL TASK
//*
//* ====================================================================================================>

folder create "{parameter "xmlFilesFolder"}"
folder create "{parameter "rootFolder"}"
folder create "{parameter "fillDBPerfLogsFolder"}"

//* ====================================================================================================>
//*
//* ENABLE FILLDB PERFORMANCE LOGGING AND RESTART THE SERVICE
//*
//* ====================================================================================================>

//*
//* Save the existing log file setting value so we can set it back later to the original using the
//* disable debug logging task.
//*

setting "__FillDB_Perf_Logs_Backup_Value"="{if (exists value "PerformanceDataPath" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB" of x32 registry) then (value "PerformanceDataPath" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB" of x32 registry as string) else ("was not set")}" on "{parameter "action issue date" of action}" for client

waithidden cmd.exe /C net stop filldb
regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "PerformanceDataPath"="{escape of (parameter "fillDBPerfLogsFullName")}"
regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "EnablePerformanceLogging"="1"


//*
//* If disable log file size limit was selected then set log size limit
//*

if {parameter "fillDBPerfLogsSizeNoLimit" as integer != -1}
regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "LogFileSizeLimit"=dword:{parameter "fillDBPerfLogsSizeKB"}
endif

//*
//* Sleep 5 secs and start back up
//*

waithidden cmd.exe /C ping 127.0.0.1 -n 10 -w 500> nul
waithidden cmd.exe /C net start filldb

//*
//* If the log rotation and size limit is not selected (or not) then add a note about that to the readme file.
//* false = -1
//*

if {parameter "fillDBPerfLogsSizeNoLimit" as integer = -1}
waithidden cmd.exe /C echo The FillDB Performance log in this folder is *active* but it is not being capped at a maximum size. > "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
waithidden cmd.exe /C echo See the action 'BigFix Platform Health Check -- Enable FillDB Performance Logging' for details. >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
elseif {parameter "fillDBPerfLogsSizeNoLimit" as integer != -1}
waithidden cmd.exe /C echo The FillDB Performance log in this folder is *active* and will be capped at a total file size of {parameter "fillDBPerfLogsSizeMB"} MB. > "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
waithidden cmd.exe /C echo See the action 'BigFix Platform Health Check -- Enable FillDB Performance Logging' for details. >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
endif

//*
//* If the logging duration is not open (or not) ended then add a note about that to the readme file.
//* false = -1
//*

if {parameter "fillDBPerfLogsNoDisable" as integer = -1}
waithidden cmd.exe /C echo Automatic disabling of logging was not chosen when logging was initiated. It is *highly* recommended that you disable FillDB Performance logging once your health check is completed. >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
waithidden cmd.exe /C echo The companion task named 'WARNING: BigFix Platform Health Check - FillDB Performance Logging is Enabled' can be used to disable logging at any time. >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
elseif {parameter "fillDBPerfLogsNoDisable" as integer != -1}
waithidden cmd.exe /C echo Automatic disabling of logging was chosen when logging was initiated. See the auto-generated action titled "BigFix Platform Health Check -- Disable FillDB Performance Logging on {((( month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of date(local time zone) of it) & " at " & ((two digit hour of it as string & ":" & two digit minute of it as string) of time (local time zone) of it )) of (now + (parameter "fillDBPerfLogsDuration" as integer * hour))}" >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"

//*
//* Drop a breadcrumb for the disable action to key off of.
//*

setting "__FillDB_Perf_Logs_Expiration" = "{now + (parameter "fillDBPerfLogsDuration" as integer * hour)}" on "{parameter "action issue date" of action}" for client


//* ====================================================================================================>
//*
//* CREATE AND POST THE "DISABLE FILLDB PERFORMANCE LOGGING" TASK
//*
//* ====================================================================================================>

delete "{parameter "xmlFilesFolder" & "\disable_filldb_performance_logging.xml"}"
delete __createfile

createfile until _END_
="1.0" encoding="utf-8"?>
="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SkipUI="true">

BigFix Platform Health Check -- Disable FillDB Performance Logging (WILL RESTART FILLDB SERVICE) on <span class='actionscriptRelevance'>{((( month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of date(local time zone) of it) & " at " & ((two digit hour of it as string & ":" & two digit minute of it as string) of time (local time zone) of it )) of (now + (parameter "fillDBPerfLogsDuration" as integer * hour))}</span>
/* IS A WINDOWS ROOT SERVER */ (exists main gather service and not exists relay service AND windows of operating system) AND /* FILLDB PERF LOGGING AND ROTATION IS ENABLED */ ( exists value "EnablePerformanceLogging" whose (it as string = "1") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB" of x32 registry) AND (exists setting "__FillDB_Perf_Logs_Expiration" whose (now > value of it as time) of client)

//* ====================================================================================================>
//*
//* DESCRIPTION AND NOTES
//*
//* - This task will disable filldb performance logging and set the log file info back to whatever
//* it was before it was ebabled by the "BigFix Platform Health Check -- Enable FillDB Performance
//* Logging" action.
//*
//* ====================================================================================================>

waithidden cmd.exe /C net stop "filldb"

//*
//* Disable logging and set the log info back to whatever it was before we made the change to
//* centralized HC logging
//*

regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "PerformanceDataPath"="{if (exists setting "__FillDB_Perf_Logs_Backup_Value" of client) then (value of setting "__FillDB_Perf_Logs_Backup_Value" of client) else ("needs to be set")}"
regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "EnablePerformanceLogging"="0"
regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Enterprise Server\FillDB]" "LogFileSizeLimit"

//*
//* Sleep 5 secs - without this sometimes the service does not come back up
//*

waithidden cmd.exe /C ping 127.0.0.1 -n 10 -w 500> nul
waithidden cmd.exe /C net start filldb

//*
//* Delete the expiration breadcrumb
//*

setting delete "__FillDB_Performance_Logs_Backup_Value" on "{parameter "action issue date"}" for client

//*
//* Write out / update a readme file.
//*

waithidden cmd.exe /C echo The FillDB Performance log in this folder is no longer active and is ready for analysis. > "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"
waithidden cmd.exe /C echo Logging was automatically disabled by the auto-generated action titled "BigFix Platform Health Check -- Disable FillDB Performance Logging on {((( month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of date(local time zone) of it) & " at " & ((two digit hour of it as string & ":" & two digit minute of it as string) of time (local time zone) of it )) of (now + (parameter "fillDBPerfLogsDuration" as integer * hour))}". >> "{parameter "fillDBPerfLogsFolder" & "\HEALTHCHECK_FILLDB_PERF_README.txt"}"

        ="RunToCompletion">
        
            false
            false
            false
            false
            true
            P2D
            false
            false
            NoRequirement
            AllUsers
            false
            false
            true
            true
            1
            false
            false
            false
            true
            ="Nothing">
            false
        
        
            false
            false
            
                false
                false
                false
                false
                false
                false
            
            false
            
                false
            
            false
            false
            false
            false
            false
            false
            false
            false
            false
            false
            false
            false
            false
            false
            
                false
                false
                false
                false
                false
            
            false
            false
            false
            false
        
        false
    

_END_

move __createfile "{parameter "xmlFilesFolder" & "\disable_filldb_performance_logging.xml"}"

//*
//* Login to the API and post the XML file to generate the action.
//*

waithidden cmd.exe /C ""{parameter "cliFolder" & "\iem"}" login -q --server=https://{host name of root server}:{parameter "apiPort"} --user={parameter "apiUsername"} --password={parameter "apiPassword"} --masthead="{preceding text of last "\" of pathname of data folder of client & "\actionsite.afxm"}""
waithidden cmd.exe /C "{parameter "cliFolder" & "\iem"}" POST {parameter "xmlFilesFolder" & "\disable_filldb_performance_logging.xml"} https://localhost:{parameter "apiPort"}/api/actions
endif

elseif {(parameter "res") is "n"}
    exit -1
endif
Success Criteria

This action will be considered successful when the applicability relevance evaluates to false.


Sharing

Social Media:
Share this page on Yammer

Comments

Log In or Register to leave comments!
dmccalla -
You need to download the BES file to see all of the javascript and actionscript. The website is not rendering things correctly but this does still work once downloaded.