Сервер видеонаблюдения на Linux

Основные возможности

Разработчики ONVIF выбрали наиболее готовые технологии и адаптировали их для IP-видеонаблюдения.

В частности, спецификация ONVIF построена на современных веб-сервисах, описываемых языком WSDL, протоколах RTP/RTSP, SOAP (XML), стандарте видеосжатия H.264, MPEG-4, MJPEG. Стандартом определяются следующие аспекты взаимодействия IP-камеры с системами управления или видеозаписи (DVR):

  • конфигурирование сетевого интерфейса;
  • обнаружение устройств по протоколу WS-Discovery;
  • управление профилями работы камеры;
  • настройка поточной передачи медиа-данных;
  • обработка событий;
  • управление приводом PTZ (англ. Pan/Tilt/Zoom — Панорамирование/Наклон/Масштабирование);
  • видеоаналитика;
  • защита (управление доступом, шифрование).

Важным преимуществом стандарта ONVIF является хорошая поддержка видеоаналитики, встраиваемой в конечные IP-устройства, например, камеры и кодировщики.

  • Таким образом, устройства наблюдения могут осуществлять локальное детектирование, сопровождение и распознавание объектов.

Эти оперативные метаданные вместе с видео и изображениями будут переданы через IP-сеть по протоколам ONVIF на пульт охраны и в архив. Все это позволяет предположить, что будущее форума, когда любое оборудование можно будет совмещать в единой системе, как аналоговую видеокамеру и DVR, не за горами.

Как подключить IP камеру по Onvif или RTSP?

Часто возникает вопрос: Как подключить ip камеру к NVR если ее нет в списке совместимости?

Существует два варианта ONVIF и RTSP

Начнем с протокола ONVIF (Open Network Video Interface Forum)

ONVIF это общепринятый протокол для совместной работы IP камер, видеорегистраторов NVR, программного обеспечения, на случай если все устройства разных производителей. ONVIF можно сравнить с английским языком для международного общения людей.

Убедитесь, что подключаемые устройства имеют поддержку ONVIF, на некоторых устройствах ONVIF может быть выключен по умолчанию.
Либо может быть отключена авторизация по ONVIF это значит, что логин/пароль будет всегда по умолчанию
независимо от логина/пароля для WEB

Также стоит отметить, что некоторые устройства используют отдельный порт для работы по протоколу ONVIF

В некоторых случаях ONVIF пароль может отличаться от пароля для WEB доступа.

Что доступно при подключении по ONVIF ?

-Обнаружение устройств

-Передача видеоданных

-Прием и передача аудио данных

-Управление поворотными камерами (PTZ)

-видеоаналитика (например обнаружение движения)

Эти параметры зависят от совместимости версий протокола ONVIF. В некоторых случаях часть параметров недоступна, или работает некорректно.

Разберем пример подключения камеры OMNY PRO к видеорегистратору SNR и Dahua с использованием ONVIF


В регистраторах SNR и Dahua протокол ONVIF находится на вкладке Remote Device, строка Manufacturer

Выберите канал к которому будет подключено устройство

Из вкладки Manufacturer выберите ONVIF

Укажите ip адрес устройства

RTSP порт остается по умолчанию

Камеры OMNY PRO используют ONVIF порт 8080, в регистраторе он указывается как HTTP порт
(с 2017 года, на новых моделях ONVIF порт изменен на 80 для серии Альфа, Мира)
Камеры OMNY Base используют ONVIF порт 80, в регистраторе он указывается как HTTP порт

Имя в соответствии с параметрами устройства

Пароль в соответствии с параметрами устройства

Remote channel по умолчанию 1. В случае если устройство многоканальное, указывается номер канала.

Decoder Buffer — буферизация видео потока с указанием значения времени

Server type здесь есть выбор TCP,UDP Schedule

TCP — устанавливает соединение между отправителем и получателем, следит за тем, чтобы все данные дошли до адресата без изменений и в нужной последовательности, также регулирует скорость передачи.

В отличие от TCP, UDP не устанавливает предварительного соединения, а вместо этого просто начинает передавать данные. UDP не следит чтобы данные были получены, и не дублирует их в случае потерь или ошибок.

UDP менее надежен, чем TCP. Но с другой стороны, он обеспечивает более быструю передачу потоков благодаря отсутствию повторения передачи потерянных пакетов

Schedule — автматическое определение типа.

Так выглядят подключенные устройства в Dahua

зеленый статус означает, что регистратор и камера соединены успешно

красный статус означает, что есть проблемы в подключении. Например порт подключения неправильный.

Второй способ подключения это RTSP (Real Time Streaming Protocol)

RTSP потоковый протокол реального времени, в котором описаны команды для управления видеопотоком.

С помощью этих команд происходит трансляция видеопотока от источника к получателю

например от IP-камеры к видеорегистратору или серверу.

Что доступно при подключении по RTSP?

-Передача видеоданных

-Прием и передача аудио данных

Приемущество этого протокола передачи в том, что он не требует совместимости по версиям.

на сегодняшний день RTSP поддерживают практически все IP камеры и NVR

Недостатки протокола в том, что кроме передачи видео и аудио данных больше ничего не доступно.

Разберем пример подключения камеры OMNY PRO к видеорегистратору SNR и Dahua с использованием RTSP

RTSP находится на вкладке Remote Device, строка Manufacturer, в регистраторе SNR и Дахуа он представлен как General

Выберите канал, к которому будет подключено устройство

URL Addr — здесь вводим строку запроса, по которой камера отдает основной RTSP поток с высоким разрешением.

Extra URL — здесь вводим строку запроса, по которой камера отдает дополнительный RTSP поток с низким разрешением.

Пример запроса:

rtsp://172.16.31.61/1 основной поток

rtsp://172.16.31.61/2 дополнительный поток

Зачем нужен дополнительный поток?

На локальном мониторе подключенном к регистратору в мульти-картинке регистратор использует дополнительный поток для экономии ресурсов. К примеру в маленьких картинках по 16 окон совсем не обязательно декодировать Full HD разрешение, достаточно D1. Ну а если Вы открыли 1/4/8 окон в этом случае декодируется основной поток с высоким разрешением.

Имя в соответствии с параметрами устройства

Пароль в соответствии с параметрами устройства

Decoder Buffer буферизация видео потока с указанием значения времени

Mr.Cleaner’s_Lab

Часть 1. С чего все началось.
«Как перестать беспокоиться и начать жить» Деил Карнеги»Как не бздеть и в натуре отягиваться» то-же в адаптации Гоблина
Самый дорогой ресурс – это наше время. Я ухлопал не один день жизни прежде чем написать эти строки и если мои записки сэкономят чье-то время, значит я таки не зря потратил свое.
Идея создания в своей квартире серьезной системы видеонаблюдения будоражила воображение довольно давно. Поменяв место жительства, я вдруг обнаружил себя в окружении недружелюбных и пакостливых соседей. В один из дней, личинка дверного замка была кем-то безнадежно испорченной. Настало время для ассиметричного ответа агрессорам…
Конечно, можно было бы ограничиться домофоном с записью на флеш, или простеньким видеорегистратором на несколько аналоговых камер с инфракрасной подсветкой. Но где-же тогда трудности и сложности за преодоление которых мы будем себя уважать в дальнейшем :о)
Кому лень читать опус и хочется быстро решить проблему, сразу переходите к топику «Видеонаблюдение под Ubuntu для «чайников»».
Старичек РС под новенькой Ubuntu 8.10, мирно шелестевший над выкачиванием торрентов, был назван видео-сервером и мы с ним окунулись в просторы мировой сети в поисках ответов на поставленную задачу. Все ресурсы в один голос направили нас в сторону программного пакета ZoneMinder обещавшего нам полное счастье и установку из репозитория. В дальнейшем все оказалось не столь радужно, но прежде, для полноты картины, стоит упомянуть альтернативные продукты:
Совсем бесплатные:
Motion — умеет только распознавать движение, просмотр, базу даных надо сочинять отдельно.
Профессиональные полу-платные отечественные:
AVReg — все очень доступно и на русском языке, но бесплатно можно использовать не более 4-х камер.
MutliVision — ПО бесплатное, но похоже привязанное к конкретному оборудованию СМП-сервиса
Высокопрофессиональные и шибко-платные – западные даже под Sun Solaris:
IPconfigure ESM 4.5
NetAvis
Наверняка, есть и другие, но мне они не попались.
Часть 2. Железная.
Спасибо за демонстрацию, теперь я должна подумать.
Не знал, что эта функция включается у вас отдельной опцией?
Итак, выбор сделан, пора приступать к внедрению.
Наблюдаемое пространство логически разбивалось на два периметра: внутренний и внешний. Внутренний периметр вполне покрывался USB 2.0 камерами. (максимальная длинна кабеля без концентратора — 5 метров).
На внешний периметр подвернулись со скидкой IP камеры D-link DCS-920 и D-link DCS-2120. Распаковав новенькие коробочки я был несколько обескуражен. Понятно, что DCS-920 будет отличаться от более продвинутой коллеги, но настолько разительного отличия трудно было предположить. Такое впечатление, что камеры сделаны совершенно разными производителями, даже утилиты у каждой из них свои и полностью игнорируют собрата.
DCS-2120 почти втрое дороже, так как умеет вещать не только в MJPEG, но и честный MPEG4 со звуком способна распознавать и фиксировать движение. Все эти преимущества бесполезны в текущей версии ZoneMinder 1.23.3, но эффективны при использовании камеры как отдельного охранного устройства.
Опустим историю про то, что DCS-2120 оказалась с заводским браком и почти месяц ушел на то чтобы получить ее из сервиса (там приятные люди, остальное обсуждать не будем)
Все когда нибудь кончается, и хорошее, и плохое.
Тем кто не успел еще потратить свои деньги, советую сперва почитать рекомендации софтописателей и ознакомится с проблемами подключения плат видеозахвата под Линуксом.
Следующий месяц представлялл из себя длительное восхождение состоящее из непрерывной вереницы проблем, поиска их решения и преодоления очередной ступени к победе.
Еще не решив что и как, я запустил установку ZoneMinder с целью «чисто позырить».
Тут то меня и ждало первое Западло*.
* Под «Западлом» отсюда и далее мы будем понимать глупые и совершенно лишние проблемы, которых по умолчанию следовало избежать, решение которых отняло у автора силы и время.
Часть 3. «Эротическая»
«Как Linux не крути – все сервер получается»
Западло #1: База ZM MySQL не работает.
Пакет ZoneMinder взаимосвязан с целой вереницей продуктов
mysql
apache2
php5
php5-mysql
libapache2-mod-auth-mysql
ntpdate
ffmpeg
проигнорировав предложение установить root пароль для MySQL я обрек себя на страдания.
Как показала дальнейшая практика, самый оптимальный вариант — это последовательная установка отдельных пакетов в соответствии с описанием. В противном случае вы обречены разбирать свои и чужие косяки.
Самое толковое описания по установке встретившееся мне:
Но, мы торопим события. Вернемся к MySQL:
Запускаем терминал от имени root (путь) это позволит нам сразу залогиниваться в MySQL как root и не париться с дополнительными параметрами.
1. Создадим базу ZM пропишем в ней пользователя zmuser и дадим права и пароль zmpass:
mysql mysql <> grant select,insert,update,delete on zm.* to zmuser@localhost identified by zmpass;
mysql> quit
mysqladmin reload
2. Редактируем /etc/zm/zm.conf:
ZM_PATH_BUILD => /usr/share/zoneminder
ZM_PATH_WEB => /var/www/localhost/htdocs/zoneminder
ZM_PATH_CGI => /var/www/localhost/cgi-bin
Не забываем проверить логин (zmuser) и пароль(zmpass) пользователя базы zm
3. Запускаем в браузере адрес: http://localhost/zm/zm.php
4. Дефолтные логин/пароль: admin/admin.
Западло #2: При запуске интерфейса zm в браузере выскочили ошибки «проверьте строки в .ppt»
В разных описаниях по установке выбраны совершено различные директории. Внимательно проверяем что и куда у нас свалилось. исправляем пути и права. В моем случае было так
/usr/share/zoneminder — основная папка програмы. Причем
/usr/share/zoneminder/cgi-bin есть ссылка на /usr/lib/cgi-bin – модуль формирования видеопотока
/var/cache/zoneminder – сюда адресованы папки куда валится поток и картинки
/etc/zm/ — тут лежат настройки для apache и zm
/etc/apache2/zoneminder Западло #3: Подключение USB камеры.
Сперва мне в руки попалась QuickCam® Sphere AF. Убив неделю на попытки заставить ее вертеться за объектом под Ubuntu так же, как под Windows я надолго успокоился и остановил свой выбор на QuickCam® E 3500 Plus™
Предчувствия оправдались, в списке поддерживаемых ZM USB устройств этот девайс так-же не значился. В качестве решения предлагалась утилита mjpg-streamer способная организовать вещание камеры по определенному порту. Осталось создать кнопку с консольной коммандой:
mjpg_streamer -i «input_uvc.so -r 320×240 -f 6» -o «output_http.so -p 8080» -b или
mjpg_streamer -i «input_uvc.so -r 640×480 -f 15» -o «output_http.so -p 8080» -b и вторую кнопку для остановки вещания:
killall mjpg_streamer в настройках камеры прописываем:
http://localhost:8080/?action=stream Одновременное использование камеры в ZM и другими программами (Skype) – невозможно.
Западло #4: Подключение Wi-Fi IP камер:
Изначально очень не хотелось тянуть провода. Питание еще ладно, но витую пару тянуть стоило если бы камеры поддерживали РоE. Однако, тестовые испытания показали неприятный факт: в момент подключения к точке доступа еще одного устройства поток с камеры прерывается. ZM теряет источник сигнала и требует специальных действий для его восстановления. Кабель в очередной раз доказал свои преимущества.
В остальном параметры подключения сводятся к правильному прописыванию пользователя как на самой камере, так и в настройках ее подключения в ZM.
Function – Modect
Remote Host Name — login:password@IP_adres
Remote Host Path — /cgi-bin/video.jpg (или /video.cgi зависит от камеры) Западло #5: Подключение MPEG4 камеры
Текущая 1.23.3 версия не поддерживает подключение MPEG4 камер, их поддержка заявлена с версии 1.24, есть некое решеньеце желающие попересобирать и покорячиться могут попробовать.
Западло #6: Камеры подключаются, но потом зеленый цвет их IP адреса меняется на красный, записей нет.
Zoneminder в системе выступает как пользователь www-data этому пользователю и его группе нужны права запись в папки. После раздачи прав картинки начинают сохраняться.
Западло #7: Все время горит аларм и запись не прерывается. Данные доступны только после остановки сервиса
У программы несколько режимов работы. В режиме «Record» запись ведется непрерывно, Что бы записывать только события – надо выставить …
Западло #8: Запись стартует по движению но не прерывается.
Проблема возникает если работает только одна камера. В настройках камеры убираем значение поля Linked Monitors.
Западло #9: На одно реальное событие плодится куча коротких записей.
В настройках камеры надо отрегулировать буферы.
для DCS-920
Image Buffer Size – постоянно поддерживаемый буфер не рекомендется больше 50
Warmup Frames – количество фреймов для отсеивания ошибок (10)
Pre Event Image Count – будут добавлены в начало записи (50-10 = 40)
Post Event Image Count – будет добавлена в конец записи (400)
для DCS-2120
Image Buffer Size – постоянно поддерживаемый буфер не рекомендется больше 30
Warmup Frames – количество фреймов для отсеивания ошибок (10)
Pre Event Image Count – будут добавлены в начало записи (20)
Post Event Image Count – будет добавлена в конец записи (100) Западло #10: Firefox грузит CPU.
ZoneMinder проще всего работает под Firefox, для просмотра видео под другими браузерами надо отдельно париться с настройкой cambozola.
Однако Firefox умудряется нахлобучивать процессор на все 100% не зависимо от его мощности. Установка сборок оптимизированных под процессор и операционную систему значительного утешения не принесли. Производители рекомендуют снижать частоту и размер изображения, уменьшать количество зон и т.д. Слабенькое утешение.
Западло #11: Как увидеть ZM из офиса?
Как настоящий «ойтешник» я не мог успокоиться на успехе достигнутом локально.
Мне нужен был успех доступный в мировом масштабе из любой точки планеты.
Путь пакета от домашнего сервера до ноутбука на работе пролегал через внутреннюю домашнюю сеть отгороженную маршрутизатором, ADSL от Стрима и корпоративный VPN.
Назначаем статический IP по MAC адресу видеосервера.
Получаем динамический DNS адрес для маршрутизатора. На сайте DynDNS.com был зарегистрирован пользователь и поднят динамический адрес. Его параметры введены в маршрутизатор.
Приказываем apache слушать еще один порт, этот же порт открываем на маршрутизаторе для IP видеосервера.
Удалено набираем http://DynDNS-адрес:ПОРТ/zm
В моем маршрутизаторе не работает loopback, поэтому проверить результат смог только в офисе.
До кучи можно поднять удаленный рабочий стол по VNC, только тормозить будет ужасно, хотя есть еще ssh.
При удаленном подключении пропадает видео. Просто не пролезает по каналу. Трейсинг показывает потери пакетов внутри Стрима. Можно смотреть слайдами, не так удобно, но лучше чем ничего.
Западло #12: После создания пользователей пропало видео
При включении параметра ZM_OPT_USE_AUTH пропадает стримовое видео как в мониторах, так и при просмотре сохраненных событий. Помогает только новая установка из исходников или выставление параметра ZM_AUTH_RELAY в none (сперва попробуйте plain, может повезет)
После настройки фильтров, зон и их чувствительности, можем, наконец, расслабиться и с наслаждением наблюдать, всей семьей, приветливые лица соседей.

Часть 4. Что дальше?
К сожалению, автоматические пулеметные туррели
плохо вписываются в интерьер средней городской квартиры.
Можно ли развить полученную систему видеонаблюдения в полноценную охранную систему, с СМС уведомлениями, удаленно управляемыми элементами активной защиты?
Первой идеей, пришедшей в голову, было переделать какой нибудь USB светильничек в генератор слезоточивого газа на базе пиропатрона.
Внутренняя камера, зафиксировав движение, отсылает СМС уведомление и снимок на е-маил. Смотрим с телефона почту и активируем заряд. Гуманно, но процесс займет не менее 5 минут. Многовато. Можно, конечно, сперва жахнуть, а потом уже разбираться что к чему…
Для начала разговора:

  1. Читаем приказ Минздрава от 22 октября 2008 года за № 584н «Об утверждении норм допустимого воздействия на человека поражающих факторов гражданского оружия самообороны»
  2. Принимаем во внимание, что старики и дети чаще попадаются в охранные ловушки нежели настоящие жулики.

Если вам все же очень хочется использовать активную систему защиты, рекомендую посмотреть в сторону генераторов автоматического пожаротушения.

  • методика применения аналогичная
  • не содержит токсических и раздражающих компонент
  • одновременно гарантирует защиту от возгорания
  • дышать после срабатывания совершенно нечем
  • пострадавший выглядит весьма комично

Теперь вернемся к суровой реальности. Каким образом формировать уведомления? Вариантов получается не так много.

  1. Подключить модем и настроить автодозвон и проигрывание файла
  2. Настроить е-маил уведомления и портировать их через гейт в СМС
  3. Подключить мобильный телефон к компьютеру и отправлять с него СМС

Последний вариант самый надежный, т.к. использует независимый канал передачи данных.
Хуже всего с е-маил-СМС гейтами. В теории, письмо должно отправляться провайдеру услуг мобильной связи на адрес типа номерабонента@sms.провайдер.ru В ряде случаев это работает, но в Москве отключено для защиты от спама. Работают только СМС уведомления о приходе почты на адреса типа Mail.Ru, Yandex.ru, Rambler.ru или Pochta.ru
Западло #13: Настройка уведомлений на е-маил.
Как выяснилось, обе мои камеры в этой области могут гораздо больше чем ZoneMinder.
В каждая может обратиться на SNMP сервер, предъявить логин и пароль и отправить письмо с вложенной фоткой. В настройках программы место для пароля отсутствует, т.к. по умолчанию используется nulmail. Предполагается, что где-то рядом находится корпоративный е-маил сервер и мы можем к нему обратиться как root. В противном случае, этот самый сервер, предполагается поднять, что само по себе изумительно. Поля для пароля можно получить двумя патчами, у меня они появились, но письма не уходят, а копаться пока нет сил.
При написании статьи использованы материалы:
Организация видеонаблюдения (видеорегистратор) на базе Ubuntu
Журнал «Системный Администратор» Ноябрь 2007

Netavis Observer — ПО IP-видеонаблюдения на базе Linux. Установка, настройка и небольшой взлом

Netavis Observer — программный продукт для организации видеонаблюдения с помощью IP-камер на базе Linux-сервера.

Netavis Observer написан на Java, так же используются такие продукты как Apache Tomcat, Webmin, Munin, Mysql.
Существует два варианта Netavis Observer — Bundled(поставляется в виде установочного iso-образа на базе Centos5 или Centos6) и Unbundled — набора rpm-пакетов для самостоятельной установки на сервер под управлением Centos или RedHat.
основные функциональные возможности и особенности: — Поддержка популярных IP-камер и видеосерверов, таких как AXIS, ArecontVision, D-link, ACTi, Sanyo, Samsung и других (полный список можно посмотреть на сайте Netavis).
— Поддержка разделения прав доступа к камерам, просмотру архива, экспорту видео, управлению 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:

Далее по списку: — Выбираем, в какой файловой системе будут отформатированы жесткие диски для хранения архивов (по умолчанию это xfs).
— Вводим имя сервера.
— Сохраняем параметры, введя 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-а.

Смотрим, какие жесткие диски подключены:# fdisk -l
/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) и смонтированы они соответственно так:
Скрытый текст# mount
/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)
А вот что у нас в fstab:LABEL=Images1 /Images/Images1 xfs noauto 1 0
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 из интерфейса клиента исчезла, как и информация о неиспользуемом жестком диске в консоли управления. Доступное файловое пространство отображается корректно.
Ссылки:
Спасибо за внимание.