Moogsoft Docs

Configure the Sensu LAM

The Sensu LAM receives and processes Sensu events forwarded to Moogsoft AIOps. The LAM parses the data into Moogsoft AIOps as events.

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

Configure the Sensu 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 Sensu LAM has been validated with Sensu Core v1.8. Before you configure the LAM, ensure you have met the following requirements:

  • You have installed and configured a Sensu Core system.

If you are configuring a distributed deployment refer to High Availability Overview. 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 LAM. You can find the file at $MOOGSOFT_HOME/config/sensu_lam.conf.

The Sensu LAM is a REST-based LAM as it provides an HTTP endpoint for data ingestions. Note that only the generic REST LAM properties in sensu_lam.conf apply to integrating with Sensu; 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 for the REST connection:

    • address: Address on the Moogsoft AIOps server that listens for REST messages. Defaults to all interfaces.

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

  2. Configure authentication:

    • authentication_type: Type of authentication used by the LAM. Defaults to basic_auth_static.

    • basic_auth_static: Username and password used for Basic Auth Static authentication.

    • authentication_cache: Whether to cache the username and password for the current connection when the authentication type is Basic.

  3. Configure the LAM behavior:

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

    • lists_contain_multiple_threads: 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.

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

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

    • use_ssl: Whether to use SSL certification.

    • path_to_ssl_files: Path to the directory that contains the SSL certificates.

    • ssl_key_filename: The SSL server key file.

    • ssl_cert_filename: The SSL root CA file.

    • use_client_certificates: Whether to use SSL client certification.

    • client_ca_filename: The SSL client CA file.

    • auth_token or encrypted_auth_token: Authentication token in the request body.

    • ssl_protocols: Sets the allowed SSL protocols.

  5. Optionally configure the LAM identification and logging details in the agent and log_config sections of the file:

    • name: Identifies events the LAM sends to the Message bus.

    • capture_log: Name and locations of the LAM's capture log file.

    • configuration_file: Name and location of the LAM's process log configuration file.

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

Example

An example Sensu LAM configuration is as follows:

monitor:
{
    name                          : "Sensu LAM",
    class                         : "CRestMonitor",
    port                          : 8888,
    address                       : "0.0.0.0",
    use_ssl                       : false,
    #path_to_ssl_files            : "config",
    #ssl_key_filename             : "server.key",
    #ssl_cert_filename            : "server.pem",
    #use_client_certificates      : false,
    #client_ca_filename           : "ca.crt",
    #auth_token                   : "my_secret",
    #encrypted_auth_token         : "dfJtTQMGiFHfiq7sCmxguBt6Jv+eytkoiKCquSB/7iWxpgGsG2aez3z2j7SuBtKj",
    #ssl_protocols                : [ "TLSv1.2" ],
    authentication_type           : "basic_auth_static",
            basic_auth_static:
            {
                username: "user",
                password: "pass"
                #,encrypted_password    : "dfJtTQMGiFHfiq7sCmxguBt6Jv+eytkoiKCquSB/7iWxpgGsG2aez3z2j7SuBtKj"
            },
    authentication_cache          : true,
    accept_all_json               : true,
    lists_contain_multiple_events : true,
    num_threads                   : 5,
    rest_response_mode            : "on_receipt",
    rpc_response_timeout          : 20,
    event_ack_mode                : "queued_for_processing"
},
agent:
{
    name                          : "Sensu",
    capture_log                   : "$MOOGSOFT_HOME/log/data-capture/sensu_lam.log"
},
log_config:
{
     configuration_file           : "$MOOGSOFT_HOME/config/logging/sensu_log.json"
{,
Configure for High Availability

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

Configure LAMbot processing

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

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

filter:
{
    presend: "SensuLAM.js",
    modules: [ "CommonUtils.js" ]
}
Start and Stop the LAM

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

The LAM service name is sensulamd.

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 Sensu LAM. See "Check the LAM status" in Configure the REST LAM for further information and examples.

Configure Sensu

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