From 424fb7dfb549abf9d09296f726e92dbc79e5136d Mon Sep 17 00:00:00 2001 From: sergey Date: Mon, 10 Mar 2025 18:21:30 +0300 Subject: [PATCH] update readme --- README.md | 123 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 759ed30..5881992 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# osnova-api-alert +# zabbix to tg dashboard swagger - https://osnova-api-alert.sm8255082.ru/docs @@ -11,60 +11,91 @@ endpoints: ```json { - "text": "string", - "subject": "string", - "problem_id": 0 -} -``` -- https://osnova-api-alert.sm8255082.ru/api/v1/zbx/send-to-net-chat (post) - в заголовке должен быть токен 'x-api-key: токен' - должны предаваться в data: + "message": "str - текст сообщения вместе с темой", + "event_id": "int - id алерта", + "event_value": "int - 0, если ОК, 1, если проблема ", + "tg_tread_id": "int - id подчата ", + "tg_chat_id": "int - id чата", + "tg_token": "str - токен телеграм бота" -```json -{ - "text": "string", - "subject": "string" -} ``` +Параметры для mediatype: +``` + parameters: + - name: ApiToken + value: страшносекурныйтокен + - name: ApiURL + value: 'https://example.com/api/v1/zbx/send-to-dashboard' + - name: event_id + value: '{EVENT.ID}' + - name: event_severity + value: '{EVENT.SEVERITY}' + - name: event_value + value: '{EVENT.VALUE}' + - name: message + value: '{ALERT.MESSAGE}' + - name: subject + value: '{ALERT.SUBJECT}' + - name: tg_chat_id + value: '{$TG_CHAT_ID}' + - name: tg_token + value: '{$TG_BOT_TOKEN}' + - name: tg_tread_id + value: '{ALERT.SENDTO}' +``` -js для заббикса: +Пример js для заббикса: ```javascript - function sendMessage(value) { - var params = JSON.parse(value), - data, - response, - request = new HttpRequest(), - url = 'https://osnova-api-alert.sm8255082.ru/api/v1/tg/send'; - request.addHeader('Content-Type: application/json'); - request.addHeader('x-api-key: токен'); - data = JSON.stringify(params); - response = request.post(url, data); - - if (request.getStatus() === 200) { - return 'OK'; - } - else { - if (typeof response.description === 'string') { - throw response.description; + function sendMessage(value) { + var params = JSON.parse(value), + data, + response, + request = new HttpRequest(), + url = params.ApiURL; + request.addHeader('Content-Type: application/json'); + request.addHeader('x-api-key: ' + params.ApiToken); + if (params.event_severity === 'Not classified') { + params.message = '⚪️' + params.subject + '⚪️' + '\n' + params.message; + } else if (params.event_severity === 'Information') { + params.message = '🔵' + params.subject + '🔵' + '\n' + params.message; + } else if (params.event_severity === 'Warning') { + params.message = '🟡' + params.subject + '🟡' + '\n' + params.message; + } else if (params.event_severity === 'Average') { + params.message = '🟠' + params.subject + '🟠' + '\n' + params.message; + } else if (params.event_severity === 'High') { + params.message = '🔴' + params.subject + '🔴' + '\n' + params.message; + } else if (params.event_severity === 'Disaster') { + params.message = '🟤' + params.subject + '🟤' + '\n' + params.message; + } else { + params.message = params.subject + '\n' + params.message; + } + data = JSON.stringify(params); + response = request.post(url, data); + + if (request.getStatus() === 200) { + return 'OK'; + } + else { + if (typeof response.description === 'string') { + throw response.description; + } + else { + throw 'Unknown error. Check debug log for more information.'; + } + } } - else { - throw 'Unknown error. Check debug log for more information.'; + + + try { + sendMessage(value); + return 'OK'; + } + catch (error) { + throw 'Unknown error ' + error; } - } - } - - - try { - Zabbix.log(4, value) - sendMessage(value); - return 'OK'; - } - catch (error) { - throw 'Unknown error ' + error; - } ```