Moogsoft Docs

Configure the EMC Smarts LAM

The EMC Smarts LAM receives and processes events forwarded to Moogsoft AIOps from a RabbitMQ server. The LAM parses the data into Moogsoft AIOps events.

You can install a basic EMC Smarts integration in the UI. See EMC Smarts for integration steps.

Depending on which EMC Smarts suite you install, you may need to set up RabbitMQ separately. See the EMC Smarts documentation for more information.

Configure the EMC Smarts LAM if you want to configure custom properties, set up high availability or configure advanced options that are not available in the UI integration.

Before You Begin

The EMC Smarts LAM has been validated with RabbitMQ v3.7.4 and Smarts v9.5. Before you configure the LAM, ensure you have met the following requirements:

  • You have the host address and port of the RabbitMQ server.

  • You have credentials to connect to RabbitMQ.

  • You know the names of the Topic Exchange and Topic Queue used by RabbitMQ.

  • You have the name of your RabbitMQ Virtual Host, if used.

If you are configuring a distributed deployment refer to High Availability Overview first. You will need the details of the server configuration you are going to use for HA.

Configure the LAM

Edit the configuration file to control the behavior of the EMC Smarts LAM. You can find the file at $MOOGSOFT_HOME/config/emc_smarts_lam.conf.

See the LAM and Integration Reference for a full description of all properties. Some properties in the file are commented out by default; remove the '#' character to enable them.

  1. Configure the connection properties of the RabbitMQ nodes you want to connect to:

    • host: Address of the RabbitMQ server to connect to.

    • port: Port on the Moogsoft AIOps server that listens for REST messages. Defaults to 5672.

    • virtual_host:

    • username: Username of the RabbitMQ account used to connect to the RabbitMQ server.

    • password or encrypted_password: Password or encrypted password of the account used to log in to your RabbitMQ account.

  2. Configure the topic queue:

    • topic_queue_name: A list of topics for the topic queue.

    • topic_exchange: The topic exchange for the topic queue.

    • topic_queue_durable: Determines whether the server maintains the queue contents when it isn't in use.

    • topic_queue_exclusive: Determines whether to restrict the topic queue to the LAM's connection.

  3. Configure the LAM behavior:

    • accept_all_json: Allows the LAM to read and process all forms of JSON.

    • lists_contain_multiple_events: Whether Moogsoft AIOps interprets a JSON list as multiple events.

    • num_threads: Number of worker threads to use for processing events.

    • rest_response_mode: When to send a REST response. See the LAM and Integration Reference for the options.

    • rpc_response_timeout: Number of seconds to wait for a REST response.

    • message_prefetch: Controls how many messages the LAM takes from the RabbitMQ queues and holds in memory as a processing buffer.

    • event_ack_mode: When Moogfarmd acknowledges events from the EMC Smarts LAM during the event processing pipeline.

  4. Configure the SSL properties if you want to encrypt communications between the LAM and the REST connection:

    • ssl_protocol: Sets the allowed SSL protocol.

    • server_cert_file: Name of the SSL root CA file.

    • client_cert_file: Name of the SSL client certificate.

    • client_key_file: Name of the SSL client key file.

  5. Optionally configure the LAM identification and capture logging details:

    • name: Maps to $Laminstancename, so that the agent field indicates events Moogsoft AIOps ingests from this LAM.

    • capture_log: Name and location of the LAM's capture log file, which it writes to for debugging purposes.

  6. Optionally configure severity conversions. See Severity Reference for further information and "Conversion Rules" in Data Parsing for details on conversions in general.

  7. Optionally configure the process logging details:

    • configuration_file: Name and location of the LAM's process log configuration file. See Configure Logging for more information.

Example

An example EMC Smarts configuration is as follows:

monitor:
        {
            name        : "EMC Smarts Monitor",
            class       : "CRabbitMQMonitor",

            brokers:
            [
                {
                    host : "<Hostname/IP-Address>",
                    port : 5672
                },
                {
                    host: "<Hostname/IP-Address2>",
                    port: 5673
                }
            ],
            virtual_host : "emc.smarts.notifications",
            username : "username",
            password : "password",
            #encrypted_password : "4DZkk9W294Z+dDKMS1EMO8BCi7vyhGFNzra3T1w/Na4=",
            topic_queue_name : "Moogsoft_AIOps_EMCSmarts",
            topics : ["#"],
            topic_exchange : "emc.smarts.notifications",
            topic_queue_durable: true,
            topic_queue_autodelete: false,
            topic_queue_exclusive: false,
            accept_all_json : true,
            lists_contain_multiple_events : true,
            message_prefetch : 100,
            event_ack_mode : "queued_for_processing",
            num_threads: 5
        }

ssl :
     {
        {
            ssl_protocol : "TLSv1.2",
            server_cert_file : "server/cert.pem",
            client_cert_file : "client/cert.pem",
            client_key_file  : "client/key.key"
        },
     },
agent:
{
    name                          : "EMC Smarts",
    capture_log                   : "$MOOGSOFT_HOME/log/data-capture/emc_smarts_lam.log"
},
           
log_config:
{
    configuration_file            : "$MOOGSOFT_HOME/config/logging/emc_smarts_lam_log.json"
},

Configure for High Availability

Configure the EMC Smarts LAM for high availability if required. See High Availability Overview for details.

Configure LAMbot processing

The EMC Smarts LAMbot processes and filters events before sending them to the Message Bus. You can customize or bypass this processing if required. You can also load JavaScript files into the LAMbot and execute them.

See LAMbot Configuration for more information. An example EMC Smarts LAM filter configuration is shown below.

filter:
{
    presend: "EMCSmartsLam.js",
    modules: [ "CommonUtils.js" ]
}

Start and Stop the LAM

Restart the EMC Smarts LAM to activate any changes you make to the configuration file or LAMbot.

The LAM service name is emcsmartslamd.

See Control Moogsoft AIOps Processes for the commands to start, stop and restart the LAM.

You can use a GET request to check the status of the EMC Smarts LAM. See "Check the LAM Status" in Configure the REST LAM for further information and examples.

Configure EMC Smarts

After you have the EMC Smarts LAM running and listening for incoming requests, you can configure Smarts. See "Configure Smarts" in EMC Smarts.