Netavis Observer — программный продукт для организации видеонаблюдения с помощью IP-камер на базе Linux-сервера.
Netavis Observer написан на Java, так же используются такие продукты как Apache Tomcat, Webmin, Munin, Mysql.
Существует два варианта Netavis Observer — Bundled(поставляется в виде установочного iso-образа на базе Centos5 или Centos6) и Unbundled — набора rpm-пакетов для самостоятельной установки на сервер под управлением Centos или RedHat.
— Поддержка разделения прав доступа к камерам, просмотру архива, экспорту видео, управлению PTZ (управление поворотными камерами) с возможностью создания групп и пользователей под конкретную ситуацию(только просмотр онлайн-видео, просмотр онлайн-видео и архива, но без права экспорта видеоматериала из архива и т.д.)
— Наличие клиента под Windows, IPhone/IPad.
— Возможность работать через браузер (требуется установка JAVA).
— Возможность создания кластера для работы с большим количеством камер.
— Поддержка Active Directory (в редакции Enterprise).
— Поддержка Анализа видео ( iCAT — обнаружение движения с вариациями, обнаружение саботажа, обнаружение удаленного объекта, маска конфиденциальности).
— Настройка качества отображения видео онлайн и при записи в архив.
— Настройка расположения камер и формирование пользовательских наборов с возможностью копирования этих наборов другим пользователям.
— Возможность ограничения полосы пропускания для камер и клиентов при просмотре живого видео и архива.
— Экспорт архива в AVI или SAFE (создается исполняемый файл .EXE c примитивным плеером и собственно видео, можно экспортировать сразу нужное количество камер за один промежуток времени, будет создан один EXE-шник).
— Возможность запуска графической оболочки непосредственно на сервере — запускается сессия LXDE, после чего запускается клиент Netavis.
А теперь приступим к установке
Идем по ссылке и скачиваем Bundled-версию Netavis Observer в виде iso, записываем на болванку и вставляем ее в привод чтения компакт-дисков сервера.
Сразу после загрузки мы видим экран приветствия с вариантами дальнейших действий, и их не очень много:
— install options где options:
— без опций — стандартная установка на один жесткий диск.Все данные с жесткого диска будут удалены.
— hwraid — установка на железный RAID.
— nus — установка сервера событий и без архива.
— part — установка с возможностью ручной разметки дисков.
— nlis — установка без хранения архива на локальных дисках.Хранилища архивов монтируются по NFS или SAMBA.
— repair — восстановление системы после сбоя.
Наш выбор — boot: install Далее — стандартная процедура установки Centos5. После окончания установки соглашаемся перезагрузиться. После загрузки операционной системы видим приглашение ввести логин admin для завершения установки системы.
После чего нажимаем Enter, и далее 0 для подтверждения завершения установки.Соглашаемся с условиями лицензионного соглашения, введя yes.
Далее вводим пароль для пользователя admin:
— Вводим имя сервера.
— Сохраняем параметры, введя Save.
— Вводим название конфигурации (я оставил значение по умолчанию — Default configuration).
— Выбираем, использовать ли DHCP для настройки сети или задать параметры статически.
— Вводим IP-адрес, маску сети, IP-адрес шлюза, IP-адрес DNS сервера (только если выбрана статическая настройка сети).
— Вводим IP-адрес почтового сервера (для отсылки событий системы на почту).
— Вводим доменное имя.
— Сохраняем параметры, введя Save.
— Выбираем, будет ли сервер являться еще и сервером времени.
— Определяемся с серверами времени для синхронизации и сохраняем параметры, введя Save.
— Вводим почтовый адрес администратора.
— Вводим учетные данные т.н. customer-пользователя (имя, адрес, название организации).
— Определяемся, запускать ли клиент для просмотра видео и архива на сервере (по умолчанию — не запускать).
На этом установка закончена и можно перезагрузиться, предварительно запомнив или записав, по какому адресу находится интерфейс администратора и клиента:
— 192.168.0.5:8000 — интерфейс администратора — сильно обрезанный вариант WEBMIN ( для входа используем логин admin и заданный в начале установке пароль).
— 192.168.0.5/ -интерфейс клиента Netavis Observer ( для входа используем логин admin и заданный в начале установке пароль).
Запускаем браузер (проверено в свежих Firefox и Chrome, а также в IE7) и вводим адрес клиента Netavis Observer — в данном случае — 192.168.0.5
Важно! — для работы клиента требуется установленная Java и ее поддержка должна быть активирована в настройках браузера.
Соответственно при входе в интерфейс Netavis сначала появится вот такая страница:
и если с Явой все в порядке можно выбрать язык интерфейса и нажать Start
На следующем скриншоте все понятно — можно запустить клиент из браузера, установить клиента на локальный компьютер под управлением Windows, а так же на смартфоны под iOS(эту возможность не тестировал), а так же посмотреть документацию или зайти в интерфейс Настройщика под логином admin и паролем admin.
Но вернемся назад и запустим( или поставим локально) клиент Netavis Observer.И первое что мы видим — окно, в котором предлагается лицензировать программу — и в нем четыре пункта:
— Запуск без лицензии — обрезанный функционал, даже камеру не добавить.
— Запуск с демо-лицензией — можно добавить камеру, но периодически будет выкидывать из программы.
— Запрос лицензии в зависимости от количества камер, пользователей и прочих плюшек с официального сайта.
— Непосредственный ввод лицензионного ключа.
Нас интересует последний пункт, так как лицензионный ключ в наличии.Вводим ключ, нажимаем ОК и под полями ввода ключа появляется сообщение что ключ сохранен на сервере.Закрываем окно лицензирования и запускаем клиент повторно.
После запуска появляется окно авторизации — логин и пароль согласно документации: admin/admin
и вот наконец интерфейс клиента Netavis Observer:
В какой то момент выяснилось, что установленных в сервер жестких дисков не хватает для постоянной записи архива по каждой камере на 1 месяц.
Были приобретены жесткие диски требуемой емкости и после прочтения документации был уяснен процесс добавления и замены жестких дисков в систему.Для этого недостаточно иметь доступ к интерфейсу клиента, необходим доступ к консоли управления системой — согласно документации нужно зайти по SSH на сервер под пользователем admin и установленным для него паролем.
Это можно выполнить командой ssh -l admin 192.168.0.5 и ввести пароль.Также можно просто залогиниться в консоль локально.
Согласно документации процедура добавления проста как три рубля — выключаем сервер, подключаем чистый, неформатированный жесткий диск, включаем сервер и залогиниваемся в систему.
Далее набираем 27 для проверки на предмет, определился ли жесткий диск или нет, потом набираем 23 и дожидаемся окончания процедуры создания файловой системы, создания точки монтирования и пр.
После рестарта сервера и запуска системы новый жесткий диск виден в системе и готов к записи на него архива.
А на случай, если один из жестких дисков вышел из строя и его необходимо заменить, следуем другой процедуре: выключаем сервер, меняем неисправный жесткий диск на исправный, включаем сервер и логинимся в консоль.там сначала смотрим статус жестких дисков, а потом набираем 24 — Configure replaced disk и ждем окончания процедуры.
Важно: Новый жесткий диск должен быть неформатированным, и подключать его необходимо на то же место, где стоял неисправный жесткий диск.
Ищем проблему — и находим ее
Однажды нужно было добавить два жестких диска и изъять один малой емкости.И так как сервер уже был в практически в производственной эксплуатации, захотелось совместить две процедуры — добавления жесткого диска и замены одного жесткого диска другим.
После загрузки системы и логина в консоль по запарке решил начать с процедуры добавления жесткого диска вместо замены одного жесткого диска на другой.Система добавила два новых жестких диска в систему, а менять жесткий диск уже было не на что.
Результатом таких поспешных действий стала ошибка, отображающаяся в интерфейсе клиента рядом с нагрузкой на процессор — Degraded recording, и ошибочное значение пространства, доступного системе ровно на столько, сколько было гигабайт на замененном жестком диске. При этом в консоли этот жесткий диск отображался как неиспользуемый — пункт 25 — Show unusable disks.
Никакие действия в консоли управления, откат к прежней конфигурации и попытки восстановить систему с установочного диска к успеху не приводили. Документация на этот счет советовала переставить систему с нуля или обратиться к дилеру.
Решение проблемы
Было решено создать аналогичную проблему на виртуальной машине. Это с легкостью удалось.
Под рутом зайти в консоли не получилось — пароль не известен. Загружаемся с live-cd Xubuntu на этой виртуальной машине и начинаем изучение внутренностей системы.
В системе обнаружились следующие интересные разделы:
— / — собственно корневой раздел.
— /netavis — раздел, где собственно находится система Netavis
— /var/lib/mysql — раздел, где находится каталог базы данных.
Так же есть разделы Images1, Images3, Images4 которые монтируются в /Images
Первым делом смотрим файл /etc/shadow на предмет списка пользователей и их паролей.
Нам интересны следующие пользователи:
root:$1$UEe5kAv4$nWyqBmcmg3P.kM/ZB/s/2.:16086:0:99999:7:::
arms:$1$gKURq9W3$oYJWwNw9hKtJBmoVpkFju/:16086:0:99999:7:::
admin:$1$0.3jcW1k$i6QabIE2yN0hCcTmrQ7j80:16086:0:99999:7:::
netavis:$1$SQ4LOu8J$Gp6PEphFVKucMyQbkm55f1:16086:0:99999:7:::
chpass:$1$CWDhlmfR$b/IoN0Inx/A6eT04hivM/.:16086:0:99999:7:::
Видно что пароль рута есть, но не совпадает с установленным нами паролем для admin-а.
Единственный выход — поменять пароль root-а на известный нам пароль admin-а.Поэтому стираем хэш пароля рута и меняем на хэш пароля admin-а, после чего сохраняем файл, отмонтируем все файловые системы и перезагружаемся в Netavis.
Далее логинимся под root-ом с известным нам паролем от admin-а и начинаем осматриваться уже из под живой системы с правами root-а.
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 664 5229157+ 83 Linux
/dev/sda3 665 1315 5229157+ 83 Linux
/dev/sda4 1316 2635 10602900 5 Extended
/dev/sda5 1316 1966 5229126 83 Linux
/dev/sda6 1967 2097 1052226 82 Linux swap / Solaris
/dev/sda7 2098 2635 4321453+ 83 Linux
/dev/sdb1 1 1045 8388607+ ee EFI GPT
/dev/sdc1 1 1045 8388607+ ee EFI GPT
Подключено 3 жестких диска — системный (dev/sda) и два архивных (dev/sdb dev/sdc) и смонтированы они соответственно так:
/dev/sda7 on /Images/Images1 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)
/dev/sdb1 on /Images/Images3 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)
/dev/sdc1 on /Images/Images4 type xfs (rw,noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=256k)
LABEL=Images2 /Images/Images2 xfs noauto 1 0
LABEL=Images3 /Images/Images3 xfs noauto 1 0
LABEL=Images4 /Images/Images4 xfs noauto 1 0
То есть присутствует запись о замененном жестком диске, которого фактически нет в сервере. Удаляем точку монтирования Images2 из fstab, сохраняем и перезагружаемся.
После загрузки запускаем клиент и идем в раздел System administration — System information и видим что ошибка не исчезла, значит информация о используемых дисках хранится где то… и это наверняка Mysql.
Разбираемся с Mysql.
Значит нужно подключиться к серверу базы данных, а для этого нужно знать логины и пароли для доступа. Для этого идем в /var/lib/mysql и смотрим какие базы есть в наличии.
Вот список баз:
— arms
— mysql
— test
База mysql — системная, в ней можно посмотреть список пользователей сервера и хэши паролей. Итак — окончательный путь до файла с интересующей нас информацией — /va/lib/mysql/mysql/user.MYD — открываем файл в любимом редакторе и видим что пользователей не так уж и много — root и arms и хэш пароля у них одинаковый — 2f36c5e96b75ee48, к тому же старого типа, что подтверждается просмотром конфига Mysql-сервера, который расположен по пути /etc/my.cnf:
…
old_passwords=1
…
Дело за малым — или угадать пароль или брутфорсить, что могло занять некоторое время. Начал с попытки угадывания пароля, подставляя известные пароли, пустые пароли, пароли, совпадающие с логинами… удача улыбнулась почти сразу.
Для обоих логинов (root и arms) пароль — arms
Далее настроим SSH-туннель между сервером Netavis и компьютером, на котором запустим один из графических инструментов для администрирования базы данных Mysql, например MySQL Workbench или Emma или любой другой, которым вы обычно пользуетесь.
Итак, создаем туннель:
— На Linux — командой ssh -L 3306:localhost:3306 root@192.168.0.5, вводим пароль, который мы скопировали с пользователя admin.
— Универсальный вариант — с помощью Putty:
Далее запускаем например Emma, настраиваем на соединение с localhost:3306 и логином/паролем arms/arms и идем прямиком в базу, с которой и работает Netavis — arms.
Пользуясь поиском текста по всей базе по ключевому слову «Images2» (ведь именно этот раздел мы и пытаемся убрать из настроек программы) получаем результат в виде таблицы Directories, в которой и хранится искомая информация:
Удаляем запись с информацией о Images2 и перезагружаем сервер.
После загрузки запускаем клиент и идем в раздел System administration — System information и видим что ошибка исчезла!
Архив пишется монолитно, ошибка Degraded recording из интерфейса клиента исчезла, как и информация о неиспользуемом жестком диске в консоли управления. Доступное файловое пространство отображается корректно.
Спасибо за внимание.
Автор: timerbulatov