System Configuration

You can configure the various components of Moogsoft AIOps using the system configuration file. These include:

  • Message Bus

  • Databases

  • Search

  • Failover

  • Process monitoring

  • Web host address

  • Logging

Configure your System

Edit the configuration file to control the behavior of the different components in your Moogsoft AIOps 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 themoomssection. 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.

For more information see the Message Bus documentation.

Database

You can edit your database configuration in the mysql section:

  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 AIOps reference 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 AIOps 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:

  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:

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

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

Failover

You can edit failover configuration in the failover section:

  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 AIOps 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 AIOps 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:

  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 AIOps 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 AIOps considers the process as critical in process monitoring.

Encryption

You can edit the encryption configuration in the encryption section.

Configure the location of the encryption key file:

    • encryption_key_file: Default location of the encryption key file.

High Availability

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

Configure the default HA cluster name:

    • cluster: Default HA cluster name.

Web Hostname

You can edit the hostname configuration in the webhost section.

Configure the hostname:

    • webhost: Default web host address.

Service Port Range

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

Configure the port range used by services:

    • 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,
                "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",
                "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,
                "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"
        },
        "webhost": "localhost",
        "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.