ZoneMinder на службі клієнтської зони, Реальні нотатки Ubuntu - Mikrotik

Всі подальші дії я робитиму на системіUbuntu 12.04.5 Server amd64

поточний характеристики якої в рамках мого спершу тесту:

  • RAM = 1Gb
  • HDD = 25Gb
  • CPU = 1Gb

використовувані камери:Acti ACM-5611 A1D-220-V3.14.19-AC

Оновлюю інформацію про репозитарії та встановлені пакети системи:

$ sudo apt-get update && sudo apt-get upgrade -y

Перевіряю поточну версію пакета, що розгортаєтьсяZoneMinder присутнього в дефолтних репозитаріях:

$ apt-cache show zoneminder grep Version

Встановлюю пакетZoneMinder у систему:

$ sudo apt-get install zoneminder -y

в процесі якщо не встановленоmysql доведеться створити пароль на обліковий записroot стосовноБД:

New password для MySQL "root" user:712mbddr@

Repeat password для MySQL «root» user:712mbddr@

Mailname of your system: srv-mon_

Smarthosts: нічого не вводжу, просто видаляю що було введено установником

Налаштування пошти я розберу трохи пізніше.

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

$ sudo nano /etc/apt/sources.list

deb http://ppa.launchpad.net/iconnor/zoneminder/ubuntu precise main

deb-src http://ppa.launchpad.net/iconnor/zoneminder/ubuntu precise main

P.S. Перероблена (працездатна) нотатка доступна тут

$ sudo apt-get update

W: GPG error: http://ppa.launchpad.net precise Release: The following signaturs couldn’t be verified because the public key is not available: NO_PUBKEY 4D0BF748776FFB04

Додаю цей публічний ключ до системи:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 4D0BF748776FFB04

$ sudo apt-get update

Далі оновлюю поточну версію пакетаZoneMinder 1.25.0-1 до останнього стану:

$ apt-cache show zoneminder grep Version

$apt-cache policy zoneminder

500 http://ppa.launchpad.net/iconnor/zoneminder/ubuntu/ precise/main amd64 Packages

500 http://us.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages

$ sudo apt-get install zoneminder=1.28.1-precise-1 -y

ZoneMinder is stopped

invoke-rc.d: initscript zoneminder, action «status» failed.

Напередодні версії ZoneMinder використовували MyISAM database engine.

Незважаючи на те, що сумісний з Database engine є InnoDB.

Hint: InnoDB tables є дуже незважаючи на те, щоб бути коррупованим при unclean shutdown.

Press 'y' to convert your tables to InnoDB або 'n' to skip : y

Перевірка MyISAM додатків до InnoDB. Please wait.

Database already at version 1.28.1, update aborted.

Starting ZoneMinder: success

Setting up libgs9 (9.05

Setting up ghostscript (9.05

Processing triggers for libc-bin …

ldconfig знижується процесів, які тепер беруть участь

Після переходу до налаштування: - сайту

$ sudo ln -s /etc/zm/apache.conf /etc/apache2/sites-available/zoneminder.conf

$ sudo nano /etc/apache2/apache2.conf

$ sudo a2ensite zoneminder.conf

Перезапускаю Веб серверApache:

$ sudo service apache2 reload

Щоб вам було простіше орієнтуватися, увімкніть українську мову оболонки. Для цього натиснітьOptions і в рядкуLANG_DEFAULT встановіть значенняua-ua і натиснітьна кнопкуsave внизу чи виставляємо значення:en_us, як зробив я.

У вікні вкладціGeneral (Загальне) вказуємо:

Після переходимо на вкладкуSource де задаємо параметри підключення доIP камери:

  • Remote Protocol: HTTP
  • Remote Method: Simple
  • Remote Host Name: ekzorchik:[email protected]
  • Remote Host Port: 80 (Віддалений порт)
  • Remote Host Path: /cgi-bin/cmd/encoder?GET_STREAM (Шлях на віддаленому пристрої)
  • Target Colorspace: 24 bit кольори
  • Capture Width (pixels): 1280 (Розмір по X (у пікселях))
  • Capture Height (pixels): 1024 (Розмір по Y (у пікселях))
  • Orientation: Normal (Орієнтація)
  • Deinterlacing: Four field motion adaptive – Medium
  • Після перемикання на вкладку: Buffers (буфери)
  • Image Buffer Size (frames): 50
  • Warmup Frames: 25
  • Pre Event Image Count: 25
  • Post Event Image Count: 25
  • Stream Replay Image Buffer: 200
  • Alarm Frame Count: 1

На замітку: ім'я камери має бути не українською написано, а англійською, інакше у Вас буде помилка вигляду:

Після натисканняSave поточного вікна налаштувань камери і в головному мене з'явиться додана налаштована камера:

Варіюючи параметромScale, зараз я виставив¼ – можна регулювати розмір зображення, що відображається вWeb-представленому інтерфейсі.

клієнтської

джерело камери192.168.13.27 – відзначений червоним, значить Вам дорога в правий кут де потрібно натиснутиLog та аналізувати проблеми чому таке сталося, хоча можна звернути увагу на рядок по середині:ZoneMinderConsoleStoppedv1.28.1 і клацнути станомStopped адалі виставити:Start - і натиснутиApply

zoneminder

Після цього рядок доданої камери змінить статус на активований:

Відмінно, розглядаю що у мене відбувалося коли я додав всі камери, дві з них показували, а ось інші дві немає:

zoneminder

Відкривши логи, виявив, що є помилки:

2015-06-27 09:01:53.808429web_php2432ERRsocket_sendto( /tmp/zm/zms-427548s.sock ) failed: No such file or directory/usr/share/zoneminder/includes/functions.php

2015-06-27 09:07:21.587530zmdc3014ERR'zmc -m 4' exited abnormally, exit status 255zmdc.pl

2015-06-27 09:07:21.378150zmdc3014ERR'zmc -m 3' exited abnormally, exit status 255zmdc.pl

Більшу частину лога я опустив, але вже деяка його частина дає зрозуміти, що при додаванні наступний камер3 і4 сервісZoneMinder починає збоїти від інформації, що надходить.

При тестуванні доступності камери3&4 отримую відповідь

Необхідний значення визначить path для arp command, type -p arp returned ‘127’

Почитавши документацію та різні форуми дійшов висновку, що у мене на системі потрібно поправити параметр, що відповідає за загальну пам'ять (shared memory ), відобразити поточний параметри системи:

—— Shared Memory Limits ———

max number of segments = 4096 (Максимум черг для всієї системи)

max seg size (kbytes) = 32768

max total shared memory (kbytes) = 8388608

min seg size (bytes) = 1

- SemaphoreLimits ——— Межі семафорів

max number of arrays = 128 (Максимальна кількість масивів)

max semaphores per array = 250 (Максимум семафорів на масив)

max semaphores system w >

max ops per semop call = 32 (Максимум операцій на виклик семафору)

semaphore max value = 32767 (Максимальне значення семафору)

—— Messages Limits ———(Межі спільного використання пам'яті)

max queues system w >

max size of message (bytes) = 8192

default max size of queue (bytes) = 16384

#!/bin/bash # simple shmsetup script page_size= getconf PAGE_SIZE phys_pages= getconf _PHYS_PAGES shmall= expr $phys_pages / 2 shmmax= expr $shmall \* $page 19>echo kernel.shmmax = $shmmax echo kernel.shmall = $shmall

$ sudo bash -c "sh ./kernel >> /etc/sysctl.conf"

Після перезапускаю систему:

Результат такий самий, мабуть1Gb пам'яті системі мало, з подальшої вичитки як розраховується все-таки параметр

  • для x86 архітектури: 4*1024*1024*1024 – всього значення в байтах але не більше 4Gb
  • для x64 архітектури: вже такого обмеження немає.

У документації до програми рекомендується виставити значення в127 Мегабайт перевівши його в байти, але мені до речі це теж не допомогло.

Раз не виходить, то збільшив просто розмір оперативної пам'яті на системі з1Gb до4Gb і жодних значень у/etc/sysctl.conf я не вносив

Система сама визначила найкоректніші для неї значення:

підсумок, всіIP камери успішно завелися і відображаються, в логах до речі все чисто:

службі

Тепер мені потрібно, щоб з однієї сторінки можна було спостерігати за всіма чотирма камерами відразу,робиться це за допомогою плагіна іменованого якcambozola, встановлюю його в систему:

$ sudo wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz

$tar-xzf cambozola-latest.tar.gz

$ sudo cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder/

Тепер клацаємо поRunning і перезапускаємоZoneminder, як тільки процес завершиться – перехід на іменовану посилання, якMontage дозволить маніпулювати процесом відображення всіх 4 камер з однієї сторінки.

Наприклад якось так:, але доведеться підібрати значення:

зони

Тепер, маючи отримане, можна задіяти посилання (її вид:http://IP&DNS/zm/index.php?view=montage&group=0 ) на доступ до цієї сторінки використовувати на телевізорах, підключених до тонкого клієнта Наприклад:HP EliteDesk800G1 (це вже краще ніж будь-які доісторичніTonk 1202,1207 ) в клієнтській зоні.

зони

, у логах йдуть помилки

Ще більш уважне читання логів та форумів показало, що у мене файл сайтуzoneminder.conf містить не цілком коректні значення – змінив на:

$ sudo nano /etc/apache2/sites-available/zoneminder.conf

Alias ​​/zm /usr/share/zoneminder

php_flag register_globals off

php_value short_open_tag 1

Options Indexes FollowSymLinks

ScriptAlias ​​/cgi-bin /usr/lib/cgi-bin

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

# The code unfortunately use short tags in many places

php_value short_open_tag 1

Зберіг внесені зміни, а потім перезапустивWeb-сервісApache & ZoneMinder

$ sudo service apache2 stop

$ sudo service zoneminder stop

Stopping ZoneMinder: success

$ sudo service zoneminder start

Starting ZoneMinder: success

$ sudo service apache2 start

Використовуйте проксі ((заблоковано розкомнаглядом, використовуйте vpn або proxy)) під час використання Telegram клієнта:

з'являтимуться частіше :)

Карта МКЛ: 4432-7300-2472-8059 Yandex-гроші: 41001520055047