By default, Zabbix 5.0 integrated Telegram Webhook Media Type, but not support emoji by Event Severity, eg:
Warning: ⚠️
Average: ⛔
Disater: 🔥
Problem Resolve: ✅
I was just modified Javascript:
var Telegram = { token: null, to: null, message: null, proxy: null, parse_mode: null, sendMessage: function() { var params = { chat_id: Telegram.to, text: Telegram.message, disable_web_page_preview: true, disable_notification: false }, data, response, request = new CurlHttpRequest(), url = 'https://api.telegram.org/bot' + Telegram.token + '/sendMessage'; if (Telegram.parse_mode !== null) { params['parse_mode'] = Telegram.parse_mode; } if (Telegram.proxy) { request.setProxy(Telegram.proxy); } request.AddHeader('Content-Type: application/json'); data = JSON.stringify(params); // Remove replace() function if you want to see the exposed token in the log file. Zabbix.Log(4, '[Telegram Webhook] URL: ' + url.replace(Telegram.token, '<TOKEN>')); Zabbix.Log(4, '[Telegram Webhook] params: ' + data); response = request.Post(url, data); Zabbix.Log(4, '[Telegram Webhook] HTTP code: ' + request.Status()); try { response = JSON.parse(response); } catch (error) { response = null; } if (request.Status() !== 200 || typeof response.ok !== 'boolean' || response.ok !== true) { if (typeof response.description === 'string') { throw response.description; } else { throw 'Unknown error. Check debug log for more information.' } } } } try { var params = JSON.parse(value); var icon; if (typeof params.Token === 'undefined') { throw 'Incorrect value is given for parameter "Token": parameter is missing'; } Telegram.token = params.Token; if (params.HTTPProxy) { Telegram.proxy = params.HTTPProxy; } if (['Markdown', 'HTML', 'MarkdownV2'].indexOf(params.ParseMode) !== -1) { Telegram.parse_mode = params.ParseMode; } if (params.Severity == 'Warning') { icon = '⚠️'; } else if (params.Severity == 'Average') { icon = '⛔'; } else if (params.Severity == 'High') { icon = '❌'; } else { icon = String.fromCodePoint('0x1F525'); } if (params.Trigger_status == 'OK') { icon = '✅'; } Telegram.to = params.To; Telegram.message = icon + ' ' + params.Subject + '\n' + params.Message; Telegram.sendMessage(); return 'OK'; } catch (error) { Zabbix.Log(4, '[Telegram Webhook] notification failed: ' + error); throw 'Sending failed: ' + error + '.'; }
Add some Parameters:
ParseMode: Markdown for send bold text in Event Subject.
To send shortern Notification, change Message Template:
Result: