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 та аналізувати проблеми чому таке сталося, хоча можна звернути увагу на рядок по середині:ZoneMinderConsole —Stopped –v1.28.1 і клацнути станомStopped адалі виставити:Start - і натиснутиApply

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

Відкривши логи, виявив, що є помилки:
| 2015-06-27 09:01:53.808429 | web_php | 2432 | ERR | socket_sendto( /tmp/zm/zms-427548s.sock ) failed: No such file or directory | /usr/share/zoneminder/includes/functions.php |
| 2015-06-27 09:07:21.587530 | zmdc | 3014 | ERR | 'zmc -m 4' exited abnormally, exit status 255 | zmdc.pl |
| 2015-06-27 09:07:21.378150 | zmdc | 3014 | ERR | 'zmc -m 3' exited abnormally, exit status 255 | zmdc.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