Уведомления телеграм. Нестабильная работа

Started by Stanislav, August 23, 2022, 10:25:11 AM

Previous topic - Next topic

Stanislav

Здравствуйте
Настроил уведомления в телеграм.
Периодически уведомления не приходят.
В журнале событий вижу события
Notification channel telegram is down.
Потом через несколько секунд или минут
Notification channel telegram is up.

Сервер поднят на Windows 8.1. Версия netxms последняя. Интернет кабельный Дом.ру.

Что можно проверить? Куда копать?

Stanislav


Filipp Sudanov

Попробуйте в Tools ->Server console дать эти две команды
debug nc.* 7
debug ncd.* 7


это поднимет уровень отладки для сообщений относящихся к notification channel. Дальше нужно подождать пока такие события еще раз повторяться и посмотреть что в серверном логе.

Stanislav


Stanislav

По журналу событий в 16.16 наступило событие
Notification channel telegram is down.
В логе сервера (файл C:\NetXMS\etc\log.txt) появились записи:
2022.08.23 16:15:59.559 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): got 23 bytes
2022.08.23 16:15:59.559 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): valid JSON document received
2022.08.23 16:16:12.268 *D* [ncd.telegram       ] Call to curl_easy_perform() failed
2022.08.23 16:16:49.630 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): got 23 bytes
2022.08.23 16:16:49.630 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): valid JSON document received
2022.08.23 16:17:12.601 *D* [ncd.telegram       ] Got 199 bytes
2022.08.23 16:17:39.699 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): got 23 bytes
2022.08.23 16:17:39.699 *D* [ncd.telegram       ] UpdateHandler(ReportNetXMS): valid JSON document received
2022.08.23 16:18:12.941 *D* [ncd.telegram       ] Got 199 bytes
В 16.17 произошло событие
Notification channel telegram is up.

Скриншот прикладываю.

Stanislav

В журнале событий имеется только одна повторяющаяся ошибка:
Call to curl_easy_perform() failed

Для тестирования поднял socks5 прокси для телеграмма на VPS сервере заграницей. Прописал данные прокси в параметрах notification channels в разделе telegram.
Посмотрю будут ли ошибки в журнале событий при подключению к боту telegram через прокси.

Stanislav

Подключение прокси не повлияло. так и фиксирую ошибки в журнале событий
2022.08.24 15:11:31.832 *D* [ncd.telegram       ] SendTelegramRequest: using proxy xxx.xxx.xxx.xxx
2022.08.24 15:11:31.832 *D* [ncd.telegram       ] SendTelegramRequest: proxy port xxxx
2022.08.24 15:11:31.832 *D* [ncd.telegram       ] SendTelegramRequest: proxy type 5
2022.08.24 15:11:31.832 *D* [ncd.telegram       ] SendTelegramRequest: proxy login someuser
2022.08.24 15:11:31.832 *D* [ncd.telegram       ] SendTelegramRequest: proxy password set
2022.08.24 15:11:33.551 *D* [ncd.telegram       ] Call to curl_easy_perform() failed

Есть идеи что еще можно проверить?



Filipp Sudanov

Мы добавим в следующем релизе в логе более подробную информацию, что было причиной этого curl_easy_perform()

Stanislav

Спасибо.
Пока что отключил уведомление о недоступности канала оповещений.

Stanislav

Заметил что если большое количество уведомлений в короткое время то практически всегда получаю ошибку отправки уведомлений в телеграм.

Filipp Sudanov

А при отправке большого количества уведомлений ошибка такая же, curl_easy_perform() failed ?

Stanislav

Поздно увидел сообщение))

Да. Ошибка такая же.

Мой рецепт устранения: установил гарантированную полосу пропускания для сервера на роутере (QOS), увеличил интервал задержки перед отправкой уведомлений до 2-3 мин (и отмену если устройство появилось в сети), установил 2-3 кратный опрос перед изменением статуса (pool count) и ошибка пропала.

Возможно кому поможет вот сборный документ по ограничениям телеграм:
https://docs.google.com/spreadsheets/d/1-mpB7PuxlScIIe-jH793Yp1g8AIFseA_GlUwZva2Rvs/edit

Единственное что не могу побороть/настроить это так называемый шторм событий. 90% устройств у нас мониторятся удаленно через прокси-агенты. И вот когда интернет на сервере пропадает и потом возобновляется то в телеграм отправляется много сообщений... и снова получаю ошибку  curl_easy_perform() failed.

Тоже самое получаю когда сервер Netxms выключался на некоторое время (установка крупных обновлений, ТО, отключение электропитания).

Filipp Sudanov

Добавили еще обработку сетевых ошибок в драйвере Телеграмма, это пойдет в 4.3