📊
Zabbix
Enterprise-grade infrastructure monitoring integration
Overview
Zabbix is an enterprise-class open source distributed monitoring solution. Akmatori can receive alerts via Zabbix webhooks and media types.
Configuration Steps
1
Create Alert Source in Akmatori
Go to Settings → Alert Sources and create a new Zabbix source. Copy the generated webhook URL.
2
Create Webhook Media Type
In Zabbix, go to Administration → Media types → Create media type with type "Webhook". If you configured a webhook secret in Akmatori, send it as the X-Zabbix-Secret header.
3
Configure Webhook Script
Send the fields Akmatori normalizes natively from the Zabbix adapter:
javascript
var params = JSON.parse(value);
var req = new HttpRequest();
req.addHeader('Content-Type: application/json');
if (params.webhook_secret) {
req.addHeader('X-Zabbix-Secret: ' + params.webhook_secret);
}
var response = req.post(
params.url,
JSON.stringify({
event_time: params.event_time,
alert_name: params.trigger_name,
severity: params.trigger_severity,
priority: params.trigger_nseverity,
metric_name: params.item_name,
metric_value: params.item_value,
trigger_expression: params.trigger_expression,
pending_duration: params.event_age,
event_id: params.event_id,
hardware: params.host,
event_status: params.event_status,
runbook_url: params.trigger_url
})
);Webhook Payload
Here's an example of the payload Akmatori expects from Zabbix:
json
{
"event_time": "2024-01-15 10:30:00",
"alert_name": "High memory usage",
"severity": "High",
"priority": "4",
"metric_name": "vm.memory.utilization",
"metric_value": "95",
"trigger_expression": "{web-server-01:vm.memory.utilization.last()}>90",
"pending_duration": "5m",
"event_id": "12345",
"hardware": "web-server-01",
"event_status": "PROBLEM",
"runbook_url": "https://runbooks.example.com/memory"
}Zabbix payloads can include rich fields like metric_name, metric_value, trigger_expression, hardware, and runbook_url. Akmatori also preserves extra raw fields from the webhook for downstream investigation context.