Coder Social home page Coder Social logo

management-center-docker's Introduction

Hazelcast Management Center

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.

Table of Content

Quick Start

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.

Configuration Options

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.

Example configurations

Changing the context path

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.

Mounting Management Center Home Directory

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

Setting up a License Key

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

Enabling TLS/SSL

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.

Changing Logging Level

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.

Using Custom Log4j 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

Starting with an Extra Classpath

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

Enabling Health Check Endpoint

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.

Customizing Container Setup

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.

Start with a Preconfigured Admin User

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

Start with a Preconfigured Cluster

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.

JVM Heap Configuration

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 configuration
  • CONTAINER_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

Configuring Management Center Inside Your Custom Docker Image

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.

Hazelcast Member Configuration

For the Hazelcast member configuration and the sample Hello World example, please refer to Hazelcast Docker repository.

management-center-docker's People

Contributors

alex-dukhno avatar dependabot[bot] avatar devopshazelcast avatar emre-aydin avatar erosb avatar hasancelik avatar jbee avatar kairojya avatar kwart avatar ldziedziul avatar promanenko avatar ps-jay avatar puzpuzpuz avatar scoopex avatar sodik avatar yuraku avatar zhmaeff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

management-center-docker's Issues

Not able to load the RocksDB shared library

Running the default hazelcast/management-center:4.2020.10 image results in the following:

using automatic sizing of heap size by up to 80% of available memory and starting with container support
##################################################
# initialisation complete, starting now....
##################################################
+ exec java --add-opens java.base/java.lang=ALL-UNNAMED -server -Dhazelcast.mc.home=/data -Djava.net.preferIPv4Stack=true -XX:+UseContainerSupport -XX:MaxRAMPercentage=80 -cp /opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar -Dhazelcast.mc.contextPath=/ -Dhazelcast.mc.http.port=8080 -Dhazelcast.mc.https.port=8443 com.hazelcast.webmonitor.Launcher
2020-11-18 15:18:08 [main] INFO  c.h.webmonitor.config.BuildInfo - Hazelcast Management Center 4.2020.10 (20201029 - a78b68f), Jet client version: 4.3, Hazelcast client version: 4.0.3, embedded Jetty version: 9.4.31.v20200723
2020-11-18 15:18:10 [main] INFO  c.h.webmonitor.config.SqlDbConfig - Checking DB for required migrations.
2020-11-18 15:18:10 [main] INFO  c.h.webmonitor.config.SqlDbConfig - Number of applied DB migrations: 6.
2020-11-18 15:18:10 [main] INFO  c.h.w.s.s.impl.DisableLoginStrategy - Login will be disabled for 5 seconds after 3 failed login attempts. For every 3 consecutive failed login attempts, disable period will be multiplied by 10.
2020-11-18 15:18:10 [main] INFO  c.h.w.config.MetricsStorageConfig - Initializing embedded metrics storage.
2020-11-18 15:18:10 [main] WARN  o.s.w.c.s.AnnotationConfigWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mapManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/MapManager.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientNearCacheStatsManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/ClientNearCacheStatsManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
2020-11-18 15:18:10 [main] ERROR o.s.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mapManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/MapManager.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientNearCacheStatsManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/ClientNearCacheStatsManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1013)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:942)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:782)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:360)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:855)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.server.Server.start(Server.java:408)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at com.hazelcast.webmonitor.Launcher.startServer(Launcher.java:138)
	at com.hazelcast.webmonitor.Launcher.start(Launcher.java:107)
	at com.hazelcast.webmonitor.Launcher.main(Launcher.java:102)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientNearCacheStatsManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/ClientNearCacheStatsManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 39 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 53 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:656)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:484)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1338)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 67 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651)
	... 81 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
	at com.hazelcast.webmonitor.metrics.impl.rocksdb.RocksDBLoader.loadLibrary(RocksDBLoader.java:13)
	at com.hazelcast.webmonitor.metrics.impl.rocksdb.RocksDBMetricsRegistry.<init>(RocksDBMetricsRegistry.java:52)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage.<init>(EmbeddedMetricsStorage.java:67)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage.<init>(EmbeddedMetricsStorage.java:46)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage$Builder.build(EmbeddedMetricsStorage.java:362)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig.metricsStorage(MetricsStorageConfig.java:81)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c.CGLIB$metricsStorage$0(<generated>)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c$$FastClassBySpringCGLIB$$98c19adf.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c.metricsStorage(<generated>)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 82 common frames omitted
Caused by: java.lang.RuntimeException: Unable to load the RocksDB shared library
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:66)
	at org.rocksdb.RocksDB.<clinit>(RocksDB.java:34)
	... 98 common frames omitted
Caused by: java.io.IOException: No such file or directory
	at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.base/java.io.File.createNewFile(File.java:1024)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJarToTemp(NativeLibraryLoader.java:95)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:79)
	at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:57)
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:63)
	... 99 common frames omitted
2020-11-18 15:18:10 [main] WARN  o.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext@56835f2f{Hazelcast Management Center,/,[file:///tmp/jetty-0_0_0_0-8080-hazelcast-management-center-4_2020_10_jar-_-@WebApp-13849498169921858024.dir/webinf/, jar:file:///opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/],UNAVAILABLE,@WebApp}{file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar}
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mapManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/MapManager.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientNearCacheStatsManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/ClientNearCacheStatsManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1013)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:942)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:782)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:360)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:855)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.server.Server.start(Server.java:408)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at com.hazelcast.webmonitor.Launcher.startServer(Launcher.java:138)
	at com.hazelcast.webmonitor.Launcher.start(Launcher.java:107)
	at com.hazelcast.webmonitor.Launcher.main(Launcher.java:102)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'clientNearCacheStatsManager' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/ClientNearCacheStatsManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 39 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'metricsService' defined in URL [jar:file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar!/com/hazelcast/webmonitor/service/metrics/MetricsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 53 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metricsStorage' defined in class path resource [com/hazelcast/webmonitor/config/MetricsStorageConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:656)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:484)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1338)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:885)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
	... 67 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.webmonitor.metrics.MetricsStorage]: Factory method 'metricsStorage' threw exception; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651)
	... 81 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
	at com.hazelcast.webmonitor.metrics.impl.rocksdb.RocksDBLoader.loadLibrary(RocksDBLoader.java:13)
	at com.hazelcast.webmonitor.metrics.impl.rocksdb.RocksDBMetricsRegistry.<init>(RocksDBMetricsRegistry.java:52)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage.<init>(EmbeddedMetricsStorage.java:67)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage.<init>(EmbeddedMetricsStorage.java:46)
	at com.hazelcast.webmonitor.metrics.impl.EmbeddedMetricsStorage$Builder.build(EmbeddedMetricsStorage.java:362)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig.metricsStorage(MetricsStorageConfig.java:81)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c.CGLIB$metricsStorage$0(<generated>)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c$$FastClassBySpringCGLIB$$98c19adf.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
	at com.hazelcast.webmonitor.config.MetricsStorageConfig$$EnhancerBySpringCGLIB$$573ef70c.metricsStorage(<generated>)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 82 common frames omitted
Caused by: java.lang.RuntimeException: Unable to load the RocksDB shared library
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:66)
	at org.rocksdb.RocksDB.<clinit>(RocksDB.java:34)
	... 98 common frames omitted
Caused by: java.io.IOException: No such file or directory
	at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.base/java.io.File.createNewFile(File.java:1024)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJarToTemp(NativeLibraryLoader.java:95)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:79)
	at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:57)
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:63)
	... 99 common frames omitted
2020-11-18 15:18:10 [main] INFO  com.hazelcast.webmonitor.Launcher - 

Hazelcast Management Center successfully started at http://localhost:8080/

s390x Image

Hi maintainers,

would like to kindly ask for a s390x image of the management center.

Best Mike

Management Center with Persistent Volume

Management Center with persistent volume example.
docker run -ti -p 8080:8080 -e MANCENTER_DATA="/mancenter" -v /Users/mesutcelik/mc_docker_home:/mancenter hazelcast/management-center:3.9.2

README should be updated. MANCENTER_DATA in start script is actually not needed because we can pass home directorty inside JAVA_OPTS. The other easy option to do is to set a default mc.home directory and expect that is used in mount parameter like -v /Users/mesutcelik/mc_docker_home:/mancenter_home_dir but that will probably fail if no volume is mounted.

Question: Restart CP Subsystem

Hi,

according to:

https://docs.hazelcast.com/imdg/4.1.1/cp-subsystem/management.html

https://docs.hazelcast.com/imdg/4.1.1/management/rest-endpoint-groups.html

CLUSTER_WRITE

/hazelcast/rest/cp-subsystem/restart

CP

/hazelcast/rest/cp-subsystem/reset

Which one is the same when the button "Restart CP Subsystem Restart" is pressed?

https://docs.hazelcast.com/management-center/4.2021.03/monitor-imdg/cluster-administration.html#cp-subsystem

/hazelcast/rest/cp-subsystem/restart does not have any explanation at the manual.

https://docs.hazelcast.org/docs/4.1.1/manual/pdf/index.pdf

Thanks in advance.

The file is locked: nio:/data/sql/mc.mv.db using persistent storage

The management center is not able to start, when it's running with persistent storage since is not able to connect to the DB with the following error

Caused by: java.lang.IllegalStateException: The file is locked: nio:/data/sql/mc.mv.db [1.4.197/7]

since /data is mounted via persistent storage like EFS. Should the connection string avoid this? like

<property name="connection.url">jdbc:h2:./data/contactmgr;DB_CLOSE_ON_EXIT=TRUE;FILE_LOCK=NO</property>

HMC 3.12.12 keeps dying with OOM Java Heap Space after some time when Hazelcast works with large number of topics

kctl describe pod infra-hmc-57f77bd495-czr54
Name: infra-hmc-57f77bd495-czr54
Namespace: default
Priority: 0
Node:
Start Time: Wed, 14 Oct 2020 09:21:35 +0200
Labels: appName=hmc
pod-template-hash=57f77bd495
version=3.12.12
Annotations: kubectl.kubernetes.io/restartedAt: 2020-10-12T16:00:29+02:00
kubernetes.io/psp: restricted
seccomp.security.alpha.kubernetes.io/pod: runtime/default
Status: Running
IP:
IPs:
IP:
Controlled By: ReplicaSet/infra-hmc-57f77bd495
Containers:
hmc:
Container ID: docker://0a3a41bde2236a357c305485fbdf30811d395917b388b8fd2235c2171574cef7
Image: hazelcast/management-center:3.12.12
Image ID: docker-pullable://hazelcast/management-center@sha256:bebce8775ec86718a7a4adef330254b63fd8c94d3becbeca34038b9b17341712
Ports: 8080/TCP, 8081/TCP
Host Ports: 0/TCP, 0/TCP
State: Running
Started: Wed, 14 Oct 2020 13:31:52 +0200
Last State: Terminated
Reason: Error
Exit Code: 3
Started: Wed, 14 Oct 2020 13:14:17 +0200
Finished: Wed, 14 Oct 2020 13:31:50 +0200
Ready: True
Restart Count: 14
Requests:
memory: 4Gi
Environment:
JAVA_OPTS: -Dhazelcast.mc.healthCheck.enable=true -Dhazelcast.mc.allowMultipleLogin=true -XX:+ExitOnOutOfMemoryError
MC_ADMIN_USER:
MC_ADMIN_PASSWORD:
CONTAINER_SUPPORT: false
MIN_HEAP_SIZE: 1024m
MAX_HEAP_SIZE: 4096m
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-4glt8 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-4glt8:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-4glt8
Optional: false
QoS Class: Burstable
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message


Normal Pulling 15m (x15 over 4h25m) kubelet Pulling image "hazelcast/management-center:3.12.12"
Normal Pulled 15m (x15 over 4h25m) kubelet Successfully pulled image "hazelcast/management-center:3.12.12"
Normal Created 15m (x15 over 4h25m) kubelet Created container hmc
Normal Started 15m (x15 over 4h25m) kubelet Started container hmc

Logs:
kctl logs -f infra-hmc-57f77bd495-czr54
########################################

JAVA_OPTS=-Dhazelcast.mancenter.home=/data -Djava.net.preferIPv4Stack=true -Dhazelcast.mc.healthCheck.enable=true -Dhazelcast.mc.allowMultipleLogin=true -XX:+ExitOnOutOfMemoryError -Xms1024m -Xmx4096m

MC_CLASSPATH=/opt/hazelcast/mancenter/hazelcast-mancenter-3.12.12.war

starting now....

########################################

  • exec java --add-opens java.base/java.lang=ALL-UNNAMED -server -Dhazelcast.mancenter.home=/data -Djava.net.preferIPv4Stack=true -Dhazelcast.mc.healthCheck.enable=true -Dhazelcast.mc.allowMultipleLogin=true -XX:+ExitOnOutOfMemoryError -Xms1024m -Xmx4096m -cp /opt/hazelcast/mancenter/hazelcast-mancenter-3.12.12.war Launcher 8080 8443 hazelcast-mancenter
    2020-10-14 11:31:52 [main] INFO c.h.webmonitor.config.BuildInfo - Management Center 3.12.12
    2020-10-14 11:31:52 [main] INFO Launcher - Health check is enabled and available at http://localhost:8081/hazelcast-mancenter/health
    2020-10-14 11:31:56 [main] INFO c.h.w.storage.DiskUsageMonitor - Monitoring /data [mode=purge, interval=1000ms, limit=512 MB]
    2020-10-14 11:31:56 [main] INFO c.h.webmonitor.config.SqlDbConfig - Checking DB for required migrations.
    2020-10-14 11:31:56 [main] INFO c.h.webmonitor.config.SqlDbConfig - Number of applied DB migrations: 2.
    2020-10-14 11:31:56 [main] INFO c.h.w.s.s.impl.DisableLoginStrategy - Login will be disabled for 5 seconds after 3 failed login attempts. For every 3 consecutive failed login attempts, disable period will be multiplied by 10.
    2020-10-14 11:31:57 [main] INFO c.h.webmonitor.config.AppConfig - Creating cache with maxSize=768
    2020-10-14 11:31:58 [main] INFO Launcher - Hazelcast Management Center successfully started at http://localhost:8080/hazelcast-mancenter
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by com.google.gson.internal.ConstructorConstructor (file:/opt/hazelcast/mancenter/hazelcast-mancenter-3.12.12.war) to constructor java.util.Collections$EmptyMap()
    WARNING: Please consider reporting this to the maintainers of com.google.gson.internal.ConstructorConstructor
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    Terminating due to java.lang.OutOfMemoryError: Java heap space

3 Hazelcast nodes, 8 maps, ~85000 topics
In other environments when we have smaller number of topics, HMC seems to be working and not crushing. But when number of topics reaches 10k+ then we have the same situation over and over.

Kubernetes MC cannot connect to Hazelcast cluster

I have both a Hazelcast 4.0.3 cluster and a Management Center 5.0.1 successfully reunning under Kubernetes, the Management Center fails to connect to the Hazelcast cluster of 2 members successfully discovering each other.

Client applications successfully connect to the cluster.
However, the Management Center tries to connecto to the both cluster members in the background but the Hazelcast cluster reports the following:

2021-11-01/15:19:01.763/UTC [hz.dazzling_jepsen.priority-generic-operation.thread-0] WARN com.hazelcast.client.impl.protocol.task.AuthenticationMessageTask - [172.18.17.32]:5701 [dev] [4.0.3] Received auth from Connection[id=104, /172.18.17.32:5701->/172.18.17.115:44821, qualifier=null, endpoint=null, alive=true, connectionType=NONE] with clientUuid 24c48c26-08ab-4546-bee3-08d9099cf860, authentication failed
2021-11-01/15:19:01.767/UTC [hz.dazzling_jepsen.IO.thread-in-1] INFO com.hazelcast.internal.nio.tcp.TcpIpConnection - [172.18.17.32]:5701 [dev] [4.0.3] Connection[id=104, /172.18.17.32:5701->/172.18.17.115:44821, qualifier=null, endpoint=null, alive=false, connectionType=NONE] closed. Reason: Connection closed by the other side

172.18.17.32 is the IP address of the first cluster member POD and 172.18.17.115 is the IP address of the management center POD.

Similar output is found in second cluster member POD.

authentication failed and Connection closed by the other side are the troubling parts that I cannot explain.

I have turned on DEBUG logging on management center but it is recording too much in the console and I am getting lost.

Authentification issue with AD

Hey,

It's probably not an issue but I couldn't find any solution to my problem.
I'm using Management Center 3.11.3 in production (can't upgrade because my Micro Services uses a Hazelcast version 3.11.0).

There's a been a change in the UPN of our companie which leads our users to not be able anymore to get logged in the management center.

Before the change : the UPN suffix was equals to the DN.
Example : the domain was "oneLove.com" et UPN was "[email protected]"
So, the authentification did work great just using john_doe as username.

Now, the domain is still the same "oneLove.com" BUT the UPN is "[email protected]"
(Let's assume that my company loves BobMarley)

=> with username "john_doe" , it do not work anymore.
=> using "[email protected]" as a username do not work neither (but it works great using Management Center latest)

Here's my ldap.properties file


#Management center Active Directory configuration  
url=ldaps\://{{url_ldap}}\:636   
domain=onelove.com  
username=  
#userGroup=MancenterUser  
#userSearchFilter=user\={0}  
userSearchFilter=(&(objectClass=)(userPrincipalName={0}))  
startTls=false  
type=ACTIVE_DIRECTORY  
groupDn=  
#metricsOnlyGroup=MancenterMetricsOnlyUser  
userDn=  
groupSearchFilter=uniquemember\={0}  
password=  
readonlyUserGroup=HAZELCAST_RO  
adminGroup=HAZELCAST_ADMIN  

Would you have any idea on how I could make the things work ?

Regards,
Geoff

Consider including client discovery plugins into MC 4.0+ image

Many users may want to run containerized MC 4.0 in Kubernetes or other environments (say, AWS). At the moment MC 4.0 uses base IMDG artifact and which lacks plugins like the k8s one. We should consider including plugins into the image (i.e. into MC_CLASSPATH) by the default.

To give more context, here is a primitive image that is built on top of MC image and includes k8s plugin:

FROM hazelcast/management-center:4.0

RUN wget -O ${MC_HOME}/hazelcast-kubernetes.jar \
          https://repo1.maven.org/maven2/com/hazelcast/hazelcast-kubernetes/2.0.1/hazelcast-kubernetes-2.0.1.jar

ENV MC_CLASSPATH "${MC_HOME}/hazelcast-kubernetes.jar"

CMD ["bash", "/mc-start.sh"]

cc @emre-aydin

failed to register layer: ApplyLayer exit status 1 stdout: stderr: open /var/lib/dpkg/info/gcc-8-base:amd64.list: invalid argument.

  • This is a bug report
  • This is a feature request
  • I searched existing issues before opening this one

Expected behavior

docker run -p 8080:8080 hazelcast/management-center

Actual behavior

[xxx@xxx xxx]$ docker run -p 8080:8080 hazelcast/management-center
Unable to find image 'hazelcast/management-center:latest' locally
latest: Pulling from hazelcast/management-center
096ebeedeeb6: Extracting [==================================================>] 26.57MB/26.57MB
3ac6aea685cb: Download complete
d1b0083010f5: Download complete
acc1dbecb164: Download complete
83a5fcbdde9d: Download complete
6741f9e1ab31: Download complete
923cc8754bc4: Download complete
87eb545149a1: Download complete
ef239334f6ec: Download complete
6e92c411b9d7: Download complete
latest: Pulling from hazelcast/management-center
096ebeedeeb6: Extracting [==================================================>] 26.57MB/26.57MB
3ac6aea685cb: Download complete
d1b0083010f5: Download complete
acc1dbecb164: Download complete
83a5fcbdde9d: Download complete
6741f9e1ab31: Download complete
923cc8754bc4: Download complete
87eb545149a1: Download complete
ef239334f6ec: Download complete
6e92c411b9d7: Download complete
docker: failed to register layer: ApplyLayer exit status 1 stdout: stderr: open /var/lib/dpkg/info/gcc-8-base:amd64.list: invalid argument.
See 'docker run --help'.

Steps to reproduce the behavior

Output of docker version:

Docker version 19.03.12, build 48a66213fe

Output of docker info:

Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 19.03.12
 Storage Driver: vfs
 Logging Driver: json-file
 Cgroup Driver: none
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
  rootless
 Kernel Version: 5.8.10-200.fc32.x86_64
 Operating System: Fedora 32 (Workstation Edition)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.53GiB
 Name: localhost.localdomain
 ID: RZTG:MDW2:R76W:526B:IUT4:NLWJ:IJQM:NWKS:MFER:CPP3:6TWT:77V2
 Docker Root Dir: /run/.ro862781557/media/low/2D97AD940A9AD661
 Debug Mode: false
 Username: suiwenfeng
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Additional environment details (AWS, VirtualBox, physical, etc.)

Invalid MC_RUNTIME env var

Hi ๐Ÿ‘‹
Since #35, the docker image tagged with "latest" is broken.
The specified jar file does not exist within the docker image, only the war one. Thus leading to the following error

+ exec java --add-opens java.base/java.lang=ALL-UNNAMED -server -Dhazelcast.mc.home=/data -Djava.net.preferIPv4Stack=true -XX:+UseContainerSupport -XX:MaxRAMPercentage=80 -cp /opt/hazelcast/management-center/hazelcast-management-center-4.0.3.jar -Dhazelcast.mc.contextPath=/ -Dhazelcast.mc.http.port=8080 -Dhazelcast.mc.https.port=8443 com.hazelcast.webmonitor.Launcher
Error: Could not find or load main class com.hazelcast.webmonitor.Launcher
Caused by: java.lang.ClassNotFoundException: com.hazelcast.webmonitor.Launcher

We have an automated CI that just failed because of this error, see here

Reproduction steps:

docker run hazelcast/management-center

Workaround

docker run -e MC_RUNTIME=/opt/hazelcast/management-center/hazelcast-management-center-4.0.3.war hazelcast/management-center

Upload XML client config does not work in MC 4.0

Steps to reproduce:

  1. Run docker run -p 8080:8080 hazelcast/management-center:4.0
  2. Configure security provider and then go to Add Cluster Config
  3. Upload the following XML client config:
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast-client xmlns="http://www.hazelcast.com/schema/client-config"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.hazelcast.com/schema/client-config
                  http://www.hazelcast.com/schema/client-config/hazelcast-client-config-4.0.xsd">
    <cluster-name>Cluster B</cluster-name>

    <network>
        <cluster-members>
            <address>127.0.0.1:5701</address>
            <address>127.0.0.2:5702</address>
        </cluster-members>
    </network>
</hazelcast-client>

Expected result:
Config is successfully created (just like it happens with java -jar scenario)

Actual result:
An error happens with the following log output:

2020-02-18 06:54:21 [qtp1357563986-16] WARN  org.eclipse.jetty.server.HttpChannel - /api/clusters
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.hazelcast.core.HazelcastException: org.xml.sax.SAXParseException; schema_reference.4: Failed to read schema document 'null', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
        ...
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.hazelcast.core.HazelcastException: org.xml.sax.SAXParseException; schema_reference.4: Failed to read schema document 'null', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
	at com.hazelcast.internal.util.ExceptionUtil.lambda$static$0(ExceptionUtil.java:39)
	at com.hazelcast.internal.util.ExceptionUtil.peel(ExceptionUtil.java:122)
	at com.hazelcast.internal.util.ExceptionUtil.peel(ExceptionUtil.java:67)
	at com.hazelcast.internal.util.ExceptionUtil.rethrow(ExceptionUtil.java:127)
	at com.hazelcast.client.config.XmlClientConfigBuilder.build(XmlClientConfigBuilder.java:159)
	at com.hazelcast.client.config.XmlClientConfigBuilder.build(XmlClientConfigBuilder.java:150)
	at com.hazelcast.client.config.XmlClientConfigBuilder.build(XmlClientConfigBuilder.java:145)
	at com.hazelcast.webmonitor.repositories.sql.ClusterRepository.parseClientConfigFile(ClusterRepository.java:176)
	at com.hazelcast.webmonitor.repositories.sql.ClusterRepository.add(ClusterRepository.java:47)
	at com.hazelcast.webmonitor.service.ClusterManager.add(ClusterManager.java:90)
	at com.hazelcast.webmonitor.controller.api.ClusterController.addCluster(ClusterController.java:126)
	...
	... 77 common frames omitted

Kubernetes cannot probe Management Center for health

Port 8081 is not exposed

Cannot use

env:
 - name: hazelcast.mc.healthCheck.enable
    value: true

&

livenessProbe:
 httpGet:
  path: /hazelcast-mancenter/health
  port: 8081
readinessProbe:
 httpGet:
  path: /hazelcast-mancenter/health
  port: 8081

Security vulnerabilities with alpine:3.12.1

MC 4.2020.12 uses FROM alpine:3.12.1 AS builder

Alpine 3.12.1 fails security scan (2021-01-25) with 5 known security vulnerabilities

ALPINE-CVE-2020-28928
ALPINE-CVE-2020-1971
ALPINE-CVE-2020-29361
ALPINE-CVE-2020-29362
ALPINE-CVE-2020-29363

Add MC_ADMIN_USER and MC_ADMIN_PASSWORD environment variables

When these two are present, we will create the default admin user with the specified credentials before container start.

We might also consider creating a default user named admin with an auto-generated password that's printed to the console during container start when these two variables are not present. -> this will not be necessary, as we will add a no-op security provider to MC soon.

See this PR for the background discussion.

Clarify -H usage in mc-conf commands in the README

This is the least we should do. If we can find a better way to integrate mc-conf commands into the container startup without passing the -H option (maybe detecting we're in a container in mc-conf and setting the home directory automagically to /data), that would be even better.

Starting the default MC Docker image results in error

This is the log from hazelcast/management-center:4.2020.10:

+ exec java --add-opens java.base/java.lang=ALL-UNNAMED -server -Dhazelcast.mc.home=/data -Djava.net.preferIPv4Stack=true -XX:+UseContainerSupport -XX:MaxRAMPercentage=80 -cp /opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar -Dhazelcast.mc.contextPath=/ -Dhazelcast.mc.http.port=8080 -Dhazelcast.mc.https.port=8443 com.hazelcast.webmonitor.Launcher
using automatic sizing of heap size by up to 80% of available memory and starting with container support
##################################################
# initialisation complete, starting now....
##################################################
2020-11-18 15:07:38 [main] INFO  c.h.webmonitor.config.BuildInfo - Hazelcast Management Center 4.2020.10 (20201029 - a78b68f), Jet client version: 4.3, Hazelcast client version: 4.0.3, embedded Jetty version: 9.4.31.v20200723
2020-11-18 15:07:38 [main] WARN  o.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext@3e58a80e{/,null,UNAVAILABLE,@WebApp}{file:/opt/hazelcast/management-center/hazelcast-management-center-4.2020.10.jar}
java.lang.IllegalStateException: Temp dir /tmp/jetty-0_0_0_0-8080-hazelcast-management-center-4_2020_10_jar-_-@WebApp-8354392190745654509.dir not useable: writeable=false, dir=false
	at org.eclipse.jetty.webapp.WebInfConfiguration.configureTempDirectory(WebInfConfiguration.java:547)
	at org.eclipse.jetty.webapp.WebInfConfiguration.makeTempDirectory(WebInfConfiguration.java:519)
	at org.eclipse.jetty.webapp.WebInfConfiguration.resolveTempDirectory(WebInfConfiguration.java:468)
	at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:138)
	at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:488)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:523)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.server.Server.start(Server.java:408)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at com.hazelcast.webmonitor.Launcher.startServer(Launcher.java:138)
	at com.hazelcast.webmonitor.Launcher.start(Launcher.java:107)
	at com.hazelcast.webmonitor.Launcher.main(Launcher.java:102)
2020-11-18 15:07:38 [main] INFO  com.hazelcast.webmonitor.Launcher - 

Hazelcast Management Center successfully started at http://localhost:8080/

The reason is that RocksDB is not allowed to write in the /tmp directory. The workaround is to set the ROCKSDB_SHAREDLIB_DIR environment variable to a writable directory.

But the default image should not require any change.

Improve merge and build process of BC-breaking changes

Currently whenever a PR is merged, the change gets deployed to dockerhub (tagged as latest). This is a problem when a change is merged which applies to an upcoming release in a non-backward-compatible way, ie. the changed Dockerfile is supposed to work with the next released MC version, but not with the current one. This caused #36 (and some other defects in the past).

Possible solution: create a develop branch from master, and from now on merge all PRs related to any upcoming release into the develop branch (backward-compatible / patch-level changes can keep going into master), and merge develop into master only during the release (which means it will get built & pushed to DockerHub only when the new MC artifacts are already available on download.hazelcast.com).

Setting up security provider AD with mc-conf.sh fails

I've been struggling with this as it's not well documented mc-conf with useful examples. Nothing I seems to get this configured for AD. I got desperate and tried to set it to 'Dev Mode' so I could just handle it manually though the gui and still no go.

I am working with 4.2021.03

For that, I tried passing this into the container

MC_INIT_CMD=./bin/mc-conf.sh security reset && ./bin/mc-conf.sh dev-mode configure

The point is to go back and configure it for AD. In 3.x, I used a security.properties and ldap.properties to handle this in automation. That doesn't appear to do anything and the provider is stuck on default.

I've passed the mc-conf.sh active-directory configure and still stuck on provider default.

Is there a 'best way' handled setting up active-directory via automation? I'm OK with handling this in the Dockerfile (saw an example).

Note: I even tried the /data/import/securityHotReload.properties and that never comes up on the login (to reload)

Does this even work at all? Some working example somewhere? Help!

Service URL gives a 404

If you have a Kubernetes service bound to the Management Center, and do something like

minikube service management-center

you get an HTTP 404.

This is because ManCenter uses "/hazelcast-mancenter" not "/" as it's base context.

You can work around with

minikube service my-service --format "http://{{.IP}}:{{.Port}}/hazelcast-mancenter"

but it's hardly obvious.

Since this is a Docker container we know it's a standalone deployment, so if "/" could somehow could redirect, it'd save confusion

Can't find Topics and Clients in Management center

We're currently experimenting with Hazelcast management center (not the enterprise version) and we just have one Hazelcast node.

Our application uses lot of Hazelcast topics and we also have around 5 clients connected to Hazelcast server. But in management center, we find Topics and Clients empty.

We're using the version 3.9.1 and management center has been deployed though the jar file - not through docker.

Is it because they'll be part of enterprise version but not free version? Or there's some issue?

Thank You.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.