zabbix_export:
version: '6.0'
date: '2020-10-16T09:33:50Z'
media_types:
-
name: PagerDuty
type: WEBHOOK
parameters:
-
name: alert_message
value: '{ALERT.MESSAGE}'
-
name: eventack
value: '{EVENT.ACK.STATUS}'
-
name: eventdate
value: '{EVENT.DATE}'
-
name: eventid
value: '{EVENT.ID}'
-
name: eventname
value: '{ALERT.SUBJECT}'
-
name: eventtags
value: '{EVENT.TAGS}'
-
name: eventtime
value: '{EVENT.TIME}'
-
name: eventupdate
value: '{EVENT.UPDATE.STATUS}'
-
name: eventvalue
value: '{EVENT.VALUE}'
-
name: event_source
value: '{EVENT.SOURCE}'
-
name: hostip
value: '{HOST.IP}'
-
name: hostname
value: '{HOST.NAME}'
-
name: severity
value: '{EVENT.NSEVERITY}'
-
name: token
value: '<put your key>'
-
name: triggerdesc
value: '{TRIGGER.DESCRIPTION}'
-
name: triggerid
value: '{TRIGGER.ID}'
-
name: triggeropdata
value: '{EVENT.OPDATA}'
-
name: url
value: '{$ZABBIX.URL}'
script: |
try {
var params = JSON.parse(value),
req = new HttpRequest(),
fields = {},
resp = '';
// Correspondence between the PagerDuty and Zabbix severity level
var severityMapping = [
'info', // Not classified
'info', // Information
'warning', // Warning
'warning', // Average
'error', // High
'critical' // Disaster
];
if (!severityMapping[params.severity]) {
params.severity = '0';
}
if (typeof params.HTTPProxy === 'string' && params.HTTPProxy.trim() !== '') {
req.setProxy(params.HTTPProxy);
}
if (isNaN(parseInt(params.eventid)) || params.eventid < 1) {
throw 'incorrect value for variable "eventid". The value must be a positive number.';
}