Source
xxxxxxxxxx
throw 'Incorrect "event_update_status" parameter given: ' + params.event_update_status + '\nMust be 0 or 1.';
zabbix_export
version'7.0'
media_types
-
name Express.ms
type WEBHOOK
parameters
-
name event_source
value'{EVENT.SOURCE}'
-
name event_update_status
value'{EVENT.UPDATE.STATUS}'
-
name event_value
value'{EVENT.VALUE}'
-
name express_message
value'{ALERT.MESSAGE}'
-
name express_send_to
value'{ALERT.SENDTO}'
-
name express_tags
value'{EVENT.TAGSJSON}'
-
name express_token
value'<PLACE BOT TOKEN>'
-
name express_url
value'<PLACE INSTANCE URL>'
script
var Express = {
params: [],
setParams: function (params) {
if (typeof params !== 'object') {
return;
}
Express.params = params;
if (typeof Express.params.url === 'string' && !Express.params.url.endsWith('/')) {
Express.params.url += '/';
}
},
setProxy: function (HTTPProxy) {
Express.HTTPProxy = HTTPProxy;
},
request: function (query, data) {
var response,
url = Express.params.url + query,
request = new HttpRequest();
request.addHeader('Content-Type: application/json');
request.addHeader('Authorization: Bearer ' + Express.params.token);
if (typeof Express.HTTPProxy !== 'undefined' && Express.HTTPProxy !== '') {
request.setProxy(Express.HTTPProxy);
}
if (typeof data !== 'undefined') {
data = JSON.stringify(data);
}
Zabbix.log(4, '[ Express Webhook ] Sending request: ' + url +
((typeof data === 'string') ? ('\n' + data) : ''));
response = request.post(url, data);
Zabbix.log(4, '[ Express Webhook ] Received response with status code ' +
request.getStatus() + '\n' + response);
if (response !== null) {
try {
response = JSON.parse(response);
}
catch (error) {
Zabbix.log(4, '[ Express Webhook ] Failed to parse response received from Express');
response = {};
}
}
if (response.status !== 'ok') {
var message = 'Request failed with status code ' + request.getStatus();
if (typeof response.reason !== 'undefined') {
message += ': ' + JSON.stringify(response.reason);
}