Smart Notify или Unread: внутренние уведомления в GLPI

Сравнение модуля Smart Notify (NexTool) и плагина Unread для внутренних уведомлений в GLPI без зависимости от e-mail. Таблица по критериям, вердикт по сценариям, компромисс опроса, важный в эксплуатации, и конфигурация, которую мы используем в продуктиве.

В этой статьеРазделов: 7

E-mail - это не уведомление в реальном времени. Чтобы специалист сразу узнал, что заявка изменилась, оповещение должно появиться внутри GLPI. Два решения делают это противоположными путями: плагин Unread выделяет в списках то, что ещё не просмотрено, а модуль Smart Notify (NexTool) добавляет глобальный колокольчик в панель навигации, со звуком и пользовательскими предпочтениями. И есть фактор, который решает ещё до любых функций: версия GLPI, с которой вы работаете.

Контекст: почему одного e-mail недостаточно

В стандартном GLPI все уведомления уходят по e-mail. На практике специалист, у которого система открыта весь день, вынужден:

  1. Постоянно переключаться между очередью GLPI и почтовым ящиком;
  2. Выискивать письма GLPI среди десятков других;
  3. Переходить по ссылке из письма только для того, чтобы вернуться к заявке, которая и так была на экране.

Результат известен: запоздалый ответ, комментарий, который никто не увидел, согласование, ждущее одного клика. Внутреннее уведомление устраняет эти метания - но у слова «внутреннее» два совершенно разных значения, и именно здесь два плагина расходятся.

Две разные философии

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 запрос за цикл опросаБлизка к нулю в фоне
Поддерживаемый GLPI11 (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.

Часто задаваемые вопросы

Нет. Из коробки все уведомления уходят по e-mail. Плагины вроде Smart Notify (NexTool) и Unread добавляют оповещение внутри интерфейса. Smart Notify обновляет колокольчик опросом (интервал от 15 до 120 секунд), а не через WebSocket - то есть это «почти реальное время» с задержкой, равной настроенному интервалу.

Нет. Smart Notify - модуль для GLPI 11 (манифест объявляет glpi_major 11). Если вы ещё на GLPI 10, реалистичный вариант для пометки непросмотренного - плагин Unread или аналогичное выделение в списках: колокольчик в панели навигации в 10 не работает.

Зависит от интервала и числа одновременно работающих специалистов: каждая открытая вкладка делает один запрос за цикл. В продуктиве мы используем 30-45 секунд как баланс; 15 с умножает запросы без реального выигрыша в восприятии. Модуль также приостанавливает опрос, когда вкладка неактивна, и вызывает session_write_close() при чтении, чтобы опрос не застревал за блокировкой сессии самого пользователя.

Это намеренно. Модуль исключает действия самого пользователя - вас не оповещают о комментарии, задаче или решении, которые вы написали сами, а только о том, что сделали другие в элементах, где вы участвуете (инициатор, назначенный, наблюдатель или группа).

В GLPI 11 - нет. Smart Notify уже покрывает сценарий Unread: помечает непрочитанные элементы красными точками в списках и добавляет разделитель «Новые сообщения» в ленту. Запускать оба - избыточно. Unread имеет смысл сам по себе, если вы на GLPI 10 или хотите минимальное потребление ресурсов, просто выделяя неоткрытое.

Нужна помощь?