Unified Assurance Topology TCP Server Stitcher
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 executed 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 executed 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 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