Chapter 7.  Standardized Monitoring Interfaces

Table of Contents

Simple Network Management Protocol (SNMP) and Java Management Extensions (JMX)
Enabling Monitoring
Displaying the NoSQL DB MBeans

Oracle NoSQL Database allows Java Management Extensions (JMX) or Simple Network Management Protocol (SNMP) agents to be optionally available for monitoring, in addition to the native monitoring provided by the Admin CLI and the Admin Console. These agents provide interfaces on each storage node that allow management clients to poll them for information about the status, performance metrics, and operational parameters of the storage node and its managed services, including replication nodes and admin instances.

Both these management agents can also be configured to push notifications about changes in the status of any of the services, and for violations of preset performance limits.

The JMX interface can be enabled in either the Community Edition or the Enterprise Edition. To use SNMP, however, you must have the Enterprise Edition.

The JMX service exposes MBeans for the three types of components. These MBeans are the java interfaces StorageNodeMBean, RepNodeMBean, and AdminMBean in the package oracle.kv.impl.mgmt.jmx. For more information about the status reported for each component, see the javadoc for these interfaces.

The same information that is reported via JMX can also be reported through SNMP. In this case, the information is organized according to the Management Information Base (MIB) named OracleNosqlMIB, which is included with the Enterprise Edition, in the file lib/nosql.mib.

Simple Network Management Protocol (SNMP) and Java Management Extensions (JMX)

Both the SNMP and JMX agents in NoSQL Database are read-only interfaces and allow you to poll the storage nodes for information about the storage node and about any replication nodes or admins that are hosted on the storage node. The available information includes service status (such as, RUNNING, STOPPED etc.), operational parameters, and performance metrics.

SNMP and JMX traps/notifications are also delivered for particular events. Notifications are sent for every service status state change; and for violations of performance limits.

Enabling Monitoring

Monitoring can be enabled on a per-storage node basis in two different ways:

In the Bootfile

You can specify that you want to enable JMX or SNMP in the storage node's boot configuration file. Usually, these files are created by using the makebootconfig utility, which has the following options to control these features:

  • [-mgmt {snmp|jmx|none} -pollport <snmp poll port>]
    
  • -traphost <snmp trap/notification hostname>]
    
  • -trapport <snmp trap/notification port>]
    

Note

When you specify -mgmt snmp, you must also specify -pollport. The SNMP agent listens for connections from SNMP management clients on this port. You may also optionally specify -traphost and -trapport to indicate the destination address for notifications. This would be the hostname and port number of an SNMP management service that is configured to receive notifications at that address.

Note

When you specify -mgmt jmx, you do not have to specify -pollport. A storage node's JMX agent uses the RMI registry at the same port number as is used for all other RMI services managed by the storage node. (This port number is specified as the -port argument to makebootconfig.)

By Changing Storage Node Parameters

You can still enable JMX or SNMP after a store is deployed, by changing the storage node parameters "mgmtClass", "mgmtPollPort", "mgmtTrapHost", and "mgmtTrapPort". Similar to configuring via makebootconfig, the "mgmtPollPort", "mgmtClass", "mgmtTrapHost", and "mgmtTrapPort" are used only for SNMP; and the parameter "mgmtPollPort" must be set when enabling SNMP.

The value of the "mgmtClass" parameter may be one of the following class names:

  • To enable JMX:

    oracle.kv.impl.mgmt.jmx.JmxAgent
  • To enable SNMP:

    oracle.kv.impl.mgmt.snmp.SnmpAgent
  • To enable neither JMX nor SNMP:

    oracle.kv.impl.mgmt.NoOpAgent

For example, you could issue the following command in the Admin CLI to enable SNMP on a storage node:

plan change-parameters -service sn1 -wait -params \
mgmtClass=oracle.kv.impl.mgmt.snmp.SnmpAgent \
mgmtPollPort=5002 mgmtTrapHost=192.168.26.42
mgmtTrapPort=32767

Note

Only a single implementation of the management agent may be enabled at a particular time. If you enable SNMP on a storage node where JMX is already enabled; the JMX agent shuts down, and the SNMP agent takes its place.

Displaying the NoSQL DB MBeans

To view the NoSQL Database JMX Mbeans in a monitoring tool such as JConsole, connect using the hostname and registry port for each Storage Node that you would like to view. This is the port that is named by the "-port" argument to the java -jar kvstore.jar makebootconfig command. It is also used in the deploy-sn plan during configuration. The documentation examples use 5000 as the registry port.

For example, you would specify localhost:5000 to the JConsole Remote Process connection box in the New Connection tab.