Hazelcast Management Center enables you to monitor and manage your cluster members running Hazelcast. In addition to monitoring the overall state of your clusters, you can also analyze and browse your data structures in detail, update map configurations and take thread dumps from members. You can run scripts (JavaScript, Groovy, etc.) and commands on your members with its scripting and console modules.
You can check Hazelcast IMDG Documentation and Management Center Documentation for more information.
You can launch Hazelcast Management Center by simply running the following command. Please check available
versions for $MC_VERSION
on Docker Hub.
docker run --rm -p 8080:8080 hazelcast/management-center:$MC_VERSION
Now you can access Hazelcast Management Center from your browser using the URL http://localhost:8080
.
If you are running the Docker image in the cloud, you should use a public IP of your machine instead of localhost
.
Both docker ps
and docker inspect <container-id>
can be used to find host-ip
. Once you find out host-ip
,
you can browse Hazelcast Management Center using the URL: http://host-ip:8080
.
By default, the container automatically sizes the Java heap memory suitable to the specified resource limit or available memory.
In Management Center version 5.1 and later, system properties and environment variables can be used interchangeably. The complete reference of available settings is available in the Management Center Reference Manual. Below you can find example configurations common in docker environments.
By default, Management Center uses the root context path (/
) as default. You can override it with the MC_CONTEXT_PATH
environment variable.
Example:
docker run --rm -p 8080:8080 --env MC_CONTEXT_PATH=/hz-mc hazelcast/management-center:$MC_VERSION
Management Center will be accessible at http://host-ip:8080/hz-mc
Note: in Management Center 3.x the default context path was /hazelcast-mancenter
.
Management Center uses the file system to store persistent data. However, that is by default inside the Docker
container and destroyed in case of container restarts. If you want to store Management Center data externally,
you need to create a mount to a folder named /data
. See the following for how to create a mount point.
PATH_TO_PERSISTENT_FOLDER
must be replaced by your persistent folder.
docker run --rm -p 8080:8080 -v PATH_TO_PERSISTENT_FOLDER:/data hazelcast/management-center:$MC_VERSION
To provide a license key, the command line argument you can use the MC_LICENSE
environment variable:
docker run --rm --env MC_LICENSE='<license-key>' -p 8080:8080 hazelcast/management-center:$MC_VERSION
To enable TLS/SSL, you need to provide the keystore and expose the default port (8443
):
docker run --rm \
-e JAVA_OPTS='-Dhazelcast.mc.tls.enabled=true \
-Dhazelcast.mc.tls.keyStore=/keystore/yourkeystore.jks \
-Dhazelcast.mc.tls.keyStorePassword=yourpassword' \
-v PATH_TO_KEYSTORE_DIR:/keystore \
-p 8443:8443 \
hazelcast/management-center:$MC_VERSION
The default port can be changed by overriding the MC_HTTPS_PORT
environment variable. For example,
you can run the following command to use port 8444
:
docker run --rm -e MC_HTTPS_PORT=8444 \
-e JAVA_OPTS='-Dhazelcast.mc.tls.enabled=true \
-Dhazelcast.mc.tls.keyStore=/keystore/yourkeystore.jks \
-Dhazelcast.mc.tls.keyStorePassword=yourpassword' \
-v PATH_TO_KEYSTORE_DIR:/keystore \
-p 8444:8444 \
hazelcast/management-center:$MC_VERSION
Please refer to Management Center Reference Manual for more information on available options.
The logging level can be changed using the LOGGING_LEVEL
environment variable. For example, to see the DEBUG
logs:
$ docker run --env LOGGING_LEVEL=DEBUG hazelcast/management-center:$MC_VERSION
Available logging levels are (from highest to lowest): OFF
, FATAL
, ERROR
, WARN
, INFO
, DEBUG
, TRACE
and ALL
.
Invalid levels will be assumed OFF
.
Note that if you need a more customized logging configuration, you can specify a configuration file.
Management Center can use your custom Log4j configuration file. You need to create a mount to a folder named
/opt/hazelcast/mc_ext
, see the following on how to do it. PATH_TO_PERSISTENT_FOLDER
must be replaced with
the path to the folder that your custom Log4j configuration file resides in. CUSTOM_LOG4J_FILE
must be
replaced with the name of your custom Log4j configuration file, for example log4j2-custom.properties
.
docker run --env JAVA_OPTS='-Dlog4j.configurationFile=/opt/hazelcast/mc_ext/CUSTOM_LOG4J_FILE' \
-v PATH_TO_LOCAL_FOLDER:/opt/hazelcast/mc_ext \
-p 8080:8080 \
hazelcast/management-center:$MC_VERSION
You can start Management Center with an extra classpath entry (for example, when using JAAS authentication)
by using the MC_CLASSPATH
environment variable:
docker run --env MC_CLASSPATH='/path/to/your-extra.jar' -p 8080:8080 hazelcast/management-center:$MC_VERSION
When running Management Center, you can enable the Health Check endpoint:
docker run -p 8080:8080 -p 8081:8081 \
--env MC_HEALTH_CHECK_ENABLE=true \
hazelcast/management-center:$MC_VERSION
You can use this endpoint with container orchestraction systems, like Kubernetes. Refer to Management Center Reference Manual for more information.
You can make modifications to the container on container startup by defining environment variables.
MC_INIT_CMD
: Execute one or more commands separated by semicolons.MC_INIT_SCRIPT
: Execute a script in Bash syntax.
Make this file available by layering to a new container or by assigning a Docker volume.The commands defined by the variables are executed before starting the Management Center in the listed order.
You can start Management Center with an administrative user by setting the following optional environment variables:
docker run --name hazelcast-mc \
--env MC_ADMIN_USER=admin \
--env MC_ADMIN_PASSWORD=myPassword11 \
--rm hazelcast/management-center:$MC_VERSION
You can start Management Center with a preconfigured cluster by setting the following optional environment variables:
docker run --name hazelcast-mc \
--env MC_DEFAULT_CLUSTER=my-cluster \
--env MC_DEFAULT_CLUSTER_MEMBERS=192.168.0.10,192.168.0.11 \
--rm hazelcast/management-center:$MC_VERSION
MC_DEFAULT_CLUSTER_MEMBERS
contains a comma-separated list of the cluster member addresses. MC_DEFAULT_CLUSTER
contains the cluster
name and defaults to dev
if not provided.
By default, the container uses -XX:+UseContainerSupport -XX:MaxRAMPercentage=80
Java options to automatically size
the memory available to the JVM. If you don't use the memory resource limit (i.e. docker run -m 512m ...
, or the
limit of a Docker orchestration solution like
Kubernetes), the container might
use up to 80% percent of the available system memory.
You can define the following variables to change this behavior:
CONTAINER_SUPPORT="true"
(default) : use automatic memory resource configurationCONTAINER_SUPPORT="false"
: suppress automatic resource configuration and configure the limits by using the
following environment variables:
MIN_HEAP_SIZE
: set the minium heap by -Xms ...
MAX_HEAP_SIZE
: set the maximum heap by -Xmx ...
JAVA_OPTS
: use a custom configuration like -Xms64m -Xmn1024m -Xmx2G -XX:MaxGCPauseMillis=200
Example:
docker run --rm --name hazelcast-mc \
--env CONTAINER_SUPPORT='false' \
--env MIN_HEAP_SIZE='512M' \
--env MAX_HEAP_SIZE='1024M' \
--env JAVA_OPTS='-XX:MaxGCPauseMillis=200' \
hazelcast/management-center:$MC_VERSION
You can create a Docker image with hazelcast/management-center
as the base image and configure it further
using hz-mc conf
.
For example:
FROM hazelcast/management-center:$MC_VERSION
# Preconfigure cluster connections
ENV MC_DEFAULT_CLUSTER="my-cluster"
ENV MC_DEFAULT_CLUSTER_MEMBERS="192.168.0.10,192.168.0.11"
# Start Management Center
CMD ["bash", "-c", "set -euo pipefail \
&& ./bin/hz-mc conf user create -n admin -r admin -p s3cr3tP@ss \
&& ./bin/hz-mc start \
"]
Note: if you use Management Center 5.0.x or older, then you have to use ./bin/mc-conf.sh
instead of ./bin/hz-mc conf
.
For the Hazelcast member configuration and the sample Hello World example, please refer to Hazelcast Docker repository.