Source
xxxxxxxxxx
83
83
ROW |23 |4 |SolarWinds Service Desk | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var SolarWinds = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; SolarWinds.params = params;&eol; SolarWinds.params.endpoint = 'https://api.samanage.com/';&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; SolarWinds.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; addCustomFields: function (data, fields) {&eol; if (typeof data.incident === 'object' && typeof fields === 'object' && Object.keys(fields).length) {&eol; if (typeof fields.sw_fields === 'object' && Object.keys(fields.sw_fields).length) {&eol; Object.keys(fields.sw_fields)&eol; .forEach(function(field) {&eol; try {&eol; data.incident[field] = JSON.parse(fields.sw_fields[field]);&eol; }&eol; catch (error) {&eol; data.incident[field] = fields.sw_fields[field];&eol; }&eol; });&eol; }&eol;&eol; if (typeof fields.sw_customfields === 'object' && Object.keys(fields.sw_customfields).length) {&eol; data.incident.custom_fields_values = {custom_fields_value: []};&eol; Object.keys(fields.sw_customfields)&eol; .forEach(function(field) {&eol; data.incident.custom_fields_values.custom_fields_value.push({&eol; name: field,&eol; value: fields.sw_customfields[field]&eol; });&eol; });&eol; }&eol; }&eol;&eol; return data;&eol; },&eol;&eol; request: function (method, query, data) {&eol; ['token'].forEach(function (field) {&eol; if (typeof SolarWinds.params !== 'object' &pipe;&pipe; typeof SolarWinds.params[field] === 'undefined'&eol; &pipe;&pipe; SolarWinds.params[field] === '' ) {&eol; throw 'Required SolarWinds param is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; url = SolarWinds.params.endpoint + query,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('X-Samanage-Authorization: Bearer ' + SolarWinds.params.token);&eol; request.addHeader('Accept: application/vnd.samanage.v2.1+json');&eol;&eol; if (typeof SolarWinds.HTTPProxy !== 'undefined' && SolarWinds.HTTPProxy !== '') {&eol; request.setProxy(SolarWinds.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ SolarWinds SD Webhook ] Sending request: ' + url + ((typeof data === 'string')&eol; ? ('\n' + data)&eol; : ''));&eol;&eol; switch (method) {&eol; case 'get':&eol; response = request.get(url, data);&eol; break;&eol;&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; case 'put':&eol; response = request.put(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ SolarWinds SD Webhook ] Received response with status code ' + request.getStatus() +&eol; '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ SolarWinds SD Webhook ] Failed to parse response received from SolarWinds');&eol; response = null;&eol; }&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response !== null && typeof response.error !== 'undefined'&eol; && Object.keys(response.error).length > 0) {&eol; message += ': ' + JSON.stringify(response.error);&eol; }&eol; else if (response !== null && typeof response === 'object'&eol; && Object.keys(response).length > 0) {&eol; Object.keys(response)&eol; .forEach(function(field) {&eol; message += '\n' + field + ': ' + response[field]
84
84
ROW |24 |4 |SysAid | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var SysAid = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; var required = ['url', 'auth_user', 'auth_password', 'category_level_1', 'category_level_2',&eol; 'category_level_3', 'incident_id', 'template_id', 'urgency_id', 'incident_state',&eol; 'default_priority_id'&eol; ];&eol;&eol; required.forEach(function (field) {&eol; if (typeof params !== 'object' &pipe;&pipe; typeof params[field] === 'undefined' &pipe;&pipe; params[field] === '') {&eol; throw 'Required param is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; SysAid.params = params;&eol; if (typeof SysAid.params.url === 'string' && !SysAid.params.url.endsWith('/')) {&eol; SysAid.params.url += '/';&eol; }&eol; },&eol;&eol; login: function () {&eol; var result = SysAid.request('post', 'api/v1/login', {&eol; user_name: SysAid.params.auth_user,&eol; password: SysAid.params.auth_password&eol; });&eol;&eol; return result.response.user.id;&eol; },&eol;&eol; request: function (method, query, data) {&eol; var response,&eol; request = SysAid.req &pipe;&pipe; (SysAid.req = new HttpRequest()),&eol; url = SysAid.params.url + query;&eol;&eol; if (typeof SysAid.HTTPProxy !== 'undefined' && SysAid.HTTPProxy.trim() !== '') {&eol; request.setProxy(SysAid.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ SysAid Webhook ] Sending request: ' +&eol; url + ((typeof data === 'string') ? (' ' + data) : ''));&eol;&eol; switch (method) {&eol; case 'get':&eol; response = request.get(url, data);&eol; break;&eol;&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; case 'put':&eol; response = request.put(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ SysAid Webhook ] Received response with status code ' + request.getStatus() + ': ' + response);&eol;&eol; if (request.getStatus() !== 200) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; message += ': ' + response;&eol; throw message + ' Check debug log for more information.';&eol; }&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ SysAid Webhook ] Failed to parse response received from SysAid');&eol; response = null;&eol; }&eol; }&eol;&eol; if (response === null &pipe;&pipe; (typeof response.Error !== 'undefined' && Object.keys(response.Error).length > 0)) {&eol; throw 'Request failed: ' + JSON.stringify(response.Error);&eol; }&eol;&eol; return {&eol; status: request.getStatus(),&eol; response: response&eol; };&eol; },&eol;&eol; createIncident: function(subject, message, priority) {&eol; var result = SysAid.request('post', 'api/v1/sr/?template=' + encodeURIComponent(SysAid.params.template_id), {&eol; info: [&eol; {&eol; key: 'problem_type',&eol; value: [&eol; SysAid.params.category_level_1,&eol; SysAid.params.category_level_2,&eol; SysAid.params.category_level_3&eol; ].join('_')&eol; },&eol; {&eol; key: 'title',&eol; value: subject&eol; },&eol; {&eol; key: 'description',&eol; value: message&eol; },&eol; {&eol; key: 'status',&eol; value: '1'&eol; },&eol; {&eol; key: 'urgency',&eol; value: SysAid.params.urgency_id&eol; },&eol; {&eol; key: 'priority',&eol; value: priority &pipe;&pipe; SysAid.params.default_priority_id,&eol; }&eol; ]&eol; });&eol;&eol; if (result.response.id === 'undefined') {&eol; throw 'Cannot create SysAid
85
85
ROW |25 |4 |TOPdesk | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var Media = {&eol; params: {},&eol; name: '',&eol; labels: [],&eol; HTTPProxy: '',&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; Media.params = params;&eol; Media.params.api += Media.params.api.endsWith('/') ? '' : '/';&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; if (typeof HTTPProxy !== 'undefined' && HTTPProxy.trim() !== '') {&eol; Media.HTTPProxy = HTTPProxy;&eol; }&eol; },&eol;&eol; request: function (method, query, data) {&eol; ['api', 'token'].forEach(function (field) {&eol; if (typeof Media.params !== 'object' &pipe;&pipe; typeof Media.params[field] === 'undefined'&eol; &pipe;&pipe; Media.params[field] === '') {&eol; throw 'Required ' + Media.name + ' param is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; url = Media.params.api + query,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('Accept: application/json');&eol; request.addHeader('Authorization: ' + Media.params.token);&eol; request.setProxy(Media.HTTPProxy);&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ ' + Media.name + ' Webhook ] Sending request: ' +&eol; url + ((typeof data === 'string') ? ('\n' + data) : ''));&eol;&eol; switch (method) {&eol; case 'get':&eol; response = request.get(url, data);&eol; break;&eol;&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; case 'put':&eol; response = request.put(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ ' + Media.name + ' Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ ' + Media.name + ' Webhook ] Failed to parse response.');&eol; response = null;&eol; }&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response !== null) {&eol; if (typeof response.errors === 'object' && Object.keys(response.errors).length > 0) {&eol; message += ': ' + JSON.stringify(response.errors);&eol; }&eol; else if (typeof response.errorMessages === 'object' && Object.keys(response.errorMessages).length > 0) {&eol; message += ': ' + JSON.stringify(response.errorMessages);&eol; }&eol; else if (typeof response.message === 'string') {&eol; message += ': ' + response.message;&eol; }&eol; }&eol;&eol; throw message + ' Check debug log for more information.';&eol; }&eol;&eol; return {&eol; status: request.getStatus(),&eol; response: response&eol; };&eol; }&eol;};&eol;&eol;try {&eol; var result = {tags: {}},&eol; params = JSON.parse(value),&eol; media = {},&eol; fields = {},&eol; resp = {},&eol; required_params = [&eol; 'alert_subject',&eol; 'alert_message',&eol; 'event_id',&eol; 'event_source',&eol; 'event_value',&eol; 'event_update_status',&eol; 'topdesk_api',&eol; 'topdesk_user',&eol; 'topdesk_password'&eol; ],&eol; severities = [&eol; 'not_classified',&eol; 'information',&eol; 'warning',&eol; 'average',&eol; 'high',&eol; 'disaster',&eol; 'resolved',&eol; 'default'&eol; ],&eol; priority;&eol;&eol; Object.keys(params)&eol; .forEach(function (key) {&eol; if (required_params.indexOf(key) !== -1 && params[key].trim() === '') {&eol; throw 'Parameter "' + key + '" cannot be empty.';&eol; }&eol; if (key.startsWith('topdesk
86
86
ROW |26 |4 |iTop | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var Itop = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; if (params.log !== 'private_log' && params.log !== 'public_log') {&eol; throw 'Incorrect "itop_log" parameter given: ' + params.log + '\nMust be "private_log" or "public_log".';&eol; }&eol;&eol; Itop.params = params;&eol; if (typeof Itop.params.url === 'string') {&eol; if (!Itop.params.url.endsWith('/')) {&eol; Itop.params.url += '/';&eol; }&eol;&eol; Itop.params.url += 'webservices/rest.php?version=' + encodeURIComponent(Itop.params.api_version);&eol; }&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; Itop.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; setCreatePayload: function () {&eol; json_data.operation = 'core/create';&eol; json_data.fields.org_id = Itop.params.organization_id;&eol; json_data.fields.title = params.alert_subject;&eol; json_data.fields.description = params.alert_message.replace('<', '<')&eol; .replace('>', '>')&eol; .replace(/(?:\r\n&pipe;\r&pipe;\n)/g, '<br>');&eol; },&eol;&eol; setUpdatePayload: function () {&eol; json_data.operation = 'core/update';&eol; json_data.key = Itop.params.id;&eol; json_data.fields.title = params.alert_subject;&eol; json_data.fields[Itop.params.log] = {&eol; add_item: {&eol; message: params.alert_subject + '\n' + params.alert_message,&eol; format: 'text'&eol; }&eol; };&eol; },&eol;&eol; request: function (data) {&eol; ['url', 'user', 'password', 'organization_id', 'class', 'api_version', 'id'].forEach(function (field) {&eol; if (typeof Itop.params !== 'object' &pipe;&pipe; typeof Itop.params[field] === 'undefined'&eol; &pipe;&pipe; Itop.params[field] === '' ) {&eol; throw 'Required Itop param is not set: "itop_' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; url = Itop.params.url,&eol; request = new HttpRequest(),&eol; object;&eol;&eol; request.addHeader('Content-Type: multipart/form-data');&eol; request.addHeader('Authorization: Basic ' + btoa(Itop.params.user + ':' + Itop.params.password));&eol;&eol; if (Itop.HTTPProxy) {&eol; request.setProxy(Itop.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ iTop Webhook ] Sending request: ' + url + '&json_data=' + data);&eol;&eol; response = request.post(url + '&json_data=' + encodeURIComponent(data));&eol;&eol; Zabbix.log(4, '[ iTop Webhook ] Received response with status code ' + request.getStatus() + '\n' + response);&eol;&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ iTop Webhook ] Failed to parse response received from iTop');&eol; throw 'Failed to parse response received from iTop.\nRequest status code ' +&eol; request.getStatus() + '. Check debug log for more information.';&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; throw 'Request failed with status code ' + request.getStatus() + '. Check debug log for more information.';&eol; }&eol; else if (typeof response.code !== 'undefined' && response.code !== 0) {&eol; throw 'Request failed with iTop code ' + response.code + ': ' +&eol; JSON.stringify(response.message) + '. Check debug log for more information.';&eol; }&eol; else {&eol; Object.keys(response.objects)&eol; .forEach(function (key) {&eol; object = response.objects[key];&eol; });&eol; &eol; return {&eol; status: request.getStatus(),&eol; response: object.fields&eol; };&eol; }&eol; }&eol;};&eol;&eol;try {&eol; var params = JSON.parse(value),&eol; json_data = {},&eol; itop_params = {},&eol; result = {tags: {}},&eol; required_params = [&eol; 'alert_subject', 'summary', 'event_recovery_value',&eol; 'event_source', 'event_value', 'action_name'&eol; ];&eol;&eol; Object.keys(params)&eol; .forEach(function (key) {&eol; if (key.startsWith('itop_')) {&eol;
87
87
ROW |27 |4 |Rocket.Chat | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var RocketChat = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; RocketChat.params = params;&eol; if (RocketChat.params.url && RocketChat.params.api_url) {&eol; if (!RocketChat.params.url.endsWith('/')) {&eol; RocketChat.params.url += '/';&eol; }&eol; if (!RocketChat.params.api_url.endsWith('/')) {&eol; RocketChat.params.api_url += '/';&eol; }&eol; if (RocketChat.params.api_url.startsWith('/')) {&eol; RocketChat.params.api_url = RocketChat.params.api_url.substring(1);&eol; }&eol;&eol; RocketChat.params.url += RocketChat.params.api_url;&eol; }&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; RocketChat.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; addFields: function (fields) {&eol; var data = [];&eol;&eol; if (typeof fields === 'object' && Object.keys(fields).length) {&eol; Object.keys(fields)&eol; .forEach(function(field) {&eol; if (fields[field] === '') {&eol; Zabbix.log(4, '[ RocketChat Webhook ] Field "' + field +&eol; '" can\'t be empty. The field ignored.');&eol; }&eol; else {&eol; try {&eol; var parts = field.split(':'),&eol; prefix = parts[0].split('_');&eol;&eol; if (typeof prefix[2] === 'undefined'&eol; &pipe;&pipe; (prefix[2] === 'p' && params.event_value === '1')&eol; &pipe;&pipe; (prefix[2] === 'r' && params.event_value === '0')) {&eol; data.push({&eol; title: field.substring(field.indexOf(':') + 1),&eol; value: fields[field],&eol; short: prefix[1] === 'short'&eol; });&eol; }&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ RocketChat Webhook ] Can\'t parse field "' + field +&eol; '". The field ignored.');&eol; }&eol; }&eol; });&eol; }&eol;&eol; return data;&eol; },&eol;&eol; request: function (method, query, data) {&eol; ['url', 'api_url', 'user_id', 'user_token', 'send_to'].forEach(function (field) {&eol; if (typeof RocketChat.params !== 'object' &pipe;&pipe; typeof RocketChat.params[field] === 'undefined'&eol; &pipe;&pipe; RocketChat.params[field] === '' ) {&eol; throw 'Required parameter is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; url = RocketChat.params.url + query,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('X-Auth-Token:' + RocketChat.params.user_token);&eol; request.addHeader('X-User-Id:' + RocketChat.params.user_id);&eol;&eol; if (typeof RocketChat.HTTPProxy !== 'undefined' && RocketChat.HTTPProxy !== '') {&eol; request.setProxy(RocketChat.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ RocketChat Webhook ] Sending request: ' + url +&eol; ((typeof data === 'string') ? ('\n' + data) : ''));&eol;&eol; switch (method) {&eol; case 'get':&eol; response = request.get(url, data);&eol; break;&eol;&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ RocketChat Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ RocketChat Webhook ] Failed to parse response received from RocketChat');&eol; response = null;&eol; }&eol; }&eol;&eol; if (reques
88
88
ROW |28 |4 |VictorOps | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var VictorOps = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; VictorOps.params = params;&eol; if (VictorOps.params.endpoint) {&eol; if (!VictorOps.params.endpoint.endsWith('/')) {&eol; VictorOps.params.endpoint += '/';&eol; }&eol;&eol; if (typeof VictorOps.params.routing_key !== 'undefined'&eol; && VictorOps.params.routing_key !== '{ALERT.SENDTO}'&eol; && VictorOps.params.routing_key !== 'Default') {&eol; VictorOps.params.endpoint += VictorOps.params.routing_key;&eol; }&eol; }&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; VictorOps.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; addFields: function (fields) {&eol; var data = {};&eol;&eol; if (typeof fields === 'object') {&eol; Object.keys(fields)&eol; .forEach(function(field) {&eol; if (fields[field] === '') {&eol; Zabbix.log(4, '[ VictorOps Webhook ] Field "' + field +&eol; '" can\'t be empty. The field ignored.');&eol; }&eol; else {&eol; try {&eol; var parts = field.split(':'),&eol; prefix = parts[0].split('_');&eol;&eol; if (typeof prefix[1] === 'undefined'&eol; &pipe;&pipe; (prefix[1] === 'p' && params.event_value === '1'&eol; && (params.event_update_status === '0'&eol; &pipe;&pipe; params.event_update_status === '{EVENT.UPDATE.STATUS}'))&eol; &pipe;&pipe; (prefix[1] === 'r' && params.event_value === '0'&eol; && (params.event_update_status === '0'&eol; &pipe;&pipe; params.event_update_status === '{EVENT.UPDATE.STATUS}'))&eol; &pipe;&pipe; (prefix[1] === 'u' && params.event_update_status === '1')) {&eol; data[field.substring(field.indexOf(':') + 1)] = fields[field];&eol; }&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ VictorOps Webhook ] Can\'t parse field "' + field +&eol; '". The field ignored.');&eol; }&eol; }&eol; });&eol; }&eol;&eol; return data;&eol; },&eol;&eol; request: function (data) {&eol; if (typeof VictorOps.params !== 'object' &pipe;&pipe; typeof VictorOps.params.endpoint === 'undefined'&eol; &pipe;&pipe; VictorOps.params.endpoint === '' ) {&eol; throw 'Required parameter is not set: "vops_endpoint".';&eol; }&eol;&eol; var response,&eol; url = VictorOps.params.endpoint,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol;&eol; if (typeof VictorOps.HTTPProxy !== 'undefined' && VictorOps.HTTPProxy !== '') {&eol; request.setProxy(VictorOps.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ VictorOps Webhook ] Sending request: ' + url +&eol; ((typeof data === 'string') ? ('\n' + data) : ''));&eol;&eol; response = request.post(url, data);&eol;&eol; Zabbix.log(4, '[ VictorOps Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ VictorOps Webhook ] Failed to parse response received from VictorOps');&eol; response = null;&eol; }&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response !== null && typeof response.messages !== 'undefined') {&eol; message += ': ' + JSON.stringify(response.messages);&eol; }&eol;&eol; throw message + '. Check debug log for more information.';&eol; }&eol;&eo
89
89
ROW |29 |4 |Brevis.one | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var BrevisOne = {&eol; params: [],&eol;&eol; addParam: function (name, value) {&eol; BrevisOne.params.push(name + '=' + encodeURIComponent(value));&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; BrevisOne.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; setPayload: function (params) {&eol; var parts = params.send_to.split(':'),&eol; defaultValues = {&eol; ring: 'true',&eol; flash: 'true',&eol; telauto: 'false'&eol; };&eol;&eol; BrevisOne.addParam('username', params.username);&eol; BrevisOne.addParam('password', params.password);&eol; BrevisOne.addParam('text', params.text);&eol;&eol; if (parts.length > 1) {&eol; BrevisOne.addParam('mode', parts[0]);&eol; BrevisOne.addParam('to', parts[1]);&eol; }&eol; else {&eol; BrevisOne.addParam('to', parts[0]);&eol; }&eol;&eol; Object.keys(defaultValues)&eol; .forEach(function (key) {&eol; if (params[key] && params[key].trim() && params[key].toLowerCase() === defaultValues[key]) {&eol; BrevisOne.addParam(key, defaultValues[key]);&eol; }&eol; });&eol; },&eol;&eol; request: function () {&eol; var response,&eol; request = new HttpRequest(),&eol; data = '?' + BrevisOne.params.join('&');&eol;&eol; request.addHeader('Content-Type: multipart/form-data');&eol;&eol; if (typeof BrevisOne.HTTPProxy !== 'undefined' && BrevisOne.HTTPProxy !== '') {&eol; request.setProxy(BrevisOne.HTTPProxy);&eol; }&eol;&eol; Zabbix.log(4, '[ BrevisOne Webhook ] Sending request.');&eol;&eol; response = request.post(params.endpoint + data);&eol;&eol; Zabbix.log(4, '[ BrevisOne Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response) {&eol; message += ': ' + response;&eol; }&eol;&eol; throw message + '. Check debug log for more information.';&eol; }&eol; }&eol;};&eol;&eol;try {&eol; var params = JSON.parse(value);&eol;&eol; ['endpoint', 'password', 'username', 'text', 'send_to'].forEach(function (field) {&eol; if (typeof params !== 'object' &pipe;&pipe; typeof params[field] === 'undefined'&eol; &pipe;&pipe; !params[field].trim()) {&eol; throw 'Required parameter is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; if (params.send_to === '{ALERT.SENDTO}') {&eol; throw 'Required parameter is not set: "send_to".';&eol; }&eol;&eol; BrevisOne.setProxy(params.HTTPProxy);&eol; BrevisOne.setPayload(params);&eol; BrevisOne.request();&eol;&eol; return 'OK';&eol;}&eol;catch (error) {&eol; Zabbix.log(3, '[ BrevisOne Webhook ] ERROR: ' + error);&eol; throw 'Sending failed: ' + error;&eol;}|30s |0 |0 | | | |
90
90
ROW |30 |4 |Express.ms | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var Express = {&eol; params: [],&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; Express.params = params;&eol;&eol; if (typeof Express.params.url === 'string' && !Express.params.url.endsWith('/')) {&eol; Express.params.url += '/';&eol; }&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; Express.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; request: function (query, data) {&eol; var response,&eol; url = Express.params.url + query,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('Authorization: Bearer ' + Express.params.token);&eol;&eol; if (typeof Express.HTTPProxy !== 'undefined' && Express.HTTPProxy !== '') {&eol; request.setProxy(Express.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ Express Webhook ] Sending request: ' + url +&eol; ((typeof data === 'string') ? ('\n' + data) : ''));&eol;&eol; response = request.post(url, data);&eol;&eol; Zabbix.log(4, '[ Express Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ Express Webhook ] Failed to parse response received from Express');&eol; response = {};&eol; }&eol; }&eol;&eol; if (response.status !== 'ok') {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (typeof response.reason !== 'undefined') {&eol; message += ': ' + JSON.stringify(response.reason);&eol; }&eol;&eol; throw message + '. Check debug log for more information.';&eol; }&eol;&eol; return response.result;&eol; },&eol;&eol; postMessage: function (is_problem) {&eol; var data,&eol; url,&eol; result = {tags: {}},&eol; response;&eol;&eol; if (is_problem) {&eol; data = {&eol; group_chat_id: Express.params.send_to,&eol; notification: {&eol; status: 'ok',&eol; body: Express.params.message&eol; }&eol; };&eol; url = 'api/v3/botx/notification/callback/direct';&eol; }&eol; else {&eol; data = {&eol; reply: {&eol; status: 'ok',&eol; body: Express.params.message&eol; }&eol; };&eol; url = 'api/v3/botx/events/reply_event';&eol;&eol; try {&eol; var tags = JSON.parse(Express.params.tags);&eol; }&eol; catch (error) {&eol; throw 'Value of "express_tags" is not JSON. Value: ' + Express.params.tags + '.';&eol; }&eol;&eol; tags.forEach(function(tag) {&eol; if (tag.tag === '__zbx_ex_sync_id_' + Express.params.send_to) {&eol; data.source_sync_id = tag.value;&eol; }&eol; });&eol;&eol; if (!data.source_sync_id) {&eol; throw 'Cannot update data. sync_id for the provided sender is unknown.';&eol; }&eol; }&eol;&eol; response = Express.request(url, data);&eol;&eol; if (is_problem && response.sync_id) {&eol; result.tags['__zbx_ex_sync_id_' + Express.params.send_to] = response.sync_id;&eol;&eol; return JSON.stringify(result);&eol; }&eol; else {&eol; return 'OK';&eol; }&eol; }&eol;};&eol;&eol;try {&eol; var params = JSON.parse(value),&eol; express = {},&eol; required_params = [&eol; 'express_url', 'express_send_to', 'express_message', 'express_tags', 'express_token',&eol; 'event_source', 'event_value', 'event_update_status'&eol; ];&eol;&eol; Object.keys(params)&eol; .forEach(function (key) {&eol; if (key.startsWith('express_')) {&eol; express[key.substring(8)] = params[key];&eol; }&eol;&eol; if (required_params.indexOf(key) !== -1&eol; && (params[key].trim() === '' &pipe;&pipe; params[key] === '{ALERT.SENDTO}')) {&eol; throw 'Parameter "' + key + '" can\'t be
91
91
ROW |31 |4 |ManageEngine ServiceDesk| | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var MEngine = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol;&eol; MEngine.params = params;&eol; if (typeof MEngine.params.url === 'string') {&eol; if (!MEngine.params.url.endsWith('/')) {&eol; MEngine.params.url += '/';&eol; }&eol;&eol; MEngine.params.url += 'api/v3/';&eol; }&eol;&eol; if (MEngine.params.on_premise.toLowerCase() !== 'true'&eol; && typeof MEngine.params.on_demand_url_auth === 'string') {&eol; if (!MEngine.params.on_demand_url_auth.endsWith('/')) {&eol; MEngine.params.on_demand_url_auth += '/';&eol; }&eol;&eol; MEngine.params.on_demand_url_auth += 'oauth/v2/token?';&eol; }&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; MEngine.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; createLink: function (id, url) {&eol; return url + (url.endsWith('/') ? '' : '/') +&eol; ((MEngine.params.on_premise.toLowerCase() === 'true')&eol; ? ('WorkOrder.do?woMode=viewWO&woID=' + id)&eol; : ('app/itdesk/ui/requests/' + id + '/details')&eol; );&eol; },&eol;&eol; refreshAccessToken: function () {&eol; [&eol; 'on_demand_url_auth',&eol; 'on_demand_refresh_token',&eol; 'on_demand_client_id',&eol; 'on_demand_client_secret'&eol; ].forEach(function (field) {&eol; if (typeof MEngine.params !== 'object' &pipe;&pipe; typeof MEngine.params[field] === 'undefined'&eol; &pipe;&pipe; MEngine.params[field].trim() === '' ) {&eol; throw 'Required MEngine param is not set: "sd_' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; request = new HttpRequest(),&eol; url = MEngine.params.on_demand_url_auth +&eol; 'refresh_token=' + encodeURIComponent(MEngine.params.on_demand_refresh_token) +&eol; '&grant_type=refresh_token&client_id=' + encodeURIComponent(MEngine.params.on_demand_client_id) +&eol; '&client_secret=' + encodeURIComponent(MEngine.params.on_demand_client_secret) +&eol; '&redirect_uri=https://www.zoho.com&scope=SDPOnDemand.requests.ALL';&eol;&eol; if (MEngine.HTTPProxy) {&eol; request.setProxy(MEngine.HTTPProxy);&eol; }&eol;&eol; Zabbix.log(4, '[ ManageEngine Webhook ] Refreshing access token. Request: ' + url);&eol;&eol; response = request.post(url);&eol;&eol; Zabbix.log(4, '[ ManageEngine Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ ManageEngine Webhook ] Failed to parse response received from Zoho Accounts');&eol; }&eol;&eol; if ((request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) && !response.access_token) {&eol; throw 'Access token refresh failed with HTTP status code ' + request.getStatus() +&eol; '. Check debug log for more information.';&eol; }&eol; else {&eol; MEngine.params.on_demand_auth_token = response.access_token;&eol; }&eol; },&eol;&eol; request: function (method, query, data) {&eol; var response,&eol; url = MEngine.params.url + query,&eol; input,&eol; request = new HttpRequest(),&eol; message;&eol;&eol; if (MEngine.params.on_premise.toLowerCase() === 'true') {&eol; request.addHeader('TECHNICIAN_KEY: ' + MEngine.params.on_premise_auth_token);&eol; }&eol; else {&eol; request.addHeader('Authorization: Zoho-oauthtoken ' + MEngine.params.on_demand_auth_token);&eol; request.addHeader('Accept: application/v3+json');&eol; }&eol;&eol; if (MEngine.HTTPProxy) {&eol; request.setProxy(MEngine.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; input = 'input_data=' + encodeURIComponent(data);&eol; Zabbix.log(4, '[ ManageEngine Webhook ] Sending request: ' + url + '?' + input);&eol;&eol; switch (method) {&eol; case 'post':&eol; response = request.post(url, input);&eol; break;&eol;&eol; case 'put':&eol; response = request.put(url, input);&eol;
92
92
ROW |32 |4 |Github | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |3 |10s |1 |var Github = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol; Github.params = params;&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; Github.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; urlCheckFormat: function (url) {&eol;&eol; if (typeof url === 'string' && !url.endsWith('/')) {&eol; url += '/';&eol; }&eol;&eol; if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {&eol; url = 'https://' + url;&eol; }&eol;&eol; return url;&eol; },&eol;&eol; createProblemURL: function (zabbix_url, triggerid, eventid, event_source) {&eol; var problem_url = zabbix_url;&eol;&eol; if (event_source === '0') {&eol; problem_url += 'tr_events.php?triggerid=' + triggerid + '&eventid=' + eventid;&eol; }&eol;&eol; return problem_url;&eol; },&eol;&eol; request: function (method, url, data) {&eol; ['token', 'user_agent'].forEach(function (field) {&eol; if (typeof Github.params !== 'object' &pipe;&pipe; typeof Github.params[field] === 'undefined' &pipe;&pipe; Github.params[field] === '') {&eol; throw 'Required Github param is not set: "' + field + '".';&eol; }&eol; });&eol;&eol; var response,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('User-Agent: ' + Github.params.user_agent);&eol; request.addHeader('Accept: application/vnd.github.v3+json');&eol; request.addHeader('Authorization: token ' + Github.params.token);&eol;&eol; if (typeof Github.HTTPProxy !== 'undefined' && Github.HTTPProxy !== '') {&eol; request.setProxy(Github.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ Github Webhook ] Sending request: ' + url + ((typeof data === 'string')&eol; ? ('\n' + data)&eol; : ''));&eol;&eol; switch (method) {&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; case 'patch':&eol; response = request.patch(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ Github Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ Github Webhook ] Failed to parse response received from Github');&eol; response = null;&eol; }&eol; }&eol;&eol; if (typeof response !== 'object') {&eol; throw 'Failed to process response received from Github. Check debug log for more information.';&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response.message) {&eol; message += ': ' + response.message;&eol; }&eol;&eol; throw message + ' Check debug log for more information.';&eol; }&eol;&eol; return response;&eol; }&eol;};&eol;&eol;try {&eol; var params = JSON.parse(value),&eol; github = {},&eol; url = '',&eol; data = {},&eol; comment_data,&eol; result = { tags: {} },&eol; required_params = [&eol; 'alert_subject', 'alert_message', 'event_source', 'event_value',&eol; 'event_update_status', 'event_recovery_value', 'event_severity',&eol; 'event_id', 'trigger_id', 'zabbix_url',&eol; 'github_token', 'github_url', 'github_user_agent'&eol; ],&eol; method = 'post',&eol; process_tags = true;&eol;&eol; Object.keys(params)&eol; .forEach(function (key) {&eol; if (key.startsWith('github_')) {&eol; github[key.substring(7)] = params[key];&eol; }&eol; else if (required_params.indexOf(key) !== -1 && params[key] === '') {&eol; throw 'Parameter "' + key + '" can\'t be empty.';&eol; }&eol; });&eol;&eol; if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {&eol; throw 'Incorrect "event_source" parameter given: ' + params.event_s
93
+
ROW |33 |4 |GLPi | | | | | | | |0 |25 |0 |0 |0 |0 | |1 |1 |10s |1 |var GLPi = {&eol; params: {},&eol;&eol; setParams: function (params) {&eol; if (typeof params !== 'object') {&eol; return;&eol; }&eol; GLPi.params = params;&eol; },&eol;&eol; setProxy: function (HTTPProxy) {&eol; GLPi.HTTPProxy = HTTPProxy;&eol; },&eol;&eol; urlCheckFormat: function (url) {&eol; if (typeof url === 'string' && !url.endsWith('/')) {&eol; url += '/';&eol; }&eol;&eol; if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {&eol; url = 'https://' + url;&eol; }&eol;&eol; return url;&eol; },&eol;&eol; getAuthToken: function (url, token) {&eol; var response,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('Authorization: user_token ' + token);&eol;&eol; response = request.get(url + "apirest.php/initSession");&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ GLPi Webhook ] Failed to receive authentication token from GLPi.');&eol; response = null;&eol; }&eol; }&eol;&eol; if (Array.isArray(response)) {&eol; if (response[1]) {&eol; throw 'Error received from GLPi: ' + response[1];&eol; } else {&eol; throw 'Failed to receive authentication token from GLPi.';&eol; }&eol; }&eol;&eol; if (typeof response !== 'object' &pipe;&pipe; !response.session_token) {&eol; throw 'Failed to process response received from getting GLPi authentication token. Check debug log for more information.';&eol; }&eol;&eol; return response.session_token;&eol; },&eol;&eol; getProblemUrl: function (zabbix_url, triggerid, eventid, event_source) {&eol; var problem_url = zabbix_url;&eol;&eol; if (event_source === '0') {&eol; problem_url += 'tr_events.php?triggerid=' + triggerid + '&eventid=' + eventid;&eol; }&eol;&eol; return problem_url;&eol; },&eol;&eol; request: function (method, url, data) {&eol; if (typeof GLPi.params !== 'object' &pipe;&pipe; typeof GLPi.params.authToken === 'undefined' &pipe;&pipe; GLPi.params.authToken === '') {&eol; throw 'Required GLPi param authToken is not set.';&eol; }&eol;&eol; var response,&eol; request = new HttpRequest();&eol;&eol; request.addHeader('Content-Type: application/json');&eol; request.addHeader('Session-Token:' + GLPi.params.authToken);&eol;&eol; if (typeof GLPi.HTTPProxy !== 'undefined' && GLPi.HTTPProxy !== '') {&eol; request.setProxy(GLPi.HTTPProxy);&eol; }&eol;&eol; if (typeof data !== 'undefined') {&eol; data = JSON.stringify(data);&eol; }&eol;&eol; Zabbix.log(4, '[ GLPi Webhook ] Sending request: ' + url + ((typeof data === 'string')&eol; ? ('\n' + data)&eol; : ''));&eol;&eol; switch (method) {&eol; case 'post':&eol; response = request.post(url, data);&eol; break;&eol;&eol; case 'put':&eol; response = request.put(url, data);&eol; break;&eol;&eol; default:&eol; throw 'Unsupported HTTP request method: ' + method;&eol; }&eol;&eol; Zabbix.log(4, '[ GLPi Webhook ] Received response with status code ' +&eol; request.getStatus() + '\n' + response);&eol;&eol; if (response !== null) {&eol; try {&eol; response = JSON.parse(response);&eol; }&eol; catch (error) {&eol; Zabbix.log(4, '[ GLPi Webhook ] Failed to parse response received from GLPi');&eol; response = null;&eol; }&eol; }&eol;&eol; if (typeof response !== 'object' &pipe;&pipe; typeof response === 'undefined' &pipe;&pipe; response === null) {&eol; throw 'Failed to process response received from GLPi. Check debug log for more information.';&eol; }&eol;&eol; if (request.getStatus() < 200 &pipe;&pipe; request.getStatus() >= 300) {&eol; var message = 'Request failed with status code ' + request.getStatus();&eol;&eol; if (response.message) {&eol; message += ': ' + response.message;&eol; }&eol;&eol; throw message + ' Check debug log for more information.';&eol; }&eol;&eol; return response;&eol; }&eol;};&eol
93
94
94
95
TABLE |media_type_param
95
96
FIELDS|mediatype_paramid|mediatypeid|name |value |
96
97
ROW |1 |5 |zabbix_url |{$ZABBIX.URL} |
97
98
ROW |2 |5 |bot_token |<YOUR BOT TOKEN> |
98
99
ROW |3 |5 |mattermost_url |<YOUR MATTERMOST URL> |
99
100
ROW |4 |5 |send_mode |alarm |
100
101
ROW |5 |5 |send_to |{ALERT.SENDTO} |
101
102
ROW |6 |5 |event_tags |{EVENT.TAGS} |
102
103
ROW |8 |5 |event_nseverity |{EVENT.NSEVERITY} |
641
642
ROW |572 |32 |event_source |{EVENT.SOURCE} |
642
643
ROW |573 |32 |event_update_status |{EVENT.UPDATE.STATUS} |
643
644
ROW |574 |32 |event_value |{EVENT.VALUE} |
644
645
ROW |575 |32 |github_issue_number |{EVENT.TAGS.__zbx_github_issue_number} |
645
646
ROW |576 |32 |github_repo |{ALERT.SENDTO} |
646
647
ROW |577 |32 |github_token |<PLACE GITHUB TOKEN> |
647
648
ROW |578 |32 |github_url |https://api.github.com |
648
649
ROW |579 |32 |github_user_agent |Zabbix/6.0 |
649
650
ROW |580 |32 |trigger_id |{TRIGGER.ID} |
650
651
ROW |581 |32 |zabbix_url |{$ZABBIX.URL} |
652
+
ROW |582 |33 |alert_message |{ALERT.MESSAGE} |
653
+
ROW |583 |33 |alert_subject |{ALERT.SUBJECT} |
654
+
ROW |584 |33 |event_id |{EVENT.ID} |
655
+
ROW |585 |33 |event_nseverity |{EVENT.NSEVERITY} |
656
+
ROW |586 |33 |event_recovery_value |{EVENT.RECOVERY.VALUE} |
657
+
ROW |587 |33 |event_source |{EVENT.SOURCE} |
658
+
ROW |588 |33 |event_update_status |{EVENT.UPDATE.STATUS} |
659
+
ROW |589 |33 |event_value |{EVENT.VALUE} |
660
+
ROW |590 |33 |glpi_problem_id |{EVENT.TAGS.__zbx_glpi_problem_id} |
661
+
ROW |591 |33 |glpi_token |<PLACE GLPI TOKEN> |
662
+
ROW |592 |33 |glpi_url |<PLACE GLPI URL> |
663
+
ROW |593 |33 |trigger_id |{TRIGGER.ID} |
664
+
ROW |594 |33 |zabbix_url |{$ZABBIX.URL} |
651
665
652
666
TABLE |media_type_message
653
667
FIELDS|mediatype_messageid|mediatypeid|eventsource|recovery|subject |message |
654
668
ROW |1 |1 |0 |0 |Problem: {EVENT.NAME} |Problem started at {EVENT.TIME} on {EVENT.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Operational data: {EVENT.OPDATA}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
655
669
ROW |2 |1 |0 |1 |Resolved in {EVENT.DURATION}: {EVENT.NAME} |Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}&eol;Problem name: {EVENT.NAME}&eol;Problem duration: {EVENT.DURATION}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
656
670
ROW |3 |1 |0 |2 |Updated problem in {EVENT.AGE}: {EVENT.NAME} |{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.&eol;{EVENT.UPDATE.MESSAGE}&eol;&eol;Current problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}. |
657
671
ROW |4 |1 |1 |0 |Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}|Discovery rule: {DISCOVERY.RULE.NAME}&eol;&eol;Device IP: {DISCOVERY.DEVICE.IPADDRESS}&eol;Device DNS: {DISCOVERY.DEVICE.DNS}&eol;Device status: {DISCOVERY.DEVICE.STATUS}&eol;Device uptime: {DISCOVERY.DEVICE.UPTIME}&eol;&eol;Device service name: {DISCOVERY.SERVICE.NAME}&eol;Device service port: {DISCOVERY.SERVICE.PORT}&eol;Device service status: {DISCOVERY.SERVICE.STATUS}&eol;Device service uptime: {DISCOVERY.SERVICE.UPTIME} |
658
672
ROW |5 |1 |2 |0 |Autoregistration: {HOST.HOST} |Host name: {HOST.HOST}&eol;Host IP: {HOST.IP}&eol;Agent port: {HOST.PORT} |
659
673
ROW |6 |3 |0 |0 | |{EVENT.SEVERITY}: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;{EVENT.DATE} {EVENT.TIME} |
660
674
ROW |7 |3 |0 |1 | |Resolved in {EVENT.DURATION}: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;{EVENT.DATE} {EVENT.TIME} |
798
812
ROW |145 |31 |0 |0 |[{EVENT.STATUS}] {EVENT.NAME} |Problem started at {EVENT.TIME} on {EVENT.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Operational data: {EVENT.OPDATA}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
799
813
ROW |146 |31 |0 |1 |[{EVENT.STATUS}] {EVENT.NAME} |Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
800
814
ROW |147 |31 |0 |2 |[{EVENT.STATUS}] {EVENT.NAME} |{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.&eol;{EVENT.UPDATE.MESSAGE}&eol;&eol;Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}. |
801
815
ROW |148 |31 |1 |0 |Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}|Discovery rule: {DISCOVERY.RULE.NAME}&eol;&eol;Device IP: {DISCOVERY.DEVICE.IPADDRESS}&eol;Device DNS: {DISCOVERY.DEVICE.DNS}&eol;Device status: {DISCOVERY.DEVICE.STATUS}&eol;Device uptime: {DISCOVERY.DEVICE.UPTIME}&eol;&eol;Device service name: {DISCOVERY.SERVICE.NAME}&eol;Device service port: {DISCOVERY.SERVICE.PORT}&eol;Device service status: {DISCOVERY.SERVICE.STATUS}&eol;Device service uptime: {DISCOVERY.SERVICE.UPTIME} |
802
816
ROW |149 |31 |2 |0 |Autoregistration: {HOST.HOST} |Host name: {HOST.HOST}&eol;Host IP: {HOST.IP}&eol;Agent port: {HOST.PORT} |
803
817
ROW |150 |32 |0 |0 |[{EVENT.STATUS}] {EVENT.NAME} |Problem started at {EVENT.TIME} on {EVENT.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Operational data: {EVENT.OPDATA}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
804
818
ROW |151 |32 |0 |1 |[{EVENT.STATUS}] {EVENT.NAME} |Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
805
819
ROW |152 |32 |0 |2 |[{EVENT.STATUS}] {EVENT.NAME} |{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.&eol;{EVENT.UPDATE.MESSAGE}&eol;&eol;Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}. |
806
820
ROW |153 |32 |1 |0 |Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}|Discovery rule: {DISCOVERY.RULE.NAME}&eol;&eol;Device IP: {DISCOVERY.DEVICE.IPADDRESS}&eol;Device DNS: {DISCOVERY.DEVICE.DNS}&eol;Device status: {DISCOVERY.DEVICE.STATUS}&eol;Device uptime: {DISCOVERY.DEVICE.UPTIME}&eol;&eol;Device service name: {DISCOVERY.SERVICE.NAME}&eol;Device service port: {DISCOVERY.SERVICE.PORT}&eol;Device service status: {DISCOVERY.SERVICE.STATUS}&eol;Device service uptime: {DISCOVERY.SERVICE.UPTIME} |
807
821
ROW |154 |32 |2 |0 |Autoregistration: {HOST.HOST} |Host name: {HOST.HOST}&eol;Host IP: {HOST.IP}&eol;Agent port: {HOST.PORT} |
822
+
ROW |155 |33 |0 |0 |[{EVENT.STATUS}] {EVENT.NAME} |Problem started at {EVENT.TIME} on {EVENT.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Operational data: {EVENT.OPDATA}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
823
+
ROW |156 |33 |0 |1 |[{EVENT.STATUS}] {EVENT.NAME} |Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}&eol;Problem name: {EVENT.NAME}&eol;Host: {HOST.NAME}&eol;Severity: {EVENT.SEVERITY}&eol;Original problem ID: {EVENT.ID}&eol;{TRIGGER.URL} |
824
+
ROW |157 |33 |0 |2 |[{EVENT.STATUS}] {EVENT.NAME} |{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.&eol;{EVENT.UPDATE.MESSAGE}&eol;&eol;Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}. |
825
+
ROW |158 |33 |1 |0 |Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}|Discovery rule: {DISCOVERY.RULE.NAME}&eol;&eol;Device IP: {DISCOVERY.DEVICE.IPADDRESS}&eol;Device DNS: {DISCOVERY.DEVICE.DNS}&eol;Device status: {DISCOVERY.DEVICE.STATUS}&eol;Device uptime: {DISCOVERY.DEVICE.UPTIME}&eol;&eol;Device service name: {DISCOVERY.SERVICE.NAME}&eol;Device service port: {DISCOVERY.SERVICE.PORT}&eol;Device service status: {DISCOVERY.SERVICE.STATUS}&eol;Device service uptime: {DISCOVERY.SERVICE.UPTIME} |
826
+
ROW |159 |33 |2 |0 |Autoregistration: {HOST.HOST} |Host name: {HOST.HOST}&eol;Host IP: {HOST.IP}&eol;Agent port: {HOST.PORT} |
808
827
809
828
TABLE |usrgrp
810
829
FIELDS|usrgrpid|name |gui_access|users_status|debug_mode|
811
830
ROW |7 |Zabbix administrators |0 |0 |0 |
812
831
ROW |8 |Guests |1 |0 |0 |
813
832
ROW |9 |Disabled |0 |1 |0 |
814
833
ROW |11 |Enabled debug mode |0 |0 |1 |
815
834
ROW |12 |No access to the frontend|3 |0 |0 |
816
835
817
836
TABLE |users_groups