TCPServerStitcherd
Overview
The Unified Assurance Topology TCP Server Stitcher is a generic TCP socket stitcher agent that listens for messages from devices using a configurable port. For each message received from a client, it processes the message using customizable rules which will create graph vertices and edges.
The Topology TCP Server Stitcher service has been setup to process received messages to build a dynamic logical layout.
TCP Server Stitcher Setup
-
Review the logic in the rules files referenced in the configuration to see the processing that will be done when messages are received:
-
"LoadRules" will be run during application startup to load data that might be needed during processing.
-
"IncludeRules" will be read during application startup to load additional files that might be called during processing.
-
"BaseRules" will be run for each device that is selected based on the configuration.
Update the logic as needed.
-
-
Create a clone of the default service, making changes to the configuration as needed.
-
Enable the Service.
Default Service
Field | Value |
---|---|
Package Name | coreCollection-app |
Service Name | Topology TCP Server Stitcher |
Service Program | bin/core/collection/TCPServerStitcherd |
Service Arguments | |
Service Description | Topology rules-based TCP Server Stitcher |
Failover Type | Standalone (Supported: Standalone, Primary/Backup) |
Status | Disabled |
Privileged | (Checked) |
Default Configuration
Name | Value | Possible Values | Notes |
---|---|---|---|
BaseRules | collection/topology/tcpserver/base.rules | Text, 255 characters | Relative path to Base Rules |
BranchDir | core/default | Text, 255 characters | relative path to Rules dir |
Host | * | Text, 255 characters | DNS name or IP Address for the TCP server. Can associate to a particular interface. - NO RELOAD CONFIG SUPPORT |
IncludeRules | collection/topology/tcpserver/base.includes | Text, 255 characters | Relative path to Include Rules |
LoadRules | collection/topology/tcpserver/base.load | Text, 255 characters | Relative path to Load Rules |
LogFile | logs/TopologyTCPServerStitcher.log | Text, 255 characters | Relative path to Log File. |
LogLevel | ERROR | OFF, FATAL, ERROR, WARN, INFO, DEBUG | Logging level used by application. |
Port | Integer | Port for message collection. - NO RELOAD CONFIG SUPPORT | |
Threads | 3 | Integer | Number of process threads created. The aggregator takes a third of this value (rounded up) for database threads unless overridden by the "DBThreads" application configuration. |
DelimiterFile | Text, 255 characters | Optional - Path to file that contains the regex string delimiter used to separate messages into distinct records e.g. '\\ |
Rules
This stitcher uses the Unified Assurance standard rules architecture, which are 100% Perl syntax. Refer to the following articles to assist in rules creation:
Tokens
The stitcher exposes the following tokens for rules processing.
Token | Description |
---|---|
$Message->{'RxTime'} | Received Time |
$Message->{'Message'} | Message received |
$Message->{'Host'} | Remote Sender DNS Name |
$Message->{'IP'} | Remote Sender IP Address |
$AppConfig | Hash reference to the application configuration name-value pairs that were configured. (i.e. use $AppConfig->{'Host'} to retrieve the set value for 'Host'.) |
$CustomHash | Custom key, value cache available across all rules. Contents commonly defined in Load Rules then used in Base or other rules. NOTE: This variable is a shared object and any additional sub hashes or arrays must be shared before use or it will cause the error: "Invalid value for shared scalar". Instantiate the sub hash/array using '&share({})' e.g. $CustomHash->{SubObject} = &share({}); |
$StorageHash | Internal cache used as the StorageHash option when calling rules functions such as FindDeviceID(). NOTE: The structure of this cache is subject to change! Not recommended for custom global storage or manual manipulation; use $CustomHash instead. |
Administration Details
The following list shows the technical details you will need for advanced administration of the application:
-
Package - coreCollection-app
-
Synopsis -
./TCPServerStitcherd [OPTIONS]
-
Options:
-c, --AppConfigID N Application Config ID (Service, Job, or Request ID) -?, -h, --Help Print usage and exit
-
Threaded - Multi-Threaded