zabbix_export:
version: '7.0'
media_types:
- name: 'MS Teams'
type: WEBHOOK
parameters:
- name: alert_message
value: '{ALERT.MESSAGE}'
- name: alert_subject
value: '{ALERT.SUBJECT}'
- name: event_date
value: '{EVENT.DATE}'
- name: event_id
value: '{EVENT.ID}'
- name: event_nseverity
value: '{EVENT.NSEVERITY}'
- name: event_opdata
value: '{EVENT.OPDATA}'
- name: event_recovery_date
value: '{EVENT.RECOVERY.DATE}'
- name: event_recovery_time
value: '{EVENT.RECOVERY.TIME}'
- name: event_severity
value: '{EVENT.SEVERITY}'
- name: event_source
value: '{EVENT.SOURCE}'
- name: event_status
value: '{EVENT.STATUS}'
- name: event_tags
value: '{EVENT.TAGS}'
- name: event_time
value: '{EVENT.TIME}'
- name: event_update_action
value: '{EVENT.UPDATE.ACTION}'
- name: event_update_date
value: '{EVENT.UPDATE.DATE}'
- name: event_update_message
value: '{EVENT.UPDATE.MESSAGE}'
- name: event_update_status
value: '{EVENT.UPDATE.STATUS}'
- name: event_update_time
value: '{EVENT.UPDATE.TIME}'
- name: event_update_user
value: '{USER.FULLNAME}'
- name: event_value
value: '{EVENT.VALUE}'
- name: host_ip
value: '{HOST.IP}'
- name: host_name
value: '{HOST.NAME}'
- name: teams_endpoint
value: '<PLACE WEBHOOK URL HERE>'
- name: trigger_description
value: '{TRIGGER.DESCRIPTION}'
- name: trigger_id
value: '{TRIGGER.ID}'
- name: use_default_message
value: 'false'
- name: zabbix_url
value: '{$ZABBIX.URL}'
status: DISABLED
script: |
var SEVERITY_COLORS = [
'#97AAB3', // Not classified.
'#7499FF', // Information.
'#FFC859', // Warning.
'#FFA059', // Average.
'#E97659', // High.
'#E45959', // Disaster.
'#009900', // Resolved.
'#000000' // Default.
];
try {
var params = JSON.parse(value);
if (typeof params.teams_endpoint !== 'string' || params.teams_endpoint.trim() === '') {
throw 'Cannot get teams_endpoint';
}
else if (!params.teams_endpoint.startsWith('http')) {
throw 'Invalid MS Teams webhook URL: ' + params.teams_endpoint;
}
params.zabbix_url = (params.zabbix_url.endsWith('/'))
? params.zabbix_url.slice(0, -1) : params.zabbix_url;
if ([0, 1, 2, 3, 4].indexOf(parseInt(params.event_source)) === -1) {
throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-4.';
}
// Set "use_default_message" to true for non trigger-based events.