System Configuration Reference

This is a reference for the system configuration file which is located at $MOOGSOFT_HOME/config/system.conf

It contains the following sections and properties:

Message Bus (MooMs)

Configuration properties relating to the Message Bus, also known as MooMs:

zone

Name of the zone.

Type: String

Required: No

Default: Empty

brokers

Hostname and port number of the RabbitMQ broker:

Type: Array

Required: No

Default: [{ "host" : "localhost", "port" : 5672 }]

username

Username of the RabbitMQ user. This needs to match the RabbitMQ broker configuration. If commented out, it uses the default "guest" user.

Type: String

Required: No

Default: "guest"

password

Password for the RabbitMQ user. You can choose to either have a password or an encrypted password, you cannot use both.

Type: String

Required: Yes. If you are not using encrypted password.

Default: "guest"

encrypted_password

Encrypted password for the RabbitMQ user. You can choose to either have a password or an encrypted password, you cannot use both. See Moog Encryptor if you want to encrypt your password.

Type: String

Required: Yes. If you are not using password.

Default: N/A

threads

Number of threads a process can create in order to consume the messages from the Message Bus. If not specified, the thread limit = (Number of processors x 2) + 1. Altering this limit affects the performance of Moogsoft AIOps processes such as Moogfarmd and Moogpoller.

If your logs indicate an issue in creating threads, Moogsoft advises that you increase the ulimit, the maximum number of file descriptors each process can use, for the Moogsoft AIOps user. You can set this limit in /etc/security/limits.conf.

Type: Integer

Required: No

Default: "10"

message_persistence

Controls whether RabbitMQ persists importance messages or not. Message queues are durable by default and data is replicated between nodes in High Availability mode. Setting this value to false, means that replicated data is not stored to disk.

Type: Boolean

Required: No

Default: "true"

message_prefetch

Controls how many messages a process can take from the Message Bus and store in memory as a buffer for processing. This configuration allows processes to regulate message consumption which can ease backlog and memory consumption issues. The higher the number, the more messages held in the process's memory.

Type: Integer

Required: No

Default: "0"

max_retries

Maximum number of attempts to resend a message that failed to send. Moogsoft AIOps only attempts a retry when there is a network outage or if cache_on_failure is enabled.

You can use this in conjunction with the retry_interval property. For example, a combination of 100 maximum retries and 200 milliseconds for retry interval leads to a total of 20 seconds. The combined default value for these properties was chosen to handle the typical time for a broker failover in a clustered environment.

Type: Integer

Required: No

Default: "100"

retry_interval

Maximum length of time to wait in milliseconds between each attempt to retry and send a message that failed to send.

You can use this in conjunction with the max_retries property. The combined value for these properties was chosen to handle the typical time for broker failover in a clustered environment.

Type: Integer

Required: No

Default: "100"

cache_on_failure

Controls whether Moogsoft AIOps caches the message internally and resends it if there is an initial retry failure. The system attempts to resend any cached messages in the order they were cached until the time-to-live value, defined by the cache_ttl property, is reached.

Type: Boolean

Required: No

Default: "false"

cache_ttl

Length of time in seconds that Moogsoft AIOps keeps cached messages in the cache list before discarding them. If a message is not successfully resent within this timeframe it is still discarded.

This defaults to 900 seconds (15 minutes). Increasing this value has a direct impact on sender process memory.

Type: Integer

Required: No

Default: "900"

confirmation_timeout

Length of time in milliseconds to wait for the Message Bus to confirm that a broker has received a message. Moogsoft does not advise changing this value.

Type: Integer

Required: No

Default: "2000"

Message Bus SSL
ssl_protocol

SSL protocol you want to use. JRE 8 supports "TLSv1.2", "TLSv1.1", "TLSv1" or "SSLv3".

Type: String

Required: No

Default: "TLSv1.2"

server_cert_file

Path to the directory that contains the SSL certificates. You can use a relative path based upon the $MOOGSOFT_HOME directory. For example, config indicates $MOOGSOFT_HOME/config.

Type: String

Required: No

Default: "server.pem"

client_cert_file

Enables client authentication if you provide a client certificate and key file.

Type: String

Required: No

Default: "client.pem"

client_key_file

Enables client authentication if you provide a client key file. The file must be in PKCS#8 format.

Type: String

Required: No

Default: "client.key"

MySQL
host

Host name or server name of the server that is running MySQL.

Type: String

Required: No

Default: "localhost"

moogdb_database_name

Name of the primary Moogsoft AIOps database.

Type: String

Required: No

Default: "moogdb"

reference_database_name

Name of the Moogsoft AIOps reference database.

Type: String

Required: No

Default: "moog_reference"

username

Username of the MySQL user.

Type: String

Required: No

Default: "ermintrude"

encrypted_password

Encrypted password for the MySQL user. See Moog Encryptor if you want to encrypt your password.

Type: String

Required: No

Default: N/A

password

Password for the MySQL user.

Type: String

Required: No

Default: "m00"

port

Port that MySQL uses.

Type: Integer

Required: No

Default: "3306"

maxRetries

Maximum number of MySQL query retries to attempt in the event of a deadlock.

Type: Integer

Required: No

Default: "10"

retryWait

Length of time in milliseconds to wait between retry attempts.

Type: Integer

Required: No

Default: "50"

failover_connections

Hosts and ports for the different servers that are connected to the main host. For example, master-master, master-slave. In the event of connection failover, the connection cannot be read-only (slave).

Type: List

Required: No

Default: N/A

MySQL SSL
trustStorePath

Path to the directory that contains the trustStore you want to use for SSL connections to your MySQL database. You can use a relative path based upon the $MOOGSOFT_HOME directory. For example, config indicates $MOOGSOFT_HOME/config/truststore.

Type: String

Required: No

Default: "etc/truststore"

trustStoreEncryptedPassword

Your encrypted trustStore password.

Type: String

Required: No

Default: "vQj7/yom7e5ensSEb10v2Rb/pgkaPK/4OcUlEjYNtQU="

trustStorePassword

Your trustStore password.

Type: String

Required: No

Default: "moogsoft"

connection_timeout

Length of time in milliseconds before the connection to the Elasticsearch server times out.

Type: Integer

Required: No

Default: "1000"

request_timeout

Length of time in milliseconds before an Elasticsearch request times out.

Type: Integer

Required: No

Default: "1000"

limit

Maximum number of search results that Elasticsearch returns.

Type: Integer

Required: No

Default: "1000"

nodes

Hosts and ports for the different Elasticsearch servers connected in a cluster.

Type: Array

Required: No

Default: {"host" : "localhost", "port" : 9200}]

Failover
persist_state

Enable or disable the persistence of the state of all Moolets in the event of a failover.

Type: Boolean

Required: No

Default: "false"

network_port

Port to connect to on each specified host in your Hazelcast cluster.

Type: Integer

Required: No

Default: "5701"

auto_increment

Enable for Hazelcast to attempt to connect to the next incremental available port number if the configured port is unavailable.

Type: Boolean

Required: No

Default: "true"

hosts

List of hosts that can participate in the cluster.

Type: Array

Required: No

Default: ["localhost"],

man_center

Specifies the cluster information that you can view in the Hazelcast Management Center UI.

Type: List

Required: No

Default: {"enabled" : false, "host" : "localhost", "port" : 8091}

cluster_per_group

Enable the stateful information from each process group to persist in a dedicated Hazelcast cluster.

Type: Boolean

Required: No

Default: false

Moogfarmd Failover
keepalive_interval

Time interval in seconds at which processes report their active or passive status and check statuses of other processes.

Type: Integer

Required: No

Default: 5

margin

Amount of time in seconds after keepalive_interval before Moogsoft AIOps considers processes that do not report their status to be dead.

Type: Integer

Required: No

Default: 10

failover_timeout

Number of seconds to wait for previously active process to become passive during a manual failover.

Type: Integer

Required: No

Default: 10

automatic_failover

Allow a passive process to automatically become active if no other active processes are detected in the same process group.

Type: Boolean

Required: No

Default: false

heartbeat_failover_after

Number of consecutive heartbeats that a process fails to send before Moogfarmd considers it inactive.

Type: Integer

Required: No

Default: 2

Process Monitor
heartbeat

Interval in milliseconds between heartbeats sent by processes.

Type: Integer

Required: Yes

Default: 10000

max_heartbeat_delay

Number of milliseconds to wait before declaring heartbeat as missing. Defaults to 10% of the heartbeat.

Type: Integer

Required: No

Default: 1000

Processes

Groups of processes that you want to be able to stop, start and restart from Self Monitoring in the Moogsoft AIOps UI. For each group you can configure the following options:

group_name

Name of the process group that Moogsoft AIOps uses when it starts and stops the service.

Type: String

Required: Yes

Default: N/A

instance

Name of the instance for the process.

Type: String

Required: Yes

Default: N/A

display_name

Additional identification label that appears in the UI.

Type: String

Required: No

Default: N/A

cluster

Name of the process's cluster. This overrides the default cluster for a process. If left empty, the Moogsoft AIOps uses the process's default cluster.

Type: String

Required: No

Default: N/A

service_name

Name of the service script that Moogsoft AIOps uses to control the process. If you do not configure a service name, Moogsoft AIOps uses the group name, removing underscores and appending a 'd'. For example, "traplam" becomes "traplamd".

Type: String

Required: No

Default: N/A

process_type

Type of process. If left empty, Moogsoft AIOps calculates the type based on the group name.

Type: String

Required: No

One of: moog_farmd, servlet, LAM

Default: N/A

reserved

Determines if the process produces a warning in the UI when it is running. Processes that are unreserved do not produce a warning.

Type: Boolean

Required: No

Default: true

subcomponents

Specifies which Moolets are reserved for the Moogfarmd process. If left empty, no Moolets are reserved for the Moogfarmd process.

Type: Array

Required: No

Default: N/A

Encryption
encryption_key_file

Default location of the encryption key file.

Type: String

Required: No

Default: "/location/of/.key"

High Availability (HA)
cluster

Default HA cluster name.

Type: String

Required: No

Default: "MOO"

Webhost
webhost

Default hostname that the LAMs use. Do not enter the port number or protocol here.

Type: String

Required: No

Default: "localhost"

Port Range
port_range_min

Minimum port number in the range that the Moogsoft AIOps services use when they look for open ports.

Type: String

Required: No

Default: "50000"

port_range_max

Maximum port number in the range that the Moogsoft AIOps services use when they look for open ports.

Type: String

Required: No

Default: "51000"