zabbix_export:
version: '5.4'
date: '2020-10-16T09:33:51Z'
media_types:
-
name: SIGNL4
type: WEBHOOK
parameters:
-
name: Event_Ack_Status
value: '{EVENT.ACK.STATUS}'
-
name: Event_Date_Time
value: '{EVENT.DATE} {EVENT.TIME}'
-
name: Event_ID
value: '{EVENT.ID}'
-
name: Event_Update_Action
value: '{EVENT.UPDATE.ACTION}'
-
name: Event_Update_Status
value: '{EVENT.UPDATE.STATUS}'
-
name: Hostname
value: '{HOST.NAME}'
-
name: Host_IP
value: '{HOST.IP}'
-
name: Message
value: '{ALERT.MESSAGE}'
-
name: Severity
value: '{EVENT.SEVERITY}'
-
name: Subject
value: '{ALERT.SUBJECT}'
-
name: teamsecret
value: '{ALERT.SENDTO}'
-
name: Trigger_ID
value: '{TRIGGER.ID}'
-
name: Trigger_Status
value: '{TRIGGER.STATUS}'
-
name: User
value: '{USER.FULLNAME}'
-
name: Zabbix_URL
value: '{$ZABBIX.URL}'
script: |
// SIGNL4 Webhook
try {
var response,
payload,
params = JSON.parse(value),
endpoint = 'https://connect.signl4.com/webhook/',
request = new HttpRequest();
if (typeof params.HTTPProxy === 'string' && params.HTTPProxy.trim() !== '') {
request.setProxy(params.HTTPProxy);
}
if (typeof params.teamsecret === 'string' && params.teamsecret.trim() !== '') {
endpoint += params.teamsecret;
delete params.teamsecret;
}
else {
throw 'The team secret of your SIGNL4 team cannot be empty.';
}
if (typeof params.Severity === 'string' && params.Severity === '{EVENT.SEVERITY}') {
params.Severity = 'Not classified';
}
if (typeof params.User === 'string' && params.User === '{USER.FULLNAME}') {
params.User = '';
}
if (typeof params.Event_Update_Action === 'string' && params.Event_Update_Action === '{EVENT.UPDATE.ACTION}') {
params.Event_Update_Action = '';
}
// Assemble X-S4-ExternalID for two-way integration
// Format: "ZabbixEventID: 222 ZabbixURL: https://your-zabbix-server/zabbix/"
params['X-S4-ExternalID'] = 'ZabbixEventID: ' + params.Event_ID;
if (typeof params.Zabbix_URL === 'string' && params.Zabbix_URL.indexOf('http') == 0) {
// Make sure the URL ends with '/'