zbx-tg-dashboard/README.md

115 lines
4.0 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# zabbix to tg dashboard
swagger - https://osnova-api-alert.sm8255082.ru/docs
endpoints:
- https://osnova-api-alert.sm8255082.ru/ping (get, post)
без авторизации, без параметров
- https://osnova-api-alert.sm8255082.ru/api/v1/zbx/send-to-dashboard (post)
в заголовке должен быть токен 'x-api-key: токен'
должны предаваться в data:
```json
{
"message": "str - текст сообщения вместе с темой",
"event_id": "int - id алерта",
"event_value": "int - 0, если ОК, 1, если проблема ",
"tg_tread_id": "int - id подчата ",
"tg_chat_id": "int - id чата",
"tg_token": "str - токен телеграм бота"
```
Параметры для 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 для заббикса:
```javascript
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.';
}
}
}
try {
sendMessage(value);
return 'OK';
}
catch (error) {
throw 'Unknown error ' + error;
}
```
You can try to get the message_thread_id from the message link
- send a message to the topic you need from the application
- right click on the sent message and choose "Copy message link"
- paste link somewhere
- you will see something like this: https://t.me/c/1112223334/25/33
- the value 25(value after long number) from the link will be message_thread_id
I assume that -100 + 1112223334 - will be equal chat_id
The number after will be message_thread_id
And the last one should be message_id