Source
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}'
status DISABLED
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';