In addition to the tools and system procedures that VoltDB provides for monitoring the health of your database, you can also integrate this data into third-party monitoring solutions so they become part of your overall enterprise monitoring architecture. VoltDB supports integrating VoltDB statistics and status with the following monitoring systems:
If you use Ganglia as your monitoring tool and the VoltDB Enterprise Manager as your database administration tool, the two products integrate seamlessly to provide VoltDB performance data to the Ganglia monitoring interface. Ganglia is a distributed monitoring system that provides a graphical interface to distributed clusters of systems. If Ganglia is present, VoltDB and the Enterprise Manager act as a data source for the Ganglia system.
To use VoltDB with Ganglia, make sure:
The Ganglia Monitoring Daemon (gmond) is installed and configured on each VoltDB cluster node.
The Ganglia Meta Daemon (gmetad) is installed and configured on the server running the VoltDB Enterprise Manager.
Having completed these steps, the VoltDB Enterprise Manager will automatically generate data for the Ganglia
monitoring system. See the Ganglia web site (
http://ganglia.sourceforge.net/) for more information about
VoltDB Enterprise Edition uses the Java Management Extensions (JMX) to send statistics from the database nodes to the VoltDB Enterprise Manager. The VoltDB JMX interface is also available to other monitoring frameworks that want to query for VoltDB statistics.
VoltDB Enterprise Edition servers open the JMX interface on port 9090 by default (you can change the port number, see Section A.5.6, “JMX Port” for details). Clients can either poll on this port for specific information or subscribe to messages that are sent approximately every second.
The information sent over the JMX interface is the same as that available through existing VoltDB system procedures, such as @SystemInformation, @Statitstics, and @SnapshotStatus. The difference is that the JMX interface is a lightweight process and is not transactional, as system procedures are. Therefore the JMX interface produces less load on the servers than repeated calls to the system procedures would.
The easiest way to become familiar with the JMX interface is to connect to a running database using the Java Monitoring and Management Console (also known as Jconsole) and browse through the structures returned by the VoltDB servers.
If you use Nagios to monitor your systems and services, you can include VoltDB in your monitoring infrastructure. VoltDB Enterprise Edition provides Nagios plugins that let you monitor four key aspects of VoltDB. The plugins are included in a subfolder of the tools directory where VoltDB is installed. Table 5.1, “Nagios Plugins” lists each plugin and what it monitors.
Table 5.1. Nagios Plugins
|check_voltdb_ports||Availability||Server||Reports whether the specified server is reachable or not.|
|check_voltdb_memory||Memory usage||Server||Reports on the amount of memory in use by VoltDB for a individual node. You can specify the severity criteria as a percentage of total memory.|
|check_voltdb_cluster||K-safety||Cluster-wide||Reports on whether a K-safe cluster is complete or not. That is, whether the cluster has the full complement of nodes or if any have failed and not rejoined yet.|
Reports the status of database replication. Connect the plugin to one or more nodes on the master database.
Note that the httpd and JSON options must be enabled in the deployment file for the VoltDB database for the Nagios plugins to query the database status.
If you use New Relic as your monitoring tool, there is a VoltDB plugin to include monitoring of VoltDB databases to your New Relic dashboard. To use the New Relic plugin, you must:
Define the appropriate configuration for your server.
Start the voltdb-newrelic process that gathers and sends data to New Relic.
You define the configuration by editing and renaming the template files that can be found in the
/tools/monitoring/newrelic/config folder where VoltDB is installed. The configuration files
let you specify your New Relic license and which databases are monitored. A README file in the
/newrelic folder provides details on what changes to make to the configuration files.
You start the monitoring process by running the script
voltdb-newrelic that also can be found
/newrelic folder. The script must be running for New Relic to monitor your databases.