Adding a custom system to IONIX AM/PM

Here's the challenge -- we need to create a system in smarts that cant be discovered using ICMP or SNMP, and instrument it using some "non standard" source of information. So what needs to be done?

1 - Choose or create the class

First we need to know what class the system will be in. If it's something simple like a PC running some bespoke software then a "Host" is probably a good choice. If you want your custom devices to show up in AM/PM in a different class folder than "Host" in the browser (for something other than "Hosts" to appear in the "Class" column of associated notifications), and Smarts doesnt provide the class you want, then you can create a new one using dynamic model (you need the "compiler" license feature enabled for this). Here's an example..
interface Laptop : Host {
In the above snippet, the lack of any content between "{" and "}" means that we are happy simply to use the same set of attributes as the Host class gives us. If the above model is saved in local/model/laptop.mdl, then the commands to compile it are..
cd local/model
dynmodel laptop.mdl
Dont forget to add the "--dynamic" option when starting the AM/PM domain server's "sm_server" process.

2 - Create an instance

To create a working instance of this system, we need to create a number of objects, link them with relationships and populate a minmal set of attributes. There are several ways of doing things, but the example below is a "dmctl" script to create a minimal system with two interfaces and IP address.
create Laptop::dell1
put Laptop::dell1::Vendor CUSTOM
create SNMPAgent::Agent-dell1
insert Laptop::dell1::HostsServices SNMPAgent::Agent-dell1
invoke Laptop::dell1 makeInterface 1
invoke Laptop::dell1 makeInterface 2
invoke Interface::IF-dell1/1 makeMAC 00:11:22:33:44:55
invoke Interface::IF-dell1/1 makeIP
insert SNMPAgent::Agent-dell1::LayeredOver IP::IP-
invoke Interface::IF-dell1/2 makeMAC 00:99:88:77:66:55
invoke Interface::IF-dell1/2 makeIP
If this script is saved in a file called "populate.txt", then it can be executed using the command ..
dmctl -s INCHARGE-AM -f populate.txt

3 - Create Instrumentation

Now, if you are going to use external instumentation sources, you need to use the "External" polling settings. To enable these, log in to AM/PM using the GUI, select the "Domain Manager Administraton Console" (the option is foumd in the "Configuration" menu), then "Polling and Thresholds". Once this has been done, your instrumentation logic can set attributes in the instrumentation objects (follow the InstrumentedBy relationship in the Interface and IP objects).
Scroll to Top