The Volt Management Center (VMC) is a web-based console for monitoring and managing VoltDB databases. The console includes panels for viewing and editing the database configuration and schema, as well as tabs for monitoring real-time performance of transactions, import and export activities, and Active(N) replication. There is even a tab for executing ad hoc queries against the database.
On bare metal systems, VMC currently starts automatically as part of the database server. However, it is also available as a standalone service. And on Kubernetes, VMC is started as a standalone service by default. Use of the standalone service is recommended for two primary reasons:
Performance: The VMC service can run on any server — it does not have to run on the database server itself where it might compete with other database operations.
Scalability: When run as part of the database server, every server starts an instance of VMC. But when run as a separate service, you can run as many or as few instances as you need. For lightweight use, a single instance for the entire cluster is usually sufficient. On the other hand, to ensure availability or to support extensive use if the JSON interface, you may choose to run more instances.
The VMC service actually consists of two separate components:
VMC server — provides an HTTP endpoint that opens the VMC console on the user's web browser.
JSON HTTP Programming Interface — an easy to use API for running ad hoc queries and stored procedures from any programming language. The JSON API is not recommended for highly performant applications, but can be useful for prototyping or building your own web-based interface.
The following sections explain how to install and run the standalone VMC service on bare metal systems.
The only requirement for installing and running the VMC service is that the system you run it on must include Java
runtime version 8.0, 11.0 or later. VMC comes as a zipped tarball that you can find where you get your Volt Active Data
server software. The tarball is named voltdb-vmc-xx.x.x.tar.gz
, where "xx..x.x" is the version
number.
Download and unpack the file to create a directory with the VMC service executables and command line. For example, to
install version 13.2.0 of VMC in your top-level directory and rename the directory to voltvmc
, use the
following commands:
$ tar -zxvf voltdb-vmc-13.2.0.tar.gz -C $HOME $ cd ~ $ mv voltdb-vmc-13.2.0 voltvmc
Note that, although the VMC service is versioned, it does not need to be updated or match the version of the database servers it services. Any VMC service can interoperate with any version V13.0 or later of the VoltDB server software.
Once VMC is installed, you can invoke the service in either one of two ways:
For most Linux systems, including Ubuntu and Red Hat, VMC comes as a precompiled Linux executable with a command line
interface. You can invoke the executable in the bin
subfolder where VMC is installed. For
example:
$ ~/voltvmc/bin/vmc
Or you can add the bin
subfolder to your path and to your login script so you can use the
vmc command directly:
$ export PATH="$PATH:$HOME/voltvmc/bin" $ vmc
For other operating systems, including other Linux variants or platforms such as Microsoft Windows, you can run VMC from the included Java JAR file. For example:
$ java -jar ~/voltvmc/libvmc/volt-vmc-svc.jar
When you start the VMC service without any qualifiers, it assumes it is connecting to a database process on the
current node using the default ports and default settings (for example, no TLS/SSL configuration). In most cases you want to
connect to a database on a different node, possibly using non-default ports and/or configurations. So at a minimum, you will
usually want to specify at least one database server to connect to. For example, assuming the bin
directory has been added to your path:
$ vmc --server=dbsvr1.myorg.com
You can specify multiple servers using a comma-separated list. However, even if you only specify one, the VMC service uses the topology aware Java client to identify and connect to all the servers in the cluster and direct requests appropriately. The next section describes all of the arguments you can use to customize the connection between the VMC service and the database servers.
The vmc command starts an HTML server process that users can connect to for accessing the web-based management console or processing transactions through the JSON HTTP API.
vmc [argument...]
Arguments
Specifies the port to use for connecting to the database server when invoking system procedures or displaying or modifying sensitive information (such as the configuration) with security enabled. The default admin port is 21211.
Displays information about how to use the command.
Specifies the client port to use when accessing the database server. The default client port is 21212.
Specifies the network interface and port the service uses to serve VMC and the JSON HTTP API to users. This is address users connect to from their web browsers to display and interact with the management console. The default public interface is localhost:8080.
Specifies TLS/SSL configuration options for the VMC service itself. In other words, the SSL options users will encounter when they open the VMC console or send a transaction request to the JSON API.
Specifies the network address of one or more database cluster nodes. Separate multiple addresses with commas. The default server is localhost.
Specifies the number of seconds before the VMC session times out. If there is no activity on the VMC session and security is enabled, the user will be prompted to login again after the timeout period expires. The default timeout is 300 seconds.
Specifies the TLS/SSL configuration options for the database server(s).
Displays the software version and exits.