E-mail - это не уведомление в реальном времени. Чтобы специалист сразу узнал, что заявка изменилась, оповещение должно появиться внутри GLPI. Два решения делают это противоположными путями: плагин Unread выделяет в списках то, что ещё не просмотрено, а модуль Smart Notify (NexTool) добавляет глобальный колокольчик в панель навигации, со звуком и пользовательскими предпочтениями. И есть фактор, который решает ещё до любых функций: версия GLPI, с которой вы работаете.
Контекст: почему одного e-mail недостаточно
В стандартном GLPI все уведомления уходят по e-mail. На практике специалист, у которого система открыта весь день, вынужден:
- Постоянно переключаться между очередью GLPI и почтовым ящиком;
- Выискивать письма GLPI среди десятков других;
- Переходить по ссылке из письма только для того, чтобы вернуться к заявке, которая и так была на экране.
Результат известен: запоздалый ответ, комментарий, который никто не увидел, согласование, ждущее одного клика. Внутреннее уведомление устраняет эти метания - но у слова «внутреннее» два совершенно разных значения, и именно здесь два плагина расходятся.
Две разные философии
Unread - плагин сообщества с узкой задачей: визуально отмечать в списках элементы (заявки, комментарии), которые вы ещё не открывали. Он пассивен - выделение появляется, когда вы уже смотрите на список. Ни звука, ни колокольчика, ни пользовательских предпочтений. Большое преимущество - эксплуатационные затраты, близкие к нулю: в фоне ничего не работает.
Smart Notify (модуль NexTool, GLPI 11) активен. Он собирает 11 источников событий, которые уже существуют в GLPI, - комментарии, задачи, согласования и решения по заявкам, проблемам и изменениям, а также прикреплённые документы и ручные объявления администратора - и показывает всё это в колокольчике в панели навигации, видимом на любом экране. Есть счётчик непрочитанного, звук по приоритету, синхронизация между вкладками и панель предпочтений, где каждый специалист включает или отключает то, что хочет получать. Важный момент: он не создаёт новых событий, а лишь собирает и сигнализирует о том, что GLPI уже зарегистрировал.
Прямое сравнение
| Критерий | Smart Notify (NexTool) | Unread |
|---|---|---|
| Природа | Модуль NexTool для GLPI 11 | Плагин сообщества |
| Где появляется оповещение | Глобальный колокольчик в панели навигации, на любом экране | Выделение в списке элементов |
| Модель обновления | Фоновый опрос (15-120 с) | При загрузке списка |
| Источники событий | 11 (комментарий, задача, согласование, решение, документ и ручные объявления по заявкам/проблемам/изменениям) | Прочитано / не прочитано для элементов |
| Звук по приоритету | Да (4 тона: subtle, default, alert, alarm) | Нет |
| Пользовательские предпочтения | Да (11 типов + звук, для каждого специалиста) | Нет |
| Синхронизация между вкладками | Да (BroadcastChannel + резервный localStorage) | Нет |
| Разделитель «Новые сообщения» в ленте | Да | Нет |
| Индикатор в списках | Красные точки у каждого непрочитанного элемента | Выделение строки/элемента |
| Ручное объявление администратора (broadcast) | Да (таргетинг: все, пользователь, группа, организация) | Нет |
| Автоматическая очистка | Да (ежедневный cron, настраиваемый срок хранения) | Неприменимо |
| Нагрузка на базу на активного пользователя | 1 запрос за цикл опроса | Близка к нулю в фоне |
| Поддерживаемый GLPI | 11 (glpi_major 11 в манифесте) | Зависит от версии установленного плагина |
| Цена | Бесплатно | Бесплатно |
Компромисс, который важен в эксплуатации
При сопровождении GLPI клиентов всегда всплывает не список функций, а стоимость опроса. Smart Notify обновляет колокольчик опросом (настраиваемый интервал от 15 до 120 секунд), а не через WebSocket. Каждый специалист с открытым экраном отправляет запрос к базе в каждом цикле. В работе с десятками одновременных специалистов интервал в 15 с умножает эти запросы без реального выигрыша в восприятии. Поэтому в продуктиве мы ставим от 30 до 45 секунд: для пользователя это незаметно, а база остаётся спокойной. Модуль помогает двумя способами - приостанавливает опрос, когда вкладка неактивна (событие visibilitychange), и вызывает session_write_close() в самом начале запроса на чтение, чтобы опрос не застревал за блокировкой сессии самого пользователя.
Самая частая жалоба, которую мы видим в поддержке, - специалист «не получает уведомление о собственном комментарии». Это сделано намеренно: Smart Notify исключает действия самого пользователя - вас не оповещают о том, что вы написали сами. Другая настройка, которую мы всегда делаем, - отключение уведомлений о документах по умолчанию (они шумные в инстансе, где прикрепляют много файлов) и сохранение только событий, требующих действия. И фактор, который решает судьбу проекта прежде всего: Smart Notify - это GLPI 11. Если клиент ещё на GLPI 10, разговор меняется - реалистичный вариант там Unread (или аналогичное выделение в списках), потому что колокольчик в 10 не работает.
Конфигурация, которую мы используем в продуктиве
# Smart Notify - configuracao base (GLPI 11)
# Painel NexTool > Modulos > Smart Notify > aba Configuracoes
refresh_interval = 30 # segundos (faixa 15-120); 30-45 e o ponto de equilibrio
max_notifications = 50
retention_days = 90 # limpeza automatica via cron smartnotify_cleanup
notify_document = 0 # off: anexos geram muito ruido
notify_new_problem = 0 # off: evento pouco frequente
sound_urgent = alarm # tons por prioridade: subtle | default | alert | alarm
# 1) Conferir o config efetivo direto no banco
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';
# 2) Resetar o OPcache do FPM apos ativar/atualizar (validate_timestamps=Off)
docker exec glpi_app_prod kill -USR2 $(docker exec glpi_app_prod pgrep -o php-fpm)
# 3) Confirmar a limpeza automatica no GLPI:
# Configuracao > Acoes automaticas > smartnotify_cleanup
Вердикт по сценариям
Выбирайте Smart Notify, когда: работа идёт в GLPI 11, специалисты держат интерфейс открытым весь день, есть несколько организаций и профилей, и вам нужно активное оповещение (колокольчик + звук) с предпочтениями для каждого человека и объявлениями администратора. Это сценарий службы поддержки с объёмом, где пропущенный комментарий стоит SLA.
Выбирайте Unread, когда: вы на GLPI 10, или хотите только выделять непросмотренное в списках без каких-либо фоновых процессов, или команда небольшая и e-mail уже справляется с оповещениями - Unread решает только вопрос «что я ещё не открыл». Это вариант с минимальным потреблением ресурсов.
Они не прямые конкуренты: Unread покрывает часть задачи (непрочитанное в списке), которую Smart Notify тоже выполняет - красными точками в списках и разделителем «Новые сообщения» в ленте. Запускать оба вместе в GLPI 11 - избыточно, выберите один.
Стоимость и трудозатраты
Оба бесплатны. Различаются трудозатраты: Unread устанавливается и готов, без настройки и сопровождения. Smart Notify требует первоначальной настройки (интервал опроса, типы событий, разрешённые профили) и имеет задачу cron (smartnotify_cleanup), которая удаляет прочитанные уведомления и логи согласно сроку хранения, - она выполняется ежедневно без вмешательства. После калибровки он тоже работает по принципу «установил и забыл», но именно калибровка опроса и типов событий отличает хорошее внедрение от шумного.
Нужны уведомления и за пределами GLPI - WhatsApp, Telegram, Teams? Колокольчик решает задачу для тех, кто внутри системы; чтобы достучаться до тех, кто снаружи, сочетайте его с модулями внешних уведомлений NexTool. Если хотите, мы поможем выстроить схему оповещений в рамках сопровождения вашего GLPI.
Проверено командой NexTool Solutions.