Core Docker
Startup arguments
| Argument | Description |
|---|---|
|
Display help with available arguments. |
|
Start the process in the foreground and use existing data and configuration. |
|
One-time command to initialize or update database and configuration files and do NOT start. |
|
Command to initialize or update database and configuration files and start OpenNMS in the foreground. |
|
One-time command to run the config-tester against the configuration. |
Environment variables
Environment variable |
Description |
Required |
Default value |
|
Allows you to add additional Java options. |
optional |
|
|
Enable the JMX Prometheus Exporter agent. |
required |
|
|
TCP port for the JMX Prometheus Exporter. |
optional |
|
|
Path to the JMX Prometheus Exporter configuration file |
optional |
|
|
Path to the JMX Prometheus agent |
optional |
|
By default, the JVM temp directory (java.io.tmpdir) is ${OPENNMS_HOME}/tmp and the embedded ActiveMQ
broker’s on-disk store (activemq.data) is ${OPENNMS_HOME}/var/activemq. To use different paths, pass them
via JAVA_OPTS, e.g. JAVA_OPTS="-Djava.io.tmpdir=/some/path -Dactivemq.data=/some/other/path".
|
| Environment variable | Description | Required | Default value |
|---|---|---|---|
|
Database name used for Meridian Core instance |
required |
- |
|
Username with access to the database |
required |
- |
|
Password for user with access to the database |
required |
- |
|
Host with the PostgreSQL server instance running |
required |
- |
|
PostgreSQL super user to initialize database schema specified in |
required |
- |
|
PostgreSQL super user password |
required |
- |
|
PostgreSQL server port |
optional |
|
|
Encryption for database communication |
optional |
|
|
PostgreSQL SSL factory for certificate validation |
optional |
|
|
Global database connection pool idle timeout |
optional |
|
|
Global database connection pool login timeout |
optional |
|
|
Global minimal connection pool size |
optional |
|
|
Global maximum connection pool size |
optional |
|
|
Global maximum connections |
optional |
|
| Environment variable | Description | Required | Default value |
|---|---|---|---|
|
Used Timeseries storage strategy |
optional |
|
|
Store timeseries data by foreign source instead of the database node id |
optional |
|
|
Java RRD Strategy class |
optional |
|
|
Java RRD Interface library |
optional |
|
|
JRRD2 library path |
optional |
|
| Environment variable | Description | Required | Default value |
|---|---|---|---|
|
Listen interface for SNMP Trapd |
optional |
|
|
Port to listen for SNMP traps |
optional |
|
|
Create new suspect event-based trap recipient for unknown devices. |
optional |
|
|
Preserve raw messages in SNMP traps. |
optional |
|
|
Set maximum thread size to process SNMP traps. |
optional |
|
|
Set maximum queue for SNMP trap processing. |
optional |
|
|
Set batch size for SNMP trap processing. |
optional |
|
|
Set batch processing interval in milliseconds. |
optional |
|
The earlier names OPENNMS_TRAPD_NEWSUSPECTONTRAP, OPENNMS_TRAPD_INCLUDERAWMESSAGE, OPENNMS_TRAPD_QUEUESIZE, OPENNMS_TRAPD_BATCHSIZE, and OPENNMS_TRAPD_BATCHINTERVAL are still accepted as a fallback.
If both the old and new name are set, the new name wins.
|
The Trapd variables only take effect when the database is first initialized or upgraded.
At that point, the database installer imports etc/trapd-configuration.xml into the database and moves the file to etc_archive/.
From then on, Meridian reads the Trapd configuration from the database, so changing these variables does not affect the running Trapd configuration.
To change the Trapd configuration of an existing installation, use the Integrations → Trap Configuration page or the Trapd REST API (v2).
|
The container still writes etc/trapd-configuration.xml from these variables at every startup.
The legacy REST v1 endpoint /rest/config/trapd reads that file, so it can show values that differ from the configuration Trapd actually uses.
Use the REST v2 API to see the active configuration.
If the database is reset, the installer imports the newly written etc/trapd-configuration.xml again, so the current variable values apply once more.
|
| Environment variable | Description | Required | Default value |
|---|---|---|---|
|
Listen interface for Karaf shell. |
optional |
|
|
SSH port for Karaf shell. |
optional |
|
| Environment variable | Description | Required | Default value |
|---|---|---|---|
|
Set Cassandra replication factor for the newts keyspace if Newts is used. |
optional |
|
|
A comma-separated list with Cassandra hosts for Newts |
optional |
|
|
Name of the keyspace used by Newts |
optional |
|
|
Cassandra server port |
optional |
|
|
Username with access to Cassandra |
optional |
|
|
Password for user with access to Cassandra |
optional |
|
|
Set this to the value of your local datacenter for the best performance |
optional |
|
The service toggles below are read by Meridian itself from the placeholders in service-configuration.xml, so they work the same way outside containers.
Any value other than true (in any case) disables the service.
The Manager and Eventd services are always enabled.
| Environment variable | Description | Default value |
|---|---|---|
|
Enable the Alarm daemon. |
|
|
Enable Business Service monitoring. |
|
|
Enable the Ticketer service. |
|
|
Enable the event correlator. |
|
|
Enable the Queued service. |
|
|
Enable the Action daemon. |
|
|
Enable the Notification daemon. |
|
|
Enable the Script daemon. |
|
|
Enable the Real-Time Console daemon. |
|
|
Enable the Poller daemon. |
|
|
Enable the SNMP Poller. |
|
|
Enable Enhanced Linkd. |
|
|
Enable the Collector daemon. |
|
|
Enable auto-discovery. |
|
|
Enable the Vacuum daemon. |
|
|
Enable the Event Translator. |
|
|
Enable the Passive Status daemon. |
|
|
Enable the Statistics daemon. |
|
|
Enable the Provisioning daemon. |
|
|
Enable the Acknowledgment daemon. |
|
|
Enable the embedded Jetty web server. |
|
|
Enable the Karaf startup monitor. |
|
|
Enable the Syslog daemon. |
|
|
Enable the Telemetry daemon. |
|
|
Enable the SNMP Trap daemon. |
|
|
Enable the Perspective Poller. |
|
Directory conventions
| Mountpoint | Description |
|---|---|
|
Allows you to overwrite files relative to |
|
Directory with RRDTool files and generated PDF reports sent to the file system. |
JMX Prometheus Exporter
When PROM_JMX_EXPORTER_ENABLED=true and PROM_JMX_EXPORTER_CONFIG is left at its default, the container generates /opt/prom-jmx-exporter/config.yaml at startup from the following variables.
To supply a fully custom configuration (for example, custom rules), mount your own file and set PROM_JMX_EXPORTER_CONFIG to its path.
A file you mount at the default path is used as is and never overwritten.
Nothing is generated while the exporter is disabled.
| Environment variable | Description | Default value |
|---|---|---|
|
Delay in seconds before the exporter starts scraping. |
|
|
Lowercase metric output names. |
|
|
Lowercase label names. |
|
|
Automatically exclude object name attributes. |
|
Migrating from confd
Earlier images rendered the configuration files above with confd, which read the same environment variables. Most variable names are unchanged, so existing deployments keep working. When upgrading, note the following:
-
The five Trapd variables listed above were renamed. The old names are still accepted as a fallback.
-
The Trapd variables are imported into the database only when the database is initialized or upgraded; later changes do not affect the running configuration. This was also the case with confd. See the note under the Trapd variables above.
-
OPENNMS_NOTIFD_SLACK_CHANNELandOPENNMS_NOTIFD_MATTERMOST_CHANNELare no longer supported, because the Slack and Mattermost notification strategies were removed. Use the webhook notification strategy instead, as described in Migrating from Slack and Mattermost. -
Legacy
_confd.*.propertiesfiles left in a mountedetc/volume are removed at startup to prevent stale settings. -
A
_confd.<name>.propertiesfile supplied through an overlay still replaces the generated settings, as it did with confd: the matching_container.<name>.propertiesfile is removed and a warning is logged. Rename the file in your overlay to_container.<name>.properties(for example,_container.timeseries.properties) to silence the warning. -
service-configuration.xmlis no longer generated by the container. Meridian reads theCORE_SERVICE_*_ENABLEDvariables directly; any value other thantrue(in any case) disables the service, without an error. -
If you mount a persistent
etc/volume from an earlier image, it still holds theservice-configuration.xmlthat confd wrote, with fixedtrueandfalsevalues. Those values take precedence, so theCORE_SERVICE_*_ENABLEDvariables have no effect, and the container logs aWARNING:that names the ignored variables. To use the variables, replace the file with/opt/opennms/share/etc-pristine/service-configuration.xmland reapply any changes you made to it. -
Boolean and numeric variables (for example,
OPENNMS_TRAPD_*,OPENNMS_CASSANDRA_PORT, andOPENNMS_RRD_STOREBYFOREIGNSOURCE, plusPROM_JMX_*when the exporter config is generated) are validated at startup. Booleans must betrueorfalsein any case (for example,Trueis accepted); other values such as1oryesare rejected. An invalid value prints anERROR:message and the container stops before Meridian starts. The file that uses the invalid value is not written, but files rendered earlier in the same startup may already have been updated.