Source
xxxxxxxxxx
zabbix_export
version'7.0'
media_types
-
name Brevis.one
type WEBHOOK
parameters
-
name endpoint
value'<PLACE HTTP API URL>'
-
name flash
value'false'
-
name password
value'<PLACE PASSWORD>'
-
name ring
value'false'
-
name send_to
value'{ALERT.SENDTO}'
-
name telauto
value'true'
-
name text
value'{ALERT.MESSAGE}'
-
name username
value'<PLACE USERNAME>'
script
var BrevisOne = {
params: [],
addParam: function (name, value) {
BrevisOne.params.push(name + '=' + encodeURIComponent(value));
},
setProxy: function (HTTPProxy) {
BrevisOne.HTTPProxy = HTTPProxy;
},
setPayload: function (params) {
var parts = params.send_to.split(':'),
defaultValues = {
ring: 'true',
flash: 'true',
telauto: 'false'
};
BrevisOne.addParam('username', params.username);
BrevisOne.addParam('password', params.password);
BrevisOne.addParam('text', params.text);
if (parts.length > 1) {
BrevisOne.addParam('mode', parts[0]);
BrevisOne.addParam('to', parts[1]);
}
else {
BrevisOne.addParam('to', parts[0]);
}
Object.keys(defaultValues)
.forEach(function (key) {
if (params[key] && params[key].trim() && params[key].toLowerCase() === defaultValues[key]) {
BrevisOne.addParam(key, defaultValues[key]);
}
});
},
request: function () {
var response,
request = new HttpRequest(),
data = '?' + BrevisOne.params.join('&');
request.addHeader('Content-Type: multipart/form-data');
if (typeof BrevisOne.HTTPProxy !== 'undefined' && BrevisOne.HTTPProxy !== '') {
request.setProxy(BrevisOne.HTTPProxy);
}
Zabbix.log(4, '[ BrevisOne Webhook ] Sending request.');
response = request.post(params.endpoint + data);
Zabbix.log(4, '[ BrevisOne Webhook ] Received response with status code ' +
request.getStatus() + '\n' + response);
if (request.getStatus() < 200 || request.getStatus() >= 300) {
var message = 'Request failed with status code ' + request.getStatus();