Java Dynamic Management Kit 5.0 Tutorial

Running the SNMP Master Agent Examples

Before running the example applications, compile all the Java classes in each of the four subdirectories inside examplesDir/Snmp/MasterAgent, by typing the following command in each directory.


$ javac -classpath classpath -d . *.java

The following procedures give instructions to run five different SNMP master agent scenarios:

Ensure that no agents are already running before you start the examples.

To Send Requests From a Manager to the SNMPv2 Master Agent

Because there are no MIBs overlapping in this first example, all the variables implemented by the subagent MIB can be seen from the manager. Thus, you can see that some of the OIDs queried return a DisplayString value of error#.

  1. Start the StandAloneAgent subagent.

    In examplesDir/Snmp/MasterAgent/standalone, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    StandAloneAgent 8085
    

    This binds StandAloneAgent to port 8085. Do not send traps when prompted.

  2. Start the SNMPv2 MasterAgent application.

    You need to provide MasterAgent with the following information:

    • The location of its security configuration file, jdmk.security

    • The port on which it should listen for incoming requests, in this case we choose 8087

    • The subagent's host, in this case the local host

    • The subagent's port number, in this case 8085

    In examplesDir/Snmp/MasterAgent/master, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    MasterAgent 8087 localhost 8085
    

    The following output is displayed:


    NOTE: HTML adaptor is bound on TCP port 8082
    NOTE: SNMP Adaptor is bound on UDP port 8087
    The master agent forward traps on port : 8088
    
    >> Press Enter if you want to stop.
    
  3. Start the SimpleManager application.

    You need to provide SimpleManager with the following information:

    • The location of its security configuration file, jdmk.security

    • The master agent's host, in this case the local host

    • The port on which the master agent is listening for request, in this case 8087

    In examplesDir/Snmp/MasterAgent/manager, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    SimpleManager localhost 8087
    >> Press Enter if you want to send a SNMP V3 request.
    
  4. Press Enter to send an SNMPv3 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V3 get request to SNMP V3 agent  
    on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : error1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : error2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    
    >> Press Enter if you want to send a SNMP V2 request.
    
  5. Press Enter to send an SNMPv2 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V2 get request to SNMP agent 
    on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : error1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : error2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    $
    

    The manager has successfully sent the two requests to the subagent, via the master agent.

To Send Requests From a Manager to the SNMPv3 Master Agent

Because there is no MIB overlapping in this second example, all the variables implemented by the subagent MIB can be seen from the manager. Thus, you see that some of the OIDs queried return a DisplayString value of error#.

  1. Start the StandAloneAgent subagent.

    In examplesDir/Snmp/MasterAgent/standalone, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    StandAloneAgent 8085
    

    This binds StandAloneAgent to port 8085. Do not send traps when prompted.

  2. Start the SNMPv3 MasterAgentV3 application.

    You need to provide MasterAgentV3 with the following information:

    • The location of its security configuration file, jdmk.security

    • The port on which it should listen for incoming requests, in this case we choose 8087

    • The subagent's host, in this case the local host

    • The subagent's port number, in this case 8085

    • The manager's host, in this case the local host

    In examplesDir/Snmp/MasterAgent/master, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    MasterAgentV3 8087 localhost 8085 localhost
    

    The following output is displayed:


    NOTE: HTML adaptor is bound on TCP port 8082
    NOTE: SNMP Adaptor is bound on UDP port 8087
    
    >> Press Enter if you want to stop.
    
  3. Start the SimpleManager application.

    You need to provide SimpleManager with the following information:

    • The location of its security configuration file, jdmk.security

    • The master agent's host, in this case the local host

    • The port on which the master agent is listening for request, in this case 8087

    In examplesDir/Snmp/MasterAgent/manager, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    SimpleManager localhost 8087
    >> Press Enter if you want to send a SNMP V3 request.
    
  4. Press Enter to send an SNMPv3 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V3 get request to SNMP V3 agent 
    on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : error1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : error2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    
    >> Press Enter if you want to send a SNMP V2 request.
    
  5. Press Enter to send an SNMPv2 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V2 get request to SNMP agent 
    on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : error1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : error2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    $
    

    The manager has successfully sent the two requests to the subagent, via the SNMPv3 master agent.

To Send Requests From a Manager to a Master Agent With Overlapping MIBs

This example is very similar to To Send Requests From a Manager to the SNMPv2 Master Agent, except that the master agent now implements a local MIB which partly shadows the MIB implemented remotely by the agent.

Because the local MIB now shadows the variables for which the value was error#, these pseudo error messages no longer appear in the result displayed.

  1. Start the StandAloneAgent subagent.

    In examplesDir/Snmp/MasterAgent/standalone, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    StandAloneAgent 8085
    

    This binds StandAloneAgent to port 8085. Do not send traps when prompted.

  2. Start the overlap MasterAgent application.

    You need to provide MasterAgent with the following information:

    • The location of its security configuration file, jdmk.security

    • The port on which it should listen for incoming requests, in this case we choose 8087

    • The subagent's host, in this case the local host

    • The subagent's port number, in this case 8085

    In examplesDir/Snmp/MasterAgent/overlap, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    MasterAgent 8087 localhost 8085
    

    The following output is displayed:


    NOTE: HTML adaptor is bound on TCP port 8082
    NOTE: SNMP Adaptor is bound on UDP port 8087
    
    >> Press Enter if you want to stop.
    
  3. Start the SimpleManager application.

    You need to provide SimpleManager with the following information:

    • The location of its security configuration file, jdmk.security

    • The master agent's host, in this case the local host

    • The port on which the master agent is listening for request, in this case 8087

    In examplesDir/Snmp/MasterAgent/manager, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    SimpleManager localhost 8087
    >> Press Enter if you want to send a SNMP V3 request.
    
  4. Press Enter to send an SNMPv3 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V3 get request to SNMP V3 
    agent on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : sysDescr1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : sysDescr2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    
    >> Press Enter if you want to send a SNMP V2 request.
    
  5. Press Enter to send an SNMPv2 request

    The following output is displayed:


    SimpleManager::main: Send SNMP V2 get request to SNMP agent 
    on localhost at port 8087
    Result: 
    [Object ID : 1.3.6.1.2.1.1.1.0  (Syntax : String)
    Value : sysDescr1, Object ID : 1.3.6.1.2.1.1.2.0  (Syntax : String)
    Value : sysDescr2, Object ID : 1.3.6.1.2.1.1.3.0  (Syntax : String)
    Value : sysDescr3, Object ID : 1.3.6.1.2.1.1.4.0  (Syntax : String)
    Value : sysDescr4]
    $
    

    The manager has successfully sent the two requests to the subagent, via the overlap master agent. As you can see, the error# values have been replaced by the variables sysDescr1 and sysDescr2, which were configured in the master agent to overlap with the variables in the subagent's MIB.

To Receive Forwarded SNMPv1/v2 Traps in the Manager
  1. Start the StandAloneAgent subagent.

    In examplesDir/Snmp/MasterAgent/standalone, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    StandAloneAgent 8085
    

    The following output is displayed:


    NOTE: SNMP Adaptor is bound on UDP port 8085
    Press Return if you want to send trap
    
  2. Press Return to activate stand alone traps

    The following output is displayed:


    Press crtl-c in order to kill the agent
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    

    Do not send any traps yet, but leave the StandAloneAgent active.

  3. Start the SNMPv2 MasterAgent application.

    You need to provide MasterAgent with the following information:

    • The location of its security configuration file, jdmk.security

    • The port on which it should listen for incoming requests, in this case we choose 8087

    • The subagent's host, in this case the local host

    • The subagent's port number, in this case 8085

    In examplesDir/Snmp/MasterAgent/master, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    MasterAgent 8087 localhost 8085
    

    The following output is displayed:


    NOTE: HTML adaptor is bound on TCP port 8082
    NOTE: SNMP Adaptor is bound on UDP port 8087
    The master agent forward traps on port : 8088
    
    >> Press Enter if you want to stop.
    
  4. Start the SimpleManager application.

    You need to provide SimpleManager with the following information:

    • The location of its security configuration file, jdmk.security

    • The master agent's host, in this case the local host

    • The port on which the master agent is listening for request, in this case 8087

    In examplesDir/Snmp/MasterAgent/manager, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    SimpleManager localhost 8087
    >> Press Enter if you want to send a SNMP V3 request.
    

    Do not send a request this time.

  5. Go back to examplesDir/Snmp/MasterAgent/standalone

    The StandAloneAgent should still be waiting to send traps.

  6. Type either 1 or 2 to send SNMPv1 or SNMPv2 traps

    The following output is displayed:


    1
    V1 TRAP to send
    
    Trap V1 sent!
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    2
    V2 TRAP to send
    
    Trap V2 sent!
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    
  7. Go back to examplesDir/Snmp/MasterAgent/manager

    Notice that the SimpleManager application has received SNMPv1 and v2 traps from the StandAloneAgent. The following output from SimpleManager is displayed:


    NOTE: TrapListenerImpl received SNMP V1 trap :
            Generic 0
            Specific 0
            TimeStamp 104549
            Agent adress 129.157.203.98
    NOTE: TrapListenerImpl received SNMP V2 trap:
            CommunityString : 
            VarBind list :
    oid : 1.3.6.1.2.1.1.3.0 val : 0:17:25
    oid : 1.3.6.1.6.3.1.1.4.1.0 val : 1.3.6.1.6.3.1.1.5.1
    oid : 1.2.3.4.5.6.0.0 val : Test values
    oid : 1.2.3.4.5.6.1.0 val : NULL
    oid : 1.2.3.4.5.6.2.0 val : 43
    oid : 1.2.3.4.5.6.3.0 val : Test values
    oid : 1.3.6.1.6.3.18.1.3.0 val : 129.157.203.98
    oid : 1.3.6.1.6.3.18.1.3.0 val : 129.157.203.98
    oid : 1.3.6.1.6.3.18.1.4.0 val : 
    oid : 1.3.6.1.6.3.1.1.4.3.0 val : 1.3.6.1.4.1.42
    
  8. Stop the StandAloneAgent and the SimpleManager by pressing Control-C, and stop the MasterAgent by pressing Enter.

To Receive Forwarded SNMPv3 Traps in the Manager
  1. Start the StandAloneAgent subagent.

    In examplesDir/Snmp/MasterAgent/standalone, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    StandAloneAgent 8085
    

    The following output is displayed:


    NOTE: SNMP Adaptor is bound on UDP port 8085
    Press Return if you want to send trap
    
  2. Press Return to activate stand alone traps

    The following output is displayed:


    Press crtl-c in order to kill the agent
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    

    Do not send any traps yet, but leave the StandAloneAgent active.

  3. Start the SNMPv3 MasterAgentV3 application.

    You need to provide MasterAgentV3 with the following information:

    • The location of its security configuration file, jdmk.security

    • The port on which it should listen for incoming requests, in this case we choose 8087

    • The subagent's host, in this case the local host

    • The subagent's port number, in this case 8085

    • The manager's host, in this case the local host

    In examplesDir/Snmp/MasterAgent/master, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    MasterAgentV3 8087 localhost 8085 localhost
    

    The following output is displayed:


    NOTE: HTML adaptor is bound on TCP port 8082
    NOTE: SNMP Adaptor is bound on UDP port 8087
    The master agent forward traps on port : 8088
    
    >> Press Enter if you want to stop.
    
  4. Start the SimpleManager application.

    You need to provide SimpleManager with the following information:

    • The location of its security configuration file, jdmk.security

    • The master agent's host, in this case the local host

    • The port on which the master agent is listening for request, in this case 8087

    In examplesDir/Snmp/MasterAgent/manager, type the following command:


    $ java -classpath classpath -Djdmk.security.file=./jdmk.security 
    SimpleManager localhost 8087
    >> Press Enter if you want to send a SNMP V3 request.
    

    Do not send a request this time.

  5. Go back to examplesDir/Snmp/MasterAgent/standalone

    The StandAloneAgent should still be waiting to send traps.

  6. Type either 1 or 2 to send SNMPv1 or SNMPv2 traps

    The following output is displayed:


    1
    V1 TRAP to send
    
    Trap V1 sent!
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    2
    V2 TRAP to send
    
    Trap V2 sent!
    
    Type 1 in order to launch snmp V1 traps, 2 for snmp V2.
    
  7. Go back to examplesDir/Snmp/MasterAgent/manager

    Notice that the SimpleManager application has received SNMPv3 traps from the StandAloneAgent, via MasterAgentV3. The following output from SimpleManager is displayed:


    NOTE: TrapListenerImpl received trap V3:
            ContextEngineId : 0x8000002a05819dcb6e00001f95
            ContextName : TEST-CONTEXT
            VarBind list :
    oid : 1.3.6.1.2.1.1.3.0 val : 0:5:24
    oid : 1.3.6.1.6.3.1.1.4.1.0 val : 1.3.6.1.6.3.1.1.5.1
    oid : 1.2.3.4.5.6.0.0 val : Test values
    oid : 1.2.3.4.5.6.1.0 val : NULL
    oid : 1.2.3.4.5.6.2.0 val : 43
    oid : 1.2.3.4.5.6.3.0 val : Test values
    oid : 1.3.6.1.6.3.18.1.3.0 val : 129.157.203.98
    oid : 1.3.6.1.6.3.18.1.3.0 val : 129.157.203.98
    oid : 1.3.6.1.6.3.18.1.4.0 val : 
    oid : 1.3.6.1.6.3.1.1.4.3.0 val : 1.3.6.1.4.1.42
    
  8. Stop the StandAloneAgent and the SimpleManager by pressing Control-C, and stop the MasterAgentV3 by pressing Enter