Go to file
sergey 3262970b6e Merge pull request 'dev-1.0.0' (#1) from dev-1.0.0 into main
Reviewed-on: Osnova/zbx-tg-dashboard#1
2025-03-10 15:38:19 +00:00
auth its life 2025-03-10 18:12:40 +03:00
config its life 2025-03-10 18:12:40 +03:00
docker its life 2025-03-10 18:12:40 +03:00
redis_db old project 2025-03-10 11:11:59 +03:00
routers its life 2025-03-10 18:12:40 +03:00
schemas its life 2025-03-10 18:12:40 +03:00
telegram its life 2025-03-10 18:12:40 +03:00
web/static/swagger old project 2025-03-10 11:11:59 +03:00
.gitignore init 2025-03-10 11:05:38 +03:00
LICENSE old project 2025-03-10 11:11:59 +03:00
README.md update readme 2025-03-10 18:21:30 +03:00
main.py old project 2025-03-10 11:11:59 +03:00
pyproject.toml old project 2025-03-10 11:11:59 +03:00
uv.lock old project 2025-03-10 11:11:59 +03:00

README.md

zabbix to tg dashboard

swagger - https://osnova-api-alert.sm8255082.ru/docs

endpoints:

{
    "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 для заббикса:

        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