General Monitoring Configuration

Adjust Global Defaults

The vovlmd daemon allows for the configuration of general aspects of the monitoring process via the licmon.swd/vovlmd/config.tcl file. In most cases, the default settings are suitable for a normal operating environment. The configurable settings, along with their default values, are described below:
################################
### MONITORING CONFIGURATION ###
################################

### Period at which vovlmd will detect and apply configuration changes
# set VOVLM(refresh)              30s

### Number of seconds as the threshold of elapsed time without an update at which point a license server is to be considered down (default 10 minutes)
# set VOVLM(downthreshold)  10m
### check frequency for the daemons (default 5 minutes)
# set VOVLM(checkfrequency) 5m

### Job periods
# Jobs cannot run more frequently than the minimum, less frequently than the
# maximum, and will be stopped if they exceed the autokill time.
# Alerts are generated for jobs that run less frequently than the maximum
# Additionally, jobs that run longer than the maximum are killed and rescheduled

### Rate to run jobs that collect usage information
# set VOVLM(period,stat,min)      30s
# set VOVLM(period,stat,max)      10m
# set VOVLM(period,stat,autokill) 5m

### Rate to run jobs that collect expiration date information (FLEXlm and LUM)
# set VOVLM(period,info,min)      12h
# set VOVLM(period,info,max)      24h
# set VOVLM(period,info,autokill) 30m

### Rate to run remote LicenseMonitor sampling jobs
# set VOVLM(period,remote,min)      5m
# set VOVLM(period,remote,max)      30m
# set VOVLM(period,remote,autokill) 15m

### Rate to run FLEXlm debug log parsing jobs
# set VOVLM(period,debug,min)      12h
# set VOVLM(period,debug,max)      24h
# set VOVLM(period,debug,autokill) 2h

### Rate to run LUM denial sampling jobs
# set VOVLM(period,lumdenial,min)      5m
# set VOVLM(period,lumdenial,max)      30m
# set VOVLM(period,lumdenial,autokill) 15m

### Enable (1) or disable (0) splitting of multiple daemons found in the same tag
# set VOVLM(split,default)        1 

### Process monitoring options
# Number of seconds to wait for processes to be removed if monitor agent is killed
# set VOVLM(processmonitor,timeout) 120

The above configuration establishes global defaults for all monitors. Per-tag settings can also be established in the configuration or via the web UI. See the next section for details.

Adjust Parser Settings

In addition to the global default settings shown above, parser-specific options can also be specified via the licmon.swd/config/parser.cfg file. The configurable settings, along with their default values, are described below:
# Parser configuration file.
# Should be placed in licmon.swd/config.

##############
### GLOBAL ###
##############

### Include or exclude features and subfeatures (checkouts and denials). With includes, all
### features except those specified are ignored. With excludes, all specified
### features are ignored. Default is to allow all features.
# set PARSER(include,tag1) { feature1 feature2 featureN }
# set PARSER(exclude,tag2) { feature3 feature4 featureN }
# set PARSER(exclude,tag3) { feature5:subfeature1 feature4:subfeature2 featureN }

##############
### ALERTS ###
##############

### Set number of consecutive alert condition occurrences required to throw an
### alert. Supported alert types are:
###   allDaemonsDownAlert cannotConnectAlert clockInFutureAlert daemonDownAlert
###   droppedFeatureAlert failedToRunAlert failedToStartAlert
###   featureExpiredAlert logNotFoundAlert masterHostChangedAlert
###   noFeaturesFoundAlert scanExpirationAlert serverQuorumErrorAlert
###   serverQuorumWarningAlert tooManyMastersAlert cannotGetUsersAlert
### Default for all alerts is 3.
# set PARSER(droppedFeatureAlert) 3

#######################
### FEATURE PARSING ###
#######################

### Track licenses that are host or user locked. This setting causes a separate
### feature to be created that represents the locked feature (FEATURE:LOCK). As
### a result, capacity and expiration information must be obtained from the
### license file instead of the status command output. See docs for details.
# set PARSER(TAG,FEATURE,trackLockedLicenses) 1

####################
### USER PARSING ###
####################

### Override user as user@host.
# set PARSER(userAtHost) 1

####################
### HOST PARSING ###
####################

### Host name replacement based on case-sensivite regular expression pattern.
# set PARSER(hostReplace) {{PATTERN} {REPLACEMENT}}

###############
### DENIALS ###
###############

### Throw alert if a debug log that is configured to be parsed does not exist.
# set PARSER(missingLogAlert) 1

### Define features that are to be considered equivalent to each other with
### respect to licensing. If "feature1" is denied, but a checkout of "feature2"
### immediately follows the denial, ignore the denial.
# defineAlternativeFeatures "feature1" "feature2"

### Define false denial time window. Denials for the same feature/user/host
### combination that occur within this window will be merged into one denial.
### This setting is defined in seconds. Set to 0 to only consider same-second
### denials as false. Default is 10.
# set PARSER(falseDenialWindow) 10

Locked Licenses

Monitor has the ability to separately track host and user-locked FlexNet Publisher licenses. If configured, locked license features will be detected in the lmstat output and processed separately from their floating counterparts. For example, the following lines in the lmstat output:
"MATLAB" v28, vendor: MLM
nodelocked license, locked to "ID=123456"

will result in a feature named MATLAB:ID=123456 being created. A prerequisite for this capability is that the capacity and expiration information be provided by the license file directly being that lmstat does not provide this information separately between floating and locked licenses.

To enable locked license tracking and indicate that the capacity and expiration information is to be obtained from the license file as opposed to the lmstat output, the parser configuration (see above) must be modified. If this is not done, only the floating license feature will be displayed and all locked license capacity and usage will be merged into that feature. To enable locked license tracking for the Matlab example above, the setting would be:
set PARSER(MATWORKS,MATLAB,trackLockedLicenses) 1

Once the setting is in place, a utility can be used to read the license file and parse the information contained therein.


ftlm_parse_flexlmlic: Usage Message
  
  SYNOPSIS:
      ftlm_parse_flexlmlic [OPTIONS] TAG FILETYPE FILE
      
  OPTIONS:
      -h                  -- Print help message.
      -v                  -- Increase verbosity.
  
  NOTE:
      On Windows, use / for the path delimiter and // before each space if there
      are spaces in the command path.
      
  EXAMPLES:
      % ftlm_parse_flexlmlic SNPS license.dat
  

Each time the license file is changed, the Monitor administrator will need to run the utility to ensure that the information stored for capacity and expirations are in line with what is found in the license file.

Case Sensitivity

Monitor is designed to be case-sensitive in all areas. This means that a person whose user name is displayed as "Bob" in the license server status command output (or debug log) will be tracked independently from a person whose user name is "bob". The same is true for host names that are reported. For UNIX-only, or mixed-platform environments, this is most often desired. In some environments, particularly in environments where Windows is used as the exclusive operating system, user names may need to be treated as case insensitive ("Bob" = "bob"). A configuration item is provided to allow the administrator to force all detected user and/or host names to be lower-case. This setting is specified in the licmon.swd/policy.tcl file:
# Force tracked user names to lower case
set config(checkoutUserLowerCase)   0

# Force tracked host names to lower case
set config(checkoutHostLowerCase)   0
Once the change is made, the file will need to be read-in to activate the configuration change. This can be done via the "reset" function, which can be found on the Admin > System page, or by running the following commands at the CLI:
% vovproject enable licmon
% vovproject reread

Ensure Visibility for Tags Not Actively Being Monitored

By default, tags that are not actively being monitored via sampling are hidden from the user interface. There may be cases where visibility is still desired though. Such cases would be:
  • A tag for a license server that no longer exists but reporting capability is still desired.
  • A tag for a FlexNet Publisher license server that is not being sampled, but instead is being populated via a debug log.
  • A tag for an Altium license server, which is solely populated via a log.

To ensure visibility for tags that fall under these conditions, use the setTagAccess configuration procedure as defined in Security.