-
Notifications
You must be signed in to change notification settings - Fork 0
/
zbx_export_mediatypes.xml
65 lines (65 loc) · 3.58 KB
/
zbx_export_mediatypes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>4.4</version>
<date>2019-10-24T05:22:22Z</date>
<media_types>
<media_type>
<name>Telegram [Zabbix Notify]</name>
<type>WEBHOOK</type>
<parameters>
<parameter>
<name>BOT_TOKEN</name>
<value>267788435192:ABEQ4qgWc15OXyTnDmxE29NdW8IFpGC_xqM</value>
</parameter>
<parameter>
<name>chat_id</name>
<value>{ALERT.SENDTO}</value>
</parameter>
<parameter>
<name>message</name>
<value>{ALERT.MESSAGE}</value>
</parameter>
<parameter>
<name>parse_mode</name>
<value>html</value>
</parameter>
</parameters>
<max_sessions>0</max_sessions>
<attempts>5</attempts>
<attempt_interval>2s</attempt_interval>
<script>try {
var itm_Request = new CurlHttpRequest(); // Определение объекта для работы с запросами
itm_Request.AddHeader('Content-Type: application/x-www-form-urlencoded'); // Установка заголовка
zbx_Params = JSON.parse(value); // Парсинг входящих от Zabbix данных
var result = {'chat_id': zbx_Params.chat_id}; // Определение объекта возвращаемых данных (возвращается идентификатор пользователя)
zbx_Params.message = zbx_Params.message.replace(/\\U\+([\d\w]{4,5})/gi, function(match, grp) { // Работа с Эмодзи
return String.fromCharCode(parseInt(grp, 16)); // Преобразование из кода вида \u2601 в символ multibyte
});
itm_Response = itm_Request.Post('https://api.telegram.org/bot' + zbx_Params.BOT_TOKEN + '/sendMessage', "chat_id=" + zbx_Params.chat_id + '&parse_mode=' + zbx_Params.parse_mode + '&text=' + zbx_Params.message); // Отправка запроса
if (itm_Request.Status() > 0) {
json_Response = JSON.parse(itm_Response); // Парсинг данных от телеграм
if (!json_Response.ok) throw 'Response code: ' + json_Response.error_code + '. Reason: ' + json_Response.description; // Обработка ошибки, если телеграм сообщил о ней
result.message_id = json_Response.result.message_id; // Добавление в объект идентификатора message_id
} else {
throw 'Response code: ' + itm_Request.Status(); // Обработка ошибки, если запрос имеет ошибочный HTTP код
}
} catch (error) {
Zabbix.Log(2, 'Telegram send failed: ' + error); // Отправка сообщения в лог Zabbix
result = {}; // Сообщаем, что произошла ошибка
}
return JSON.stringify(result); // Возвращаем объект с данными</script>
<timeout>8s</timeout>
<process_tags>YES</process_tags>
<show_event_menu>NO</show_event_menu>
<description>Контакты: grayhoax[at]grayhoax.ru
Телеграм: @grayhoax
Сбербанк: 55767899
Инструкция по установке - https://github.com/GrayHoax/zabbix-webhook-telegram/</description>
</media_type>
</media_types>
</zabbix_export>