Assure1 Core Device Auto Discovery¶
Overview¶
The Assure1 Core Device Auto Discovery application uses the defined Inclusion Profiles and Exclusion Profiles to find and record new devices on the network. After a device has been discovered and added to the database, the device information is sent to rules for additional custom processing that may be needed. All initially discovered devices appear in the Devices UI with a Status of "Verified".
Device Auto Discovery Setup¶
-
Add an Inclusion Profiles or modify existing Inclusion Profiles):
-
Optional - Add an Exclusion Profile(s) or modify existing Exclusion Profiles:
-
Enable the default Job, unless a specific configuration option is needed.
Default Scheduled Job¶
Field | Value |
---|---|
Package Name | coreCollection-app |
Job Name | Device Auto Discovery |
Job Program | bin/core/collection/DeviceAutoDiscovery |
Job Arguments | |
Job Description | Runs Auto Discovery Profiles for Device Catalog |
Failover Type | Standalone (Supported: Standalone, Primary/Backup) |
Status | Disabled |
Privileged | (Checked) |
Minutes | 59 |
Hours | 23 |
Days | * |
Months | * |
WeekDays | 5 |
Default Configuration¶
Name | Value | Possible Values | Notes |
---|---|---|---|
BaseRules | collection/discovery/auto/base.rules | Text, 255 characters | Relative path to Base Rules. |
BranchDir | core/default | Text, 255 characters | Relative path to Rules dir. |
DeviceGroupID | Root | Integer | Default Device Group to default devices to if none were set in rules. |
DeviceZoneID | Default First Zone | Integer | Discovered devices are inserted to the given zone. |
IncludeRules | collection/discovery/auto/base.includes | Text, 255 characters | Relative path to Include Rules. |
LoadRules | collection/discovery/auto/base.load | Text, 255 characters | Relative path to Load Rules. |
LogFile | logs/DeviceAutoDiscovery.log | Text, 255 characters | Relative path to Log File. |
LogLevel | ERROR | OFF, FATAL, ERROR, WARN, INFO, DEBUG | Logging level used by application. |
ShardID | 1 | Integer | Default ShardID to assign newly discovered devices. |
SocketTimeout | 5 | Integer | The time out when doing ping attempts at device discovery. |
Threads | 3 | Integer | The number of process threads created. |
TimeOut | 5 | Integer | When doing CDP discovery, this value is the time out for the CDP connection attempt at discovering a device. |
Force | Enabled/Disabled | Optional - When enabled, if a device is discovered with a different IP address but a duplicate DNS name with a device already in Assure1, a new device is created. | |
MaxBatchSize | Integer | Optional - The maximum size of each batch handled per thread. Defaults to 64. |
Best Practices¶
-
The default job configuration runs at 11:59 pm every Friday.
-
By default batches are sized by dividing the total number of items to be discovered over the number of threads. As the number of items increases, it is best practice to limit this batch size to prevent certain denial of service limitations on your network.
-
When batching multiple devices per thread (default), there is potential based on hardware for processing overhead to be included in the Latency metric because pings are requested asynchronously per batch. This overhead can be reduced by either limiting the batch size with MaxBatchSize, to reduce the number of devices pinged at once by the threads but this will cause a longer poll cycle.
Rules¶
This application uses the Assure1 standard rules architecture. The rules are written in Perl syntax. Refer to the following guides for details on rules creation:
Tokens¶
The application exposes the following tokens for rules processing.
Token | Description |
---|---|
$DeviceID | Device's internal DeviceID. |
$DNS | DNS Resolved Name of Device. |
$IPv4 | IPv4 Address of Device. |
$IPv6 | IPv6 Address of the Device. |
$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({}); |
Administration Details¶
The following list shows the technical details needed for advanced administration of the application:
-
Package - coreCollection-app
-
Synopsis -
./DeviceAutoDiscovery [OPTIONS]
-
Options:
-c, --AppConfigID N Application Config ID (Service, Job, or Request ID) -d, --Device S Comma separated list of devices to manually discover -?, -h, --Help Print usage and exit
-
Threaded - Multi-Threaded