Configure the Zabbix Webhook LAM
The Zabbix Webhook LAM is an endpoint for webhook notifications from Zabbix actions. The LAM parses JSON events from Zabbix into Moogsoft Onprem events.
You can install a basic Zabbix Webhook integration via the UI. See Zabbix Webhook for integration steps.
Configure the Zabbix Webhook 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 Zabbix LAM has been validated with Zabbix v3.2. Before you start to set up the LAM, ensure you have met the following requirements:
You have an active Zabbix account with the permissions to perform the following:
Add custom alert scripts to the Zabbix server.
Create new users, media types and actions.
Zabbix can make requests to external endpoints over port 443. This is the default.
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 Zabbix Webhook LAM. You can find the file at $MOOGSOFT_HOME/config/zabbix_webhook_lam.conf
The Zabbix Webhook LAM is a REST-based LAM as it provides an HTTP endpoint for data ingestion. Note that only the generic REST LAM properties in zabbix_webhook_lam.conf
apply to integrating with the Zabbix Webhook LAM; 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.
Configure the connection properties for the REST connection:
address: Address on the Moogsoft Onprem server that listens for REST messages. Defaults to all interfaces.
port: Port on the Moogsoft Onprem server that listens for REST messages. Defaults to 48013.
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.
ssl_protocols: Sets the allowed SSL protocols.
Configure the LAM behavior:
num_threads: Number of worker threads to use when 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 Zabbix Webhook LAM during the event processing pipeline.
accept_all_json: Allows the LAM to read and process all forms of JSON.
lists_contain_multiple_events: Whether Moogsoft Onprem interprets a JSON list as multiple events.
Optionally configure the LAM identification and capture logging details:
name: Maps to
$Laminstancename
, so that theagent
field indicates events Moogsoft Onprem ingests from this LAM.capture_log: Name and location of the LAM's capture log file, which it writes to for debugging purposes.
Optionally configure severity conversion. See Severity Reference for further information and "Conversion Rules" in Tokenize Source Event Data for details on conversions in general.
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.
Unsupported Properties
The Zabbix integration does not include client authentication. Do not uncomment or change the following properties:
use_client_certificates
client_ca_filename
auth_token or encrypted_auth_token
header_auth_token or encrypted_header_auth_token
authentication_type
authentication_cache
Example
An example Zabbix Webhook LAM configuration is as follows.
monitor: { name : "Zabbix Webhook Lam Monitor", class : "CRestMonitor", port : 48023, 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", #header_auth_token : "my_secret", #encrypted_header_auth_token : "dfJtTQMGiFHfiq7sCmxguBt6Jv+eytkoiKCquSB/7iWxpgGsG2aez3z2j7SuBtKj", #ssl_protocols : [ "TLSv1.2" ], authentication_type : "none", 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 : "Zabbix Webhook", capture_log : "$MOOGSOFT_HOME/log/data-capture/zabbix_webhook_lam.log" }, log_config: { configuration_file : "$MOOGSOFT_HOME/config/logging/custom.log.json" }
Configure for High Availability
Configure the Zabbix Webhook LAM for high availability if required. See High Availability Overview for details.
Configure LAMbot Processing
The Zabbix Webhook 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 Zabbix Webhook LAM filter configuration is shown below.
filter: { presend: "ZabbixWebhookLam.js", modules: [ "CommonUtils.js" ] }
Start and Stop the LAM
Restart the Zabbix Webhook LAM to activate any changes you make to the configuration file or LAMbot.
The LAM service name is zabbixwebhooklamd
.
See Control Moogsoft Onprem Processes for the commands to start, stop and restart the LAM.
You can use a GET request to check the status of the Zabbix Webhook LAM. See "Check the LAM Status" in Configure the REST LAM for further information and examples.
Configure Zabbix
After you have the Zabbix Webhook LAM running and listening for incoming requests, you can configure a media type and action in Zabbix. See "Configure Zabbix" in Zabbix Webhook.