Configuration
Operational guidance for Configuration in Fortified ID Access deployments.
Configure the JVM
Section titled “Configure the JVM”There are two ways to provide system properties and JVM options to the JVM process running inside a Docker container.
1. Predefined JVM scenarios
Section titled “1. Predefined JVM scenarios”Select from a set of predefined scenarios by setting the environment variable JVM_CONFIG to a comma-separated list of scenario IDs. See table below for available scenarios.
Pay attention to environment variables in the property sets, since they must be provided at runtime.
| Scenario ID | Properties |
|---|---|
| JMX_REMOTE | com.sun.management.jmxremote=true com.sun.management.jmxremote.port=7091 com.sun.management.jmxremote.rmi.port=7091 com.sun.management.jmxremote.local.port=7092 com.sun.management.jmxremote.authenticate=false com.sun.management.jmxremote.ssl=false java.rmi.server.hostname=$RMI_SERVER_HOSTNAME |
| JMX | fortifiedid.metrics.jmx.enabled=true fortified.vertx.config.path=config/jmx/vertx-config.json |
| PROMETHEUS | fortifiedid.metrics.prometheus.enabled=true fortified.vertx.config.path=config/prometheus/vertx-config.json |
Example:
docker run -e JVM_CONFIG=jmx,jmx_remote -e RMI_SERVER_HOSTNAME=192.168.0.10 -p 8080:8080 -p 7091:7091 --detach --name integrity fortifiedid.jfrog.io/docker/fortifiedid/integrity-access:<version> -c Node config/config.json2. Custom JVM configuration
Section titled “2. Custom JVM configuration”Define a custom set of system properties and JVM options. To accomplish this, use the docker volumes to override the file
/opt/fortifiedid/integrity/bin/default/java.config
at runtime. In this case, all mandatory properties and options must be provided, since no other items will be provided by the system.
Example:
docker run -v /path/to/java.config:/opt/fortifiedid/integrity/bin/default/java.config -p 8080:8080 --detach --name integrity fortifiedid.jfrog.io/docker/fortifiedid/integrity:<version> -c Node config/config.jsonConfigure logging
Section titled “Configure logging”The application uses Log4J2 logging. Default configuration is embedded in the Docker image, in the file /opt/fortifiedid/integrity/config/log4j2.xml.
As a convenience, it is possible to set the default log level of this configuration by providing the environment variable LOG_LEVEL at runtime. This variable can be any valid Log4j log level: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF. This log level will affect all loggers.
For finer control over the logging configuration, use docker volumes to override the log configuration file at runtime. Example:
docker run -v /path/to/log4j2.xml:/opt/fortifiedid/integrity/config/log4j2.xml -p 8080:8080 --detach --name integrity fortifiedid.jfrog.io/docker/fortifiedid/integrity:<version> -c Node config/config.jsonThe preferred way to manage application logging from a Docker container is by using an appropriate Docker logging driver.