Geneos


The end of life (EOL) date for this module is on 31 July, 2019.

Component Versions Plug-in - Technical Reference

Introduction

The purpose of the Geneos Component Versions plug-in is to identify the version information for processes / components that write to log files. For example you may have a log file belonging to a background process that contains version information for that process and possibly components that make up that process such as a database logging module.

00:00:00 INFO Product XYZ Version 2.5.1
00:00:00 INFO Product XYZ Database logging component Version 2.5.1
…

The plug-in supports a small set of known components upon which the user can build by adding their own components and replacement definitions for the existing built-in components. Components are identified with a set of signatures which are POSIX regular expressions describing the text containing the version information.

The plug-in supports filename specification with wildcards and date formatting; so should version information not be available within a file the previously seen version information will be displayed. This information will persist while the netprobe is running.

Views

View

The screenshot below shows an example of version information being monitored by the Plug-in.

component-versions2

Headline Legend

Name Description
MonitoredFileCount The number of unique log files configured for the plug-in to monitor.

Table Legend

Name Description
component The name of the component.
descriptions A description of the component.
version The version information contained within the file if available.
whenSeen The date and time of the sample this information was discovered.
logFile The file in which the information was found.

Plug-in Configuration

The component-versions plug-in is a gateway2 plug-in with XML configuration. Use of the Active Console setup-editor is encouraged for plug-in configuration.

Example Configuration

files
    file
         componentType: p1
         fileName: /export/logs/gl_logs/p1_*
    file
        componentType: p2
        fileName: /export/logs/gl_logs/p2_20070720.log
    file
        componentType: p3
        fileName: /export/logs/gl_logs/p3_20070720.log

    file
        componentName: p3 different log
        componentType: p3
        fileName: /export/logs/gl_logs/p3_%Y%m%d.log
…signatures
    componentType
        name: P3
        description: GL P3 - User Signature
        signature
            pattern: ^[0-9:]+[[:space:]]+INFO[[:space:]]+:[[:space:]]+\(@\(#\)KIT[[:space:]]+P3 Version +(.+)\)
            versionExprNo: 1
        signature
             pattern: ^[0-9]{2}:[0-9]{2}:[0-9]{2}[[:space:]]+.*\(@\(#\)\)KIT[[:space:]]P3[[:space:]]+MAIN[[:space:]]+(.+)[[:space:]]*$
       verionExprNo: 1
    componentType
        name: SLE
        description: GL SLE(user defined)
        signature
            pattern: ^-[[:space:]]+[0-9]{2}:[0-9]{2}:[0-9]{2}[0-9]{3}[[:space:}]+#[[:space:]]+[Pp]roduct[[:space:]]+:[[:space:]]+SLE[[:space:]].*Version[[:space:]]+:[[:space:]]+V([0-9\.-]+)$
            versionExprNo: 1

The following parameters should be configured in the samplers section of the gateway configuration:

  • sampler name — The name attribute of the sampler should be set to "component-versions".
  • sample Interval — Component version information is not something that will change frequently. A sample interval of 86400 seconds (24 hours) is recommended.

Log file monitoring

files

Configuration for monitored files should follow this.

Mandatory: Yes

files > file

Configuration for a specific monitored file follows this.

Mandatory: Yes

files > file > componentName

An optional name used to identify the component being searched for within the file. This is useful if you're looking for the same component in different places and serves to uniquely identify it. If this is not set the component name is defaulted to the component type.

Note: This should uniquely identify what is being searched for. The plug-in will warn in the netprobe log if this is not unique as this could break rules set for the plug-in.

Mandatory: No
Default: Value

files > file > componentType

The type of component expected to have version information within the file. This should match the name of a known component or a component configured by the user.

Mandatory: Yes

files > file > fileName

This is the path specification for the file to be monitored. The filename may include wildcard characters and date/time specification characters.

Filenames / paths may contain wildcard characters along with date formatting information for files generated with this information in the filename.

The most recent file matching the criteria will be monitored. The following date formatting codes are recognised.

All codes are subject to formatting according to the current locale. Consult your system documentation for details.

Some of these codes may not be available on your system; additionally your system may provide additional codes.

Code Meaning
%a The abbreviated weekday.
%A The full weekday.
%b The abbreviated month name.
%B The full month name.
%c The preferred date and time representation for the current locale.
%C The century as a two digit number.
%d The day of the month as a two digit number (01-31).
%D Equivalent to %m%d%y.
%e The day of the month with a leading space for single digit days.
%E Modifier for locale dependant alternate representation. Consult system documentation for this.
%F Equivalent to %Y-%m-%d, the ISO 8601 date format.
%G The ISO 8601 year.
%g As %G with two digit year.
%h Equivalent to %b.
%H The hour as a decimal number using the 24 hour clock (00 - 23).
%I The hour as a decimal number using the 12 hour clock (01 - 12).
%j The day of the year as a decimal number (001 - 366).
%k The hour as a decimal number using the 24 hour clock (0 - 23). Single digits preceded by a space.
%l The hour as a decimal number using the 12 hour clock (0 - 23). Single digits preceded by a space.
%m The month as a decimal number (01 - 12).
%M The minute as a decimal number (00 - 59).
%n A newline.
%O Modifier for locale dependant alternate representation. Consult system documentation for this.
%p 'AM' or 'PM' or locale equivalent strings.
%P 'am' or 'pm' or locale equivalent string.
%qd The day of the month without a leading zero.
%qm The month as a decimal number without a leading zero.
%r The time in a.m. or p.m. notation.
%R The time in 24 hour notation (%H:%M).
%s The number of seconds since 1970-01-01 00:00:00 UTC.
%S The second as a decimal number.
%t A tab character.
%T The time in 24 hour notation (%H:%M:%S).
%u The day of the week as a decimal number (1 - 7)
%U The week number of the year as a decimal number (00 - 53).
%V The ISO 8601:1988 week number for the year (01 - 53).
%w The day of the week as a decimal number (0 - 6).
%W The week number of the current year as a decimal (00 - 53).
%x The preferred date representation for current locale without the time.
%X The preferred time representation for the current locale without the date.
%y The year as a decimal number without the century (00 - 99).
%z The timezone as an hour offset from GMT.
%Z The timezone as an abbreviation.

Mandatory: [Yes]

User defined component signatures

Signatures

A signature is what identifies a component and the version information. Component signature definitions follow this.

Mandatory: Yes

signatures > componentType

A component type is a definition of a component and it's signatures.

The component version plug-in comes with built-in support for the following component types. Files configured with these component types will automatically be searched for the associated patterns.

To replace these patterns component types with the same name should be added to the configuration.

Component Description Pattern
plcmend PL SLC CMEND ^[[:space:]]+Version[[:space:]]+:[[:space:]]+@(#)SLC[[:space:]]+CMEMD[[:space:]]+Version[[:space:]]+(.+)
sle-fix GL SLE FIX ^[[:space:]]+ @(#)SLE[[:space:]]+FIX[[:space:]]+V(.+)
p15-comm-backup GL P15 COMM BACKUP ^[[:space:]]+ @\(#\)SLE2000[[:space:]]+P15[[:space:]]+.*COMM BACKUP KIT[[:space:]]+V([a-zA-Z0-9\.-]+)[[:space:]]+.*
p3 GL P3

^[0-9:]+[[:space:]]+INFO[[:space:]]+:[[:space:]]+\(@\(#\)KIT[[:space:]]+P3[[:space:]]Version[[:space:]]+(.+)\)

^[0-9:]+[[:space:]]+P3:[[:space:]]+INFO[[:space:]]+:[[:space:]]+(@(#)KIT[[:space:]]+P3SLC[[:space:]+.+[:space:]]V(.+))

selector GL Selector ^[[:space:]]+#[[:space:]]+Product Version:[[:space:]]+[@(#)Selector.*[[:space:]]+(.+)]
plhisto GL P1 Histo ^[[:space:]]+Version[[:space:]]+:[[:space:]]+@(#)KIT[[:space:]]+P1HISTO[[:space:]]+Version[[:space:]]+V([a-zA-Z0-9.-]+)
p2 GL P2 ^[0-9:]+[[:space:]]+P2:[[:space:]]+INFO[[:space:]]+:[[:space:]]+\(@\(#\)KIT[[:space:]]+P2SLC[[:space:]]+V[a-zA-Z0-9]+[[:space:]]+V([0-9\.-]+)\)
p1 GL P1

^[0-9:]+[[:space:]]+INFO[[:space:]]+ \(@\(#\)KIT[[:space:]]+P1[[:space:]]+Version[[:space:]]+(.+)

^[0-9:]+[[:space:]]+P1[[:space:]]+INFO[[:space:]]+:[[:space:]]+(@(#)KIT[[:space:]]+P1SLC[[:space:]]+.+[[:space:]]V(.+))

glmiss GL MISS ^[[:space:]]+@(#)GLMISS.*[[:space:]]V([a-zA-Z0-9.-]+)[[:space:]].*
pto GL pto [[:space:]]+#[[:space:]]+Product Version:[[:space:]]+[@(#)pto[[:space:]]+(.+)]
sle GL SLE -[[:space:]]+[0-9:]+[[:space:]]+#[[:space:]]+Product[[:space:]]+:[[:space:]]+SLE[[:space:]]+.*[[:space:]]Version[[:space:]]:[[:space:]]V(.+)
p1erxus GL P1 ERXUS ^[[:space:]]+Version[[:space:]]+:[[:space:]]@(#)KIT P1ERXUS Version[[:space:]]+(.*)

Mandatory: No

signatures > componentType > name

This is the name of the component. If the name matches the name of a built-in / existing component this component definition will replace the existing one. This is useful for overriding built-in component support.

Mandatory: Yes

signatures > componentType > description

This is the description of the component. The description field allows the user to explain the name of the component. If the description is not specified the name is used for this field.

Mandatory: No
Default: Name of the component

signatures > componentType > signature

Each component has a number of signatures. The signature for a component may change between releases and this allows all known signatures to be checked.

Mandatory: Yes

signatures > componentType > signature > pattern

The pattern is the POSIX regular expression that uniquely identifies the line of text containing the version information.

Mandatory: Yes

signatures > componentType > signature > versionExprNo

This is a positive whole number which identifies the sub-expression within the pattern that contains the version information.

Note the following:

  • An expression number greater than the number of sub-expressions within the pattern will cause version information not to be found.
  • An expression number greater than the number of sub-expressions within the pattern will cause version information not to be found.
  • An expression number greater than the number of sub-expressions within the pattern will cause version information not to be found.

Mandatory: Yes