DeviceAutoDiscovery
Overview
The Unified Assurance 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 Inclusion Profiles or modify existing Inclusion Profiles:
-
Optional - Add Exclusion Profiles 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 Unified Assurance, 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 limiting the batch size using 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 Unified Assurance standard rules architecture in Perl syntax. For information about creating rules, see the following in Unified Assurance Developer's Guide:
-
Core for information about core rules functions.
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 you will need 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 - Multithreaded