System Configuration

You can configure the various components of Moogsoft Enterprise using the system configuration file.

Configure your system

Edit the configuration file to control the behavior of the different components in your Moogsoft Enterprise system. You can find the file at $MOOGSOFT_HOME/config/system.conf.

See the System Configuration Reference for a full description of all properties. Some properties in the file are commented out by default. Uncomment properties to configure and enable them.

Message Bus

You can edit your Message Bus and RabbitMQ configuration in the mooms section of the file. It allows you to:

  • Configure your Message Bus zones and brokers.

  • Control and minimize message loss during a failure.

  • Control how senders handle Message Bus failures.

  • Control what happens during periods of extended Message Bus unavailability.

  • Configure the SSL protocol you want to use.

  • Specify the number of connections to use for each message sender pool.

For more information see the Message Bus documentation.

Database

You can edit your database configuration in the mysql section of the file:

  1. Configure your host name, database names and database credentials:

    • host: Name of your host.

    • moogdb_database_name: Name of the Moogdb database.

    • referencedb_database_name: Name of the Moogsoft Enterprise reference database.

    • intdb_database_name: Name of the Moogsoft Enterprise integrations database.

    • username:Username for the MySQL user that accesses the database.

    • encrypted_password: Encrypted password for the MySQL user.

    • password: Password for the MySQL user.

    • port: Default port that Moogsoft Enterprise uses to connect to MySQL.

  2. Configure the port, deadlock retry attempts and multi-host connections:

    • maxRetries: Maximum number of retries in the event of a MySQL deadlock.

    • retryWait: Number of milliseconds to wait between each retry attempt.

    • failover_connections: Hosts and ports for the different servers that are connected to the main host.

  3. Configure the SSL connections to the MySQL database:

    • trustStorePath: Path to location that stores the server certificate.

    • trustStoreEncryptedPassword: Path to location that stores your encrypted trustStore password.

    • trustStorePassword: Path to location that stores your trustStore password.

Elasticsearch

You can edit your search configuration in the search section of the file:

  1. Configure the Elasticsearch connection timeouts:

    • connection_timeout: Length of time in milliseconds before the connection times out.

    • request_timeout: Length of time in milliseconds before the request times out.

  2. Configure the Elasticsearch limit and nodes:

    • refresh_interval: Defines how often an Elasticsearch index refreshes. A newly indexed document is not visible in search results until the next time the index refreshes. Default is 30 seconds.

    • limit: Maximum number of search results that Elasticsearch returns from a search query.

    • nodes: Hosts and ports for the Elasticsearch servers connected in a cluster.

Failover

You can edit failover configuration in the failover section of the file:

  1. Configure persistence in the event of a failover:

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

  2. Configure the Hazelcast cluster, this is Moogsoft Enterprise implementation of persistence:

    • network_port: Port to connect to on each specified host.

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

    • hosts: List of hosts that can participate in the cluster.

    • man_center: Configures the cluster information that you can view in the Hazelcast Management Center UI.

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

  3. Configure failover options that apply to Moogfarmd and the LAMs:

    • keepalive_interval: Time interval in seconds at which processes report their active/passive status and check statuses of other processes.

    • margin: Amount of time in seconds after keepalive_intervalbefore Moogsoft Enterprise considers processes that do not report their status to be dead.

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

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

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

Process Monitor

You can edit the process monitor configuration in the process_monitor section of the file:

  1. Configure the heartbeat interval and delay:

    • heartbeat: Interval in milliseconds between heartbeats sent by processes.

    • max_heartbeat_delay: Number of milliseconds to wait before declaring heartbeat as missing.

  2. Configure the Moogfarmd and which processes you can control from the UI:

    • group: Name of the group of processes and subcomponent processes that you want to control from the UI.

    • instance: Name of the instance of Moogsoft Enterprise you want to configure.

    • service_name: Name of the service you want to control.

    • process_type: Type of process you want to control.

    • reserved: Determines if Moogsoft Enterprise considers the process as critical in process monitoring.

Encryption

You can edit the encryption configuration in the encryption section of the file:

  • encryption_key_file: Default location of the encryption key file.

High Availability

You can edit the high availability configuration in the ha section of the file.

  • cluster: Default HA cluster name

Port ranges

You can edit the port range that Moogsoft Enterprise services use when they look for open ports.

  • port_range_min: Minimum port number in the range.

  • port_range_max: Maximum port number in the range.

Example

The following example shows system.conf with the default configuration and all available properties enabled:

{
   "mooms": {
      "zone": "",
      "brokers": [{
         "host": "localhost",
          "port": 5672
      }],
      "username": "moogsoft",
      "password": "m00gs0ft",
      "encrypted_password": "e5uO0LY3HQJZCltG/caUnVbxVN4hImm4gIOpb4rwpF4=",
      "threads": 10,
      "message_persistence": false,
      "message_prefetch": 100,
      "max_retries": 100,
      "retry_interval": 200,
      "cache_on_failure": false,
      "cache_ttl": 900,
      "connections_per_producer_pool": 2,
      "confirmation_timeout": 2000,
      "ssl": {
         "ssl_protocol": "TLSv1.2",
         "server_cert_file": "server.pem",
         "client_cert_file": "client.pem",
         "client_key_file": "client.key"
      }
   },
   "mysql": {
      "host": "localhost",
      "moogdb_database_name": "moogdb",
      "referencedb_database_name": "moog_reference",
      "intdb_database_name": "moog_intdb",
      "username": "ermintrude",
      "encrypted_password": "vQj7/yom7e5ensSEb10v2Rb/pgkaPK/4OcUlEjYNtQU=",
      "password": "m00",
      "port": 3306,
      "maxRetries": 10,
      "retryWait": 50,
      "failover_connections": [
         {
            "host": "193.221.20.24",
            "port": 3306
         },
         {
             "host": "143.47.254.88",
             "port": 3306
         },
         {
             "host": "234.118.117.132",
             "port": 3306
         }
      ],
      "ssl": {
         "trustStorePath": "etc/truststore",
         "trustStoreEncryptedPassword": "vQj7/yom7e5ensSEb10v2Rb/pgkaPK/4OcUlEjYNtQU=",
         "trustStorePassword": "moogsoft"
      }
   },
   "search": {
      "connection_timeout": 1000,
      "request_timeout": 10000,
      "refresh_interval": 30,
      "limit": 1000,
      "nodes": [{
         "host": "localhost",
         "port": 9200
      }]
  },
  "failover": {
      "persist_state": false,
      "hazelcast": {
          "network_port": 5701,
          "auto_increment": true,
          "hosts": ["localhost"],
          "man_center": 
          {
              "enabled": false,
              "host": "localhost",
              "port": 8091
          },
          "cluster_per_group": false
      },
      "keepalive_interval": 5,
      "margin": 10,
      "failover_timeout": 10,
      "automatic_failover": false,
      "heartbeat_failover_after": 2
  },
  "process_monitor": {
      "heartbeat": 10000,
      "max_heartbeat_delay": 1000,
      "processes": [{
          "group": "moog_farmd",
          "instance": "",
          "service_name": "moogfarmd",
          "process_type": "moog_farmd",
          "reserved": true,
          "subcomponents": [
              "AlertBuilder",
              "Default Cookbook",
              "TeamsMgr",
              "Housekeeper",
              "AlertRulesEngine",
              "SituationMgr",
              "Notifier"
              ]},
              {
                  "group": "servlets",
                  "instance": "",
                  "service_name": "apache-tomcat",
                  "process_type": "servlets",
                  "reserved": true,
                  "subcomponents": [
                      "moogsvr",
                      "moogpoller",
                      "toolrunner",
                      "situation_similarity"
                  ]},
              {
                  "group": "logfile_lam",
                  "instance": "",
                  "service_name": "logfilelamd",
                  "process_type": "LAM",
                  "reserved": false
              },
              {
                  "group": "rest_lam",
                  "instance": "",
                  "service_name": "restlamd",
                  "process_type": "LAM",
                  "reserved": false
              },
              {
                  "group": "socket_lam",
                  "instance": "",
                  "service_name": "socketlamd",
                  "process_type": "LAM",
                  "reserved": false
              },
              {
                  "group": "trapd_lam",
                  "instance": "",
                  "service_name": "trapdlamd",
                  "process_type": "LAM",
                  "reserved": false
              },
              {
                  "group": "rest_client_lam",
                  "instance": "",
                  "service_name": "restclientlamd",
                  "process_type": "LAM",
                  "reserved": false
              }
         ]
    },
    "encryption": {
       "encryption_key_file": "/location/of/.key"
    },
    "ha": {
       "cluster": "MOO"
    },
    "port_range_min": 50000,
    "port_range_max": 51000
}

Start and stop Moogfarmd

Restart the Moogfarmd service to activate any changes you make to the system configuration file.

The service name is moogfarmd.

See Control Moogsoft AIOps Processes for further details.