Configure the Zabbix Polling LAM

Zabbix provides comprehensive application monitoring and performance lifecycle management. Moogsoft Zabbix Integration (LAM) connects with Zabbix Server to fetch events from it. It then forwards them to the Moogsoft AIOps.

You can install a basic vSphere integration in the UI. See Zabbix Polling for integration steps.

Before You Begin

Before you set up the LAM, ensure you have met the following requirements for each Zabbix server:

  • You have the API URL of the Zabbix server.

  • You have credentials to connect to the Zabbix server.

  • The port for your Zabbix server is open and accessible from Moogsoft AIOps.

Optionally you can provide the following:

  • A minimum severity for events you want to fetch from the Zabbix server.

  • The types of event you want to fetch and names of the host groups, hosts, applications and triggers.

  • A request interval and retry interval time in seconds. Defaults to 60 seconds.

  • An overlap time in seconds to ensure Moogsoft AIOps does not miss any valid events. Defaults to 10 seconds.

  • The length of time to wait for a request to complete before timing out. Defaults to 120 seconds.

Configure the LAM

Edit the configuration file to control the behavior of the vSphere LAM. You can find the file at $MOOGSOFT_HOME/config/zabbix_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. Uncomment properties to enable them.

  1. Configure the connection properties for each target source:

    • url: Host name or IP address of the Zabbix server.

    • username: Zabbix server username.

    • password or encrypted_password: Zabbix server password or encrypted password.

  2. If you want to connect through a proxy server, configure the host, port, user, and password or encrypted password properties in the proxy section for the target.

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

    • disable_certificate_validation: Whether to disable SSL certificate validation.

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

    • server_cert_filename: SSL root CA file.

    • client_key_filename: Client SSL key.

    • client_cert_filename: Client SSL certificate.

  4. Configure the LAM behavior for each target:

    • request_interval: Length of time to wait between requests, in seconds.

    • max_retries: Number of times the LAM attempts to reconnect after connection failure.

    • retry_interval: Length of time to wait between reconnection attempts, in seconds.

    • retry_recovery: Length of time between recovery requests, in seconds.

    • timeout: Length of time to wait before halting a connection or read attempt, in seconds.

    • overlap_identity_fields: List of payload tokens the LAM uses to identify duplicate events when Zabbix returns all open events and not just updated events.

    • requests_overlap: Period of time to delay processing duplicates.

    • event_types: Type of event the LAM fetches.

    • minimum_trigger_severity: Minimum trigger severity. Only valid if event_type is set to 0.

  5. Optionally configure filtering:

    • filter: Whether to filter events the LAM fetches.

    • host_group_names: Host groups to fetch events from.

    • host_names: Hosts within the host groups to fetch events from.

    • application_names: Host applications to fetch events from.

    • trigger_names: Trigger within the application to fetch events from.

  6. 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.

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

  8. 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

You can configure the Zabbix LAM to retrieve events from one or more sources. The following example demonstrates a configuration that targets two Zabbix sources. For a single source comment out the target2 section. If you have more than two sources, add a target section for each one and uncomment properties to enable them.

monitor:
{
    name: "Zabbix Lam Monitor",
    class: "CZabbixMonitor",
    request_interval: 60,
    max_retries: -1,
    retry_interval: 60,
    timeout: 120,
    targets:
    {
        target1:
        {
            url: "http://examplezabbix1/zabbix/api_jsonrpc.php",
            user_name: "zabbix_user1",
            #password: "password",
            encrypted_password: "qJAFVXpNDTk6ANq65pEfVGNCu2vFdcoj70AF5BIebEc=",
            disable_certificate_validation: false,
            path_to_ssl_files: "config",
            server_cert_filename: "server1.crt",
            request_interval: 60,
            max_retries: -1,
            retry_interval: 60,
            timeout: 120,
            requests_overlap: 10,
            overlap_identity_fields: [ "eventid" ],
            event_types: [ 0 ],
            filter: false,
            host_group_names: [ "" ],
            host_names: [ "" ],
            application_names: [ "" ],
            minimum_trigger_severity: 0
        }
        target2:
        {
            url: "http://examplezabbix2/zabbix/api_jsonrpc.php",
            user_name: "zabbix_user2",
            #password: "password",
            encrypted_password: "bDGFSClSHBn8DSw43nGwSPLSv2dGwdsj50WD4BHdfVa&",
            disable_certificate_validation: false,
            path_to_ssl_files: "config",
            server_cert_filename: "server2.crt",
            request_interval: 60,
            max_retries: -1,
            retry_interval: 60,
            timeout: 120,
            requests_overlap: 10,
            overlap_identity_fields: [ "eventid" ],
            event_types: [ 0 ],
            filter: false,
            host_group_names: [ "" ],
            host_names: [ "" ],
            application_names: [ "" ],
            minimum_trigger_severity: 0
        }
}

Configure for High Availability

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

Configure LAMbot processing

The Zabbix 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 vSphere LAM filter configuration is shown below.

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

Start and Stop the LAM

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

The LAM service name is zabbixlamd.

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

Configure Zabbix

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