I have a question on initial discovery of SNMP devices that were added to the inventory using XML import
facilities of USM on the frontend side and cm_data_import on the server side. In short, what is the procedure
of populating the OS info, description, and system name using this route? These fields are populated when
one runs the "Discovery Wizard" for say a single IP instead.
I imported SNMP Profiles with XML as a first step and a list of devices with only basic info such as the
"PrimaryIPV4Address", a "Label", a "UserAlias" and a reference to the corresponding "SnmpProfileUUID".
I've set the origin to the hub name where snmpcollector is running too in the XML file. I assumed (or hoped)
that the detailed discovery will fill in the rest so that for example grouping devices by OS type would be
Even after these imported devices were further imported as snmpcollector profiles probe and that probe
showed some OS details in the web AC configuration GUI the USM does not present this info.
The only fields that are shown on the device details tab of the USM that were not already specified in the XML
import file are the MAC address, the system model, and the vendor.
Only if I run the discovery for say single IP address with the "Discovery Wizard" the details tab appears
to become complete. It would be very tedious to repeat this procedure for several hundreds devices
scattered over many subnets.
One more thing that may be important. The primary hub running cm_data_import probe is not whitelisted
on the SNMP devices, only the "remote hub" running the snmpcollector (and a second discovery_agent) is.
I had to use the specific discovery_agent on the "remote hub" to run the "Discovery Wizard" for one example
All the docs that I've seem describe the use of "Discovery Wizard" in detail but only briefly, if at all,
mention the XML import alternative.
Very old somewhat related (unanswered) thread:
UMP Auto discovery scopes quick configure?
If you want to populate them "after the fact" then querying/discovering them with an agent is likely to be the only option. Most probes (including snmpcollector) only publish a limited amount of data about devices compared to what discovery_agent does.
Otherwise, you can pre-specify the properties in the XML file: Device Examples and Properties - CA Unified Infrastructure Management - 8.0 - CA Technologies Documentation
Thanks for confirmation, Jason!
Are there any docs on the callbacks of the discovery_agent?
I tried calling "discover_device". The first strange thing: it does not ask for arguments
in the web AC. Then it fails complaining about missing "key ip_address". Same with the "pu"
probe utility in the command line:
$ /opt/nimsoft/bin/pu -u abc -p xyz /dom/hub/robot/discovery_agent discover_device
May 23 13:48:46:848 pu: SSL - init: mode=0, cipher=DEFAULT, context=OK
May 23 13:48:46:848 pu: nimCharsetSet() - charset=
Address: /dom/hub/robot/discovery_agent Request: discover_device
message PDS_PCH 36 No element found for key ip_address ~
error_code PDS_I 2 1
device_properties PDS_PDS 0
What would be the correct way to invoke this callback?
To continue the thread from 2011 I quoted above. What could possibly go wrong if one
manually populates CM_DISCOVERY_NETWORK + CM_NETWORK? Is this data also
replicated between SQL and Datomic DBs and should be kept in sync? Som notes
I made for reference:
I could not find any documentation internally on the discover_device callback; it appears that this is likely an "internal" callback which is used programatically in the interactions between discovery_server, agent, and wizard, but is not intended to be used outside that context.
I think it would probably be OK to populate CM_DISCOVERY_NETWORK/CM_NETWORK manually, as these are not involved in anything datomic-related, but I haven't tested it - there may be foreign-key constraints and so forth that I'm not aware of. Aside from that, though, I don't see a huge issue with it.
For future readers,
Manually populating the two tables with single device entries and running
the discovery in USM seems to work mostly as expected. Though I didnt try
it at large scale yet. Would be nice to have this option integrated into cm_data_import or the like.
I still dont seem to quite get the rules for the "Description" field as it is displayed in USM though.
For some devices it is filled during discovery from SNMP data, for others I see the
input I supplied in XML, yet others are empty. Or flipping to empty after some time after
the discovery. What are the exact rules?
Here some notes:
Inserting discovery scopes for singe IPs with plain SQL works.
Note that network_id is an auto-incremented identity column,
you cannot insert specific values there. Also it is somewhat
cumbersome to get the network_id for the recently inserted
row. Basic SQL for reference:
insert into CM_DISCOVERY_NETWORK
(da_id, created, description, network, exclude, group_id, type)
values (2, GETDATE(), 'Manual Single', '10.20.30.40', 0, 0, 0);
insert into CM_NETWORK_SNMP (network_id, snmp_id) values (2, 3);
Deleting a row from CM_DISCOVERY_NETWORK also triggers
deletion from CM_NETWORK_SNMP with MSSQL, at least.
The related Idea:
Discover from an file imported list and discovery frequency
Add your vote there.