Skip to content

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

  1. Add an Inclusion Profiles or modify existing Inclusion Profiles):

    Configuration -> Device Discovery -> Inclusion Profiles

  2. Optional - Add an Exclusion Profile(s) or modify existing Exclusion Profiles:

    Configuration -> Device Discovery -> Exclusion Profiles

  3. Enable the default Job, unless a specific configuration option is needed.

    Configuration -> Broker Control -> Jobs

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