Здравствуйте
Настроил уведомления в телеграм.
Периодически уведомления не приходят.
В журнале событий вижу события
Notification channel telegram is down.
Потом через несколько секунд или минут
Notification channel telegram is up.
Сервер поднят на Windows 8.1. Версия netxms последняя. Интернет кабельный Дом.ру.
Что можно проверить? Куда копать?
Журнал уведомлений прикрепил скриншотом.
Попробуйте в Tools ->Server console дать эти две команды
debug nc.* 7
debug ncd.* 7
это поднимет уровень отладки для сообщений относящихся к notification channel. Дальше нужно подождать пока такие события еще раз повторяться и посмотреть что в серверном логе.
Выполнил команды. Наблюдаю
По журналу событий в 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.
Скриншот прикладываю.
В журнале событий имеется только одна повторяющаяся ошибка:
Call to curl_easy_perform() failed
Для тестирования поднял socks5 прокси для телеграмма на VPS сервере заграницей. Прописал данные прокси в параметрах notification channels в разделе telegram.
Посмотрю будут ли ошибки в журнале событий при подключению к боту telegram через прокси.
Подключение прокси не повлияло. так и фиксирую ошибки в журнале событий
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
Есть идеи что еще можно проверить?
Мы добавим в следующем релизе в логе более подробную информацию, что было причиной этого curl_easy_perform()
Спасибо.
Пока что отключил уведомление о недоступности канала оповещений.
Заметил что если большое количество уведомлений в короткое время то практически всегда получаю ошибку отправки уведомлений в телеграм.
А при отправке большого количества уведомлений ошибка такая же, curl_easy_perform() failed ?
Поздно увидел сообщение))
Да. Ошибка такая же.
Мой рецепт устранения: установил гарантированную полосу пропускания для сервера на роутере (QOS), увеличил интервал задержки перед отправкой уведомлений до 2-3 мин (и отмену если устройство появилось в сети), установил 2-3 кратный опрос перед изменением статуса (pool count) и ошибка пропала.
Возможно кому поможет вот сборный документ по ограничениям телеграм:
https://docs.google.com/spreadsheets/d/1-mpB7PuxlScIIe-jH793Yp1g8AIFseA_GlUwZva2Rvs/edit
Единственное что не могу побороть/настроить это так называемый шторм событий. 90% устройств у нас мониторятся удаленно через прокси-агенты. И вот когда интернет на сервере пропадает и потом возобновляется то в телеграм отправляется много сообщений... и снова получаю ошибку curl_easy_perform() failed.
Тоже самое получаю когда сервер Netxms выключался на некоторое время (установка крупных обновлений, ТО, отключение электропитания).
Добавили еще обработку сетевых ошибок в драйвере Телеграмма, это пойдет в 4.3