diff options
author | Tikhon Uskov <tikhon.uskov@zabbix.com> | 2021-04-09 09:17:07 +0300 |
---|---|---|
committer | Tikhon Uskov <tikhon.uskov@zabbix.com> | 2021-04-09 09:17:07 +0300 |
commit | 91b539524e79d40a18a439fb5f6d40127d085c63 (patch) | |
tree | 9e7d567a06adb8535631a905499b16d107c402e4 /templates | |
parent | db058519dab98eff21bba84d9ce621e085f063f2 (diff) |
.........T [ZBX-18673] fixed readme and HTTPProxy for getPermalink function
Diffstat (limited to 'templates')
-rw-r--r-- | templates/media/slack/README.md | 3 | ||||
-rw-r--r-- | templates/media/slack/media_slack.yaml | 72 |
2 files changed, 39 insertions, 36 deletions
diff --git a/templates/media/slack/README.md b/templates/media/slack/README.md index c92a0ec0034..6b326fcc29e 100644 --- a/templates/media/slack/README.md +++ b/templates/media/slack/README.md @@ -29,7 +29,8 @@ This guide describes how to integrate your Zabbix 5.4 and higher installation wi * You can also choose between two notification modes: - **alarm** (default) - Update messages will be attached as replies to Slack message thread - - Recovery message from Zabbix will update initial message + - Recovery message from Zabbix will update initial message<br> + **Note:** alarm mode is working correctly only if you are sending messages to only one channel because webhook use non-unique event tags for storing data about created threads, and we can not perform multiple threads updating. - **event** - Recovery and update messages from Zabbix will be posted as new messages diff --git a/templates/media/slack/media_slack.yaml b/templates/media/slack/media_slack.yaml index 4c91afadeef..1414deb95ba 100644 --- a/templates/media/slack/media_slack.yaml +++ b/templates/media/slack/media_slack.yaml @@ -1,96 +1,96 @@ zabbix_export: version: '5.4' - date: '2021-03-19T10:43:22Z' + date: '2021-04-06T06:13:42Z' media_types: - name: Slack type: WEBHOOK parameters: - 21: + - name: alert_message value: '{ALERT.MESSAGE}' - 22: + - name: alert_subject value: '{ALERT.SUBJECT}' - 1: + - name: bot_token value: '<PLACE YOUR KEY HERE>' - 2: + - name: channel value: '{ALERT.SENDTO}' - 27: + - name: channel_id value: '{EVENT.TAGS.__channel_id}' - 23: + - name: discovery_host_dns value: '{DISCOVERY.DEVICE.DNS}' - 24: + - name: discovery_host_ip value: '{DISCOVERY.DEVICE.IPADDRESS}' - 9: + - name: event_date value: '{EVENT.DATE}' - 13: + - name: event_id value: '{EVENT.ID}' - 6: + - name: event_nseverity value: '{EVENT.NSEVERITY}' - 12: + - name: event_opdata value: '{EVENT.OPDATA}' - 19: + - name: event_recovery_date value: '{EVENT.RECOVERY.DATE}' - 20: + - name: event_recovery_time value: '{EVENT.RECOVERY.TIME}' - 11: + - name: event_severity value: '{EVENT.SEVERITY}' - 25: + - name: event_source value: '{EVENT.SOURCE}' - 5: + - name: event_tags value: '{EVENT.TAGS}' - 10: + - name: event_time value: '{EVENT.TIME}' - 17: + - name: event_update_date value: '{EVENT.UPDATE.DATE}' - 8: + - name: event_update_status value: '{EVENT.UPDATE.STATUS}' - 18: + - name: event_update_time value: '{EVENT.UPDATE.TIME}' - 7: + - name: event_value value: '{EVENT.VALUE}' - 26: + - name: host_conn value: '{HOST.CONN}' - 16: + - name: host_name value: '{HOST.HOST}' - 28: + - name: message_ts value: '{EVENT.TAGS.__message_ts}' - 4: + - name: slack_as_user value: 'true' - 3: + - name: slack_mode value: alarm - 15: + - name: trigger_description value: '{TRIGGER.DESCRIPTION}' - 14: + - name: trigger_id value: '{TRIGGER.ID}' - 0: + - name: zabbix_url value: '{$ZABBIX.URL}' script: | @@ -139,16 +139,18 @@ zabbix_export: function getPermalink(channelId, messageTimestamp) { var req = new HttpRequest(); + if (typeof params.HTTPProxy === 'string' && params.HTTPProxy.trim() !== '') { + req.setProxy(params.HTTPProxy); + } + req.addHeader('Content-Type: application/x-www-form-urlencoded; charset=utf-8'); req.addHeader('Authorization: Bearer ' + params.bot_token); - var resp = JSON.parse(req.get( - '{0}?channel={1}&message_ts={2}'.format( + var query = '{0}?channel={1}&message_ts={2}'.format( Slack.getPermalink, encodeURIComponent(channelId), - encodeURIComponent(messageTimestamp) - ) - )); + encodeURIComponent(messageTimestamp)), + resp = JSON.parse(req.get(query)); if (req.getStatus() != 200 || !resp.ok || resp.ok === 'false') { throw 'message was created, but getting message link was failed with reason "' + resp.error + '"'; |