Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Служба UniFi Protect NVR не запускается, UniFi Protect
 
Привет!

Потратив много времени на форумы, решил опубликовать свою проблему здесь, чтобы попытаться её решить.

У одного из наших клиентов есть 4-отсековый UniFi Protect Network Video Recorder.

Начиная с вчерашнего дня, клиент пытался воспроизвести запись с события, но устройство постоянно у него падало. Приходилось каждый раз переподключать приложение, чтобы зайти снова. Один из наших техников перезагрузил NVR. После этого проблемы остались. Устройство работало на версии 1.4. Он провёл обновление до версии 2.2.12. Теперь у меня есть доступ к консоли Protect Portal, но сервис Unifi-Protect не запускается.

Я спокойно могу подключиться к NVR через SSH. Все 4 жёстких диска видны, RAID5 чистый.

Вот вывод некоторых часто используемых команд, которые видел на форумах:

-------------------------------------------------------------------------------

journalctl -u unifi-protect.service

unifi-protect.service: Потрачено 17.659 секунд CPU времени.  
09 дек 09:18:30 Martin-Boyd-UNVR systemd[1]: unifi-protect.service: время ожидания перезапуска (5 сек) истекло, планируется перезапуск.
09 дек 09:18:30 Martin-Boyd-UNVR systemd[1]: unifi-protect.service: Операция перезапуска запланирована, счётчик перезапусков: 26.
09 дек 09:18:30 Martin-Boyd-UNVR systemd[1]: UniFi Protect остановлен.
09 дек 09:18:30 Martin-Boyd-UNVR systemd[1]: unifi-protect.service: Потрачено 17.659 секунд CPU времени.
09 дек 09:18:30 Martin-Boyd-UNVR systemd[1]: Запуск UniFi Protect...
09 дек 09:18:30 Martin-Boyd-UNVR su[31100]: Успешный su под postgres от root
09 дек 09:18:30 Martin-Boyd-UNVR su[31100]: + ??? root:postgres
09 дек 09:18:30 Martin-Boyd-UNVR su[31100]: pam_unix(su:session): сессия открыта для пользователя postgres от (uid=0)
09 дек 09:18:30 Martin-Boyd-UNVR pre-start[31098]: createuser: создание новой роли не удалось: ОШИБКА: роль "unifi-protect" уже существует
09 дек 09:18:30 Martin-Boyd-UNVR su[31100]: pam_unix(su:session): сессия закрыта для пользователя postgres
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: КОНФИГ ЗАГРУЖЕН: /usr/share/unifi-protect/app/config/config.json
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: Используется unifi core сертификат
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: {
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: crt: '/data/unifi-core/config/unifi-core.crt',
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: key: '/data/unifi-core/config/unifi-core.key',
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: deviceCrt: '/srv/unifi-protect/data/devices.crt',
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: deviceKey: '/srv/unifi-protect/data/devices.key'
09 дек 09:18:34 Martin-Boyd-UNVR node12[31125]: }
09 дек 09:18:42 Martin-Boyd-UNVR node12[31125]: Thu, 09 Dec 2021 14:18:42 GMT sequelize deprecated: строковые операторы теперь устарели. Пожалуйста, используйте основанные на Symbol операторы для лучшей безопасности, подробнее на http://docs.sequelizejs.com  
09 дек 09:18:48 Martin-Boyd-UNVR systemd[1]: unifi-protect.service: основной процесс завершился с кодом выхода, status=1/FAILURE
09 дек 09:18:48 Martin-Boyd-UNVR systemd[1]: unifi-protect.service: завершился с результатом 'exit-code'.
09 дек 09:18:48 Martin-Boyd-UNVR systemd[1]: Не удалось запустить UniFi Protect.

-------------------------------------------------------------------------------

systemctl status unifi-protect.service

unifi-protect.service - UniFi Protect  
Loaded: загружен (/lib/systemd/system/unifi-protect.service; включено; по умолчанию включено)  
Drop-In: /etc/systemd/system/unifi-protect.service.d  
  └─condition-srv.conf  
  /lib/systemd/system/unifi-protect.service.d  
  └─env-override.conf, postgresql.conf  
Active: активируется (запуск) с чт 2021-12-09 10:30:09 EST; прошло 18 сек  
Main PID: 1652 (node)  
Memory: 89.6M  
CPU: 16.982 сек  
CGroup: /system.slice/unifi-protect.service  
  └─1652 /usr/lib/nvm/versions/node/v12.18.1/bin/node --expose-gc --optimize-for-size --memory-reducer --max-old-space-size=512 /usr/share/unifi-protect/app/service.js  

09 дек 10:30:13 Martin-Boyd-UNVR su[1537]: pam_unix(su:session): сессия закрыта для пользователя postgres
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: КОНФИГ ЗАГРУЖЕН: /usr/share/unifi-protect/app/config/config.json
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: Используется unifi core сертификат
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: {
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: crt: '/data/unifi-core/config/unifi-core.crt',
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: key: '/data/unifi-core/config/unifi-core.key',
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: deviceCrt: '/srv/unifi-protect/data/devices.crt',
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: deviceKey: '/srv/unifi-protect/data/devices.key'
09 дек 10:30:17 Martin-Boyd-UNVR node12[1652]: }
09 дек 10:30:25 Martin-Boyd-UNVR node12[1652]: Thu, 09 Dec 2021 15:30:25 GMT sequelize deprecated: строковые операторы теперь устарели. Пожалуйста, используйте основанные на Symbol операторы для лучшей безопасности, подробнее на http://docs.sequelizejs.com/  
lines 1-23/23 (END)  

-------------------------------------------------------------------------------

Я уже загрузил файл поддержки в приватный лог.  

Спасибо!
 
Привет, @nicklegrand, ты нашёл способ решить эту проблему?
 
Я перепробовал всё, что мог... Защитную службу запустить не удаётся... она зависает в цикле... и через SSH я получаю:  
root@ubnt:/# service unifi-protect restart  
Job for unifi-protect.service failed because the control process exited with error code.  
Смотри "systemctl status unifi-protect.service" и "journalctl -xe" для подробностей.  
Jan 27 14:50:47 ubnt sudo[5015]: pam_unix(sudo:session): сессия закрыта для пользователя root
Jan 27 14:50:47 ubnt kernel: EXT4-fs ошибка (устройство sdc1): ext4_lookup:1595: inode #56886565: comm chown: ссылка на удалённый inode: 56887012  
Jan 27 14:50:47 ubnt sudo[5031]: root : TTY=unknown ; PWD=/usr/share/unifi-core/app ; USER=root ; COMMAND=/sbin/ubnt-systool sshd
Это значит, что виноват жёсткий диск?
 
Та же проблема и у меня. Кстати, я решил её, просто удалив и заново установив приложение Protect.
 
Спасибо за ваш отзыв, MartinB2016. У меня такие же симптомы, поэтому я выполнил рекомендованные выше шаги. К сожалению, проблема осталась — устройство продолжает перезагружаться по кругу.
 
su - postgres запрашивает у меня пароль для пользователя postgres. Я на udm-pro, какой будет пароль по умолчанию для этих сервисов?
 
@colter. Спасибо за эти команды. У меня похожая проблема, я только что запустил этот код, но у меня он, похоже, не работает. Надо спросить, что ты имел в виду под «загружает предыдущую конфигурацию и работает нормально». Тебе пришлось перезагружать старую настройку?
 
Я решил эту проблему: ошибка была в шагах взаимодействия с базой данных в установочном скрипте Protect. Похоже, где-то забыли поставить флаг, видимо, из-за спешки с выкатыванием кода, но кто знает... Как это вообще попало в продакшен в софте на миллиард долларов — для меня загадка. Ладно, отвлёкся.

---

Чтобы это сделать, у вас должен быть включён SSH, но этот способ спасёт вас от замены всего устройства (а вместе с этим и всех головных болей клиента), при этом сохранит записи и локальные настройки.

Короче: нужно зайти в Postgres, удалить базу данных для unifi-protect, затем удалить пользователя. Потом перезапустить процесс unifi-protect. Нам пришлось покопаться, чтобы найти нужный процесс Postgres, потому что локальный стандартный вообще не показывал никаких данных "unifi-protect".

Вот команда, которая у меня сработала:

Остановить unifi-protect сервис:  
service unifi-protect stop

Переключиться на пользователя Postgres:  
su - postgres

Зайти в нужный сервис Postgres для Unifi Protect (номер порта у вас может отличаться). Мы нашли его, покопавшись через top и lsof:  
psql -p 5433

Проверить, что пользователь "unifi-protect" существует:  
\du

Удалить базу данных:  
drop database "unifi-protect";

Удалить пользователя:  
drop user "unifi-protect";

Выйти из консоли:  
\q

Запустить сервис unifi-protect:  
service unifi-protect start

Вуаля, unifi-protect запускается, подтягивает старую конфигурацию и работает как обычно.
Страницы: 1
Читают тему (гостей: 1)