Source
xxxxxxxxxx
Please refer to https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2 and https://www.zabbix.com/documentation/7.0/manual/config/notifications/media/webhook#example_scripts.
zabbix_export
version'7.0'
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.';
}
if (params.eventname.length < 1) {