diff --git a/templates/media/pagerduty/media_pagerduty.yaml b/templates/media/pagerduty/media_pagerduty.yaml index 7b2e1730..0258e818 100644 --- a/templates/media/pagerduty/media_pagerduty.yaml +++ b/templates/media/pagerduty/media_pagerduty.yaml @@ -1,5 +1,5 @@ zabbix_export: - version: '5.4' + version: '6.4' media_types: - name: PagerDuty @@ -158,10 +158,43 @@ zabbix_export: fields.client = 'Zabbix'; fields.client_url = params.url; } - else if ((params.eventvalue == 1) && (params.eventupdate == 1) && (params.eventack == 'Yes')) + else if ((params.eventvalue == 1) && (params.eventupdate == 1) && (params.eventack == 'Yes')) { fields.event_action = 'acknowledge'; - else if (params.eventvalue == 0) + // Add some custom details to the ack payload so that Orchestration has better luck routing... + fields.payload = { + summary: params.eventname, + source: (params.event_source === '1') ? 'Discovery' : params.hostname + ' : ' + params.hostip, + severity: severityMapping[params.severity], + }; + if (params.event_source === '0') { + fields.payload.custom_details = { + 'Trigger opdata': params.triggeropdata, + 'Event tags': params.eventtags, + 'Event host': params.hostname, + 'Event host ip': params.hostip + }; + } + } + else if (params.eventvalue == 0) { fields.event_action = 'resolve'; + fields.payload = { + summary: params.eventname, + source: (params.event_source === '1') ? 'Discovery' : params.hostname + ' : ' + params.hostip, + severity: severityMapping[params.severity], + }; + + if (params.event_source === '0') { + fields.payload.custom_details = { + 'Event date': params.eventdate, + 'Event time': params.eventtime, + 'Trigger description': params.triggerdesc, + 'Trigger opdata': params.triggeropdata, + 'Event tags': params.eventtags, + 'Event host': params.hostname, + 'Event host ip': params.hostip + }; + } + } else throw 'incorrect values. Update message without ack will not be sent.'; @@ -198,7 +231,7 @@ zabbix_export: throw 'PagerDuty notification failed : ' + error; } description: | - Please refer to https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2 and https://www.zabbix.com/documentation/6.2/manual/config/notifications/media/webhook#example_scripts. + Please refer to https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2 and https://www.zabbix.com/documentation/6.4/manual/config/notifications/media/webhook#example_scripts. Set global macro {$ZABBIX.URL} with your Zabbix server URL. Add a dedicated user with the media type "PagerDuty" and place the integration key in the "token" parameter to integrate into the service.