zoneminder install linux debian

Instalación, configuración e implementación de ZoneMinder

En esta entrada exploraremos la instalación, configuración e implementación de ZoneMinder el software libre líder en el mercado de seguridad y vídeo vigilancia el cual permite capturar, analizar, grabar y monitorizar cualquier cámara CCTV o IP. La misma ofrece una interfaz web mediante la cual se realizan todas las funciones y operaciones soportadas. Su frontend fue escrito en PHP para la interfaz web y su backend esta escrito en Perl.

Zoneminder cuenta con funcionalidades como: Gestión de Eventos, Detección Avanzada de Movimiento, Alarmas y Gestión de Zonas.

ZoneMinder funciona gracias a las bondades del software libre, funciona en entornos basados en Linux, usa los servicios web de preferencia Apache y como gestor de base de datos MySQL aunque perfectamente puede funcionar con MariaDB. A su vez ZoneMinder es un servicio que se encarga de la gestión y operación sobre las cámaras conectadas a la solución, por lo cual de igual forma que Apache y MySQL es un demonio que puede ser iniciado, detenido y reiniciado cuando haga falta.

diagram zoneminder service
diagram zoneminder service

Instalar y Configurar ZoneMinder en Debian 8 Jessie

Añadiremos los repositorios de Debian Backports para poder     contar con la versión mas reciente de ZoneMinder a disposición de Instalar.

Agregaremos en:
/etc/apt/sources.list

el repositorio:
deb http://ftp.debian.org/debian/ jessie-backports main

Actualizaremos nuestra lista de repositorios:
#aptitude update

#aptitude install apache2 php5 mysql-server php-pear php5-mysql php5-gd
En este punto la instalación nos solicitara colocar una contraseña para el usuario root del MySQL.

Instalación de ZoneMinder en Debian:
#aptitude install zoneminder
Actualmente instalara la versión 1.29 de ZoneMinder la cual es la versión estable mas reciente.

Importaremos la estructura inicial de base de datos MySQL de ZoneMinder
#mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
Solicitara ingresar la contraseña de ROOT del MySQL que colocamos previamente

Creamos y asignamos permisos al usuario zmuser de MySQL
#mysql -u root -p -e «grant select,insert,update,delete,create on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;»
Solicitara ingresar la contraseña de ROOT del MySQL

Estableceremos los permisos correctos al archivo de configuración del ZoneMinder
#chmod 740 /etc/zm/zm.conf
#chown root:www-data /etc/zm/zm.conf
#chown -R www-data:www-data /usr/share/zoneminder/

En caso de requerir acceso a dispositivos locales de vídeo agregar el usuario www-data al grupo de video (util si se quiere monitorear la webcam de una laptop o otros dispositivos conectados directamente al equipo)
#adduser www-data video

Habilitamos e iniciamos el servicio de ZoneMinder:
#systemctl enable zoneminder.service
#systemctl start zoneminder.service

Validamos que el status del servicio ZoneMinder este activo:
#systemctl status zoneminder.service
● zoneminder.service – ZoneMinder CCTV recording and surveillance system
Loaded: loaded (/lib/systemd/system/zoneminder.service; enabled)
Active: active (running) since jue 2016-03-03 10:33:06 VET; 55s ago
Process: 11434 ExecStart=/usr/bin/zmpkg.pl start (code=exited, status=0/SUCCESS)
Main PID: 11472 (zmdc.pl)
CGroup: /system.slice/zoneminder.service
‣ 11472 /usr/bin/perl -wT /usr/bin/zmdc.pl startup

Habilitamos el modulo CGI y REWRITE así como la configuración de ZoneMinder para el Apache.
#a2enmod cgi
#a2enmod rewrite
#a2enconf zoneminder

Habilitamos el API de zoneminder agregando lo siguiente al final del archivo:

/etc/apache2/conf-enabled/zoneminder.conf
<Directory /usr/share/zoneminder/www/api>
    AllowOverride All
</Directory>

Este punto es útil sobre todo si quisiera luego usar el cliente multiplataforma (iOS, Android, Windows Desktop, Mac Desktop, Linux Desktop) de Zoneminder zmNinja.

Reiniciamos el servicio de Apache
#service apache2 restart

A este punto ya tenemos ZoneMinder instalado y ejecutándose. Se puede evidenciar accediendo al url: localhost/zm o el ip donde fue realizada la instalación 192.168.1.50/zm por ejemplo

Si les sale el siguiente error:
ZoneMinder is not installed properly: php’s date.timezone is not set to a valid timezone
Agregaremos en el archivo /etc/php5/apache2/php.ini
date.timezone = America/Caracas
Ó la zona horaria que corresponda a tu país.

Reiniciamos el servicio de Apache nuevamente para que tome los cambios aplicados.
#service apache2 restart

A este punto debemos poder visualizar la interfaz web de ZoneMinder

Instalar y configurar ZoneMinder
zoneminder-default-first-time

Configuración de ZoneMinder en Debian 8 Jessie

Cambozola es un plugin de Java que decodifica strems JPEG streams. Esto es necesario si quisiera visualizar ó monitorear ZoneMinder en el navegador Internet Explorer.

Para instalar Camboza  realizaremos los siguientes pasos:
#cd /usr/src && wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz
#tar -xzvf cambozola-latest.tar.gz
#cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder/www

Configurar la gestión de usuarios:
Ubicar en la interfaz web en las opciones de configuración la opción System y habilitar la autenticación de usuarios:
OPT_USE_AUTH     Authenticate user logins to ZoneMinder

Colocamos una cadena de texto la cual sera la llave secreta sobre la cual se generaran en lo sucesivo las contraseñas de los usuarios:
AUTH_HASH_SECRET: Secret for encoding hashed authentication information
Puede usar una cadena de texto al estilo: 3l-h4sh-d3-z0n3m1nd3r

En esta misma interfaz cambiamos el idioma y seleccionamos es_es.

habilitar-autenticacion-usuarios-zoneminder
habilitar-autenticacion-usuarios-zoneminder

Guardamos los cambios.

Nos dirigimos a la pestaña de usuarios (users) y realizamos el cambio de clave del usuario admin de zoneminder y agregamos usuarios iniciales.

Por defecto el usuario de autenticación es admin y su clave es admin

PD: Donde dice monitores restringidos seleccionar aquellos monitores o cámaras a las cuales tendrá acceso dicho usuario.

Reiniciamos el servicio de ZoneMinder:

systemctl restart zoneminder.service

Cambiar la apariencia o theme ir a Opciones → Visualizar → ZM_CSS → Flat

Agregar Monitores (Cámaras) a Zoneminder

Pulsaremos en el botón Añadir nuevo monitor con lo se abrirá una ventana web donde se colocaran los parámetros de acceso y configuración a las cámaras que deseamos.

La configuración óptima para las cámaras Bosh Dinion NBC-455-P es la siguiente:

Instalar y Configurar Zoneminder
Paso 1 – General
agregar monitor zoneminder bosh
Paso 2 – Origen

Cambiar el IP según sea el caso de la cámara a conectar al ZoneMinder. service e infoseg son el usuario y clave por defecto de este modelo de cámara ip.

Archivos y Rutas de Zoneminder

Entre otros valores destacamos que se encuentran los parámetros usados para la cadena de conexión de la base de datos en el archivo de configuración principal:

/etc/zm/zm.conf

#whereis zoneminder

zoneminder: /usr/lib/zoneminder /usr/share/zoneminder /usr/share/man/man1/zoneminder.1.gz

# ls -la /usr/share/zoneminder/www/

total 120

drwxr-xr-x 12 www-data www-data 4096 ago 10 00:25 .

drwxr-xr-x 4 www-data www-data 4096 ago 10 00:09 ..

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 ajax

drwxr-xr-x 4 www-data www-data 4096 ago 10 00:09 api

-rw-r–r– 1 root root 65492 ago 10 00:25 cambozola.jar

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 css

lrwxrwxrwx 1 www-data www-data 28 feb 20 22:09 events -> /var/cache/zoneminder/events

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 graphics

lrwxrwxrwx 1 www-data www-data 28 feb 20 22:09 images -> /var/cache/zoneminder/images

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 includes

-rw-r–r– 1 www-data www-data 6435 feb 3 2016 index.php

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 js

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 lang

drwxr-xr-x 5 www-data www-data 4096 ago 10 00:09 skins

lrwxrwxrwx 1 www-data www-data 26 feb 20 22:09 temp -> /var/cache/zoneminder/temp

drwxr-xr-x 3 www-data www-data 4096 ago 10 00:09 tools

drwxr-xr-x 2 www-data www-data 4096 ago 10 00:09 views

Los eventos (imagenes capturadas por las camaras) se almacenan en: /var/cache/zoneminder/events

Base de Datos de ZoneMinder

tablas-zoneminder
Tablas Zoneminder

La base de datos de ZoneMinder usa MySQL como gestor de base de datos y esta constituida por 18 tablas.

Para acceder a mysql:

#mysql -u root -p

Solicitara ingresar la contraseña de ROOT del MySQL

luego para usar nuestra base de datos:

mysql>use zm;

Con lo cual ya estaremos dentro de la base de datos mysql de nuestro ZoneMinder.

Diagrama Entidad Relación de la Base de Datos de ZoneMinder

diagrama er entidad relacion mysql mariadb zoneminder
diagrama er entidad relacion mysql mariadb zoneminder

La tabla Logs tiende a almacenar una gran cantidad de datos lo cual incrementa considerablemente el peso (size) de la base de datos. Se podrá verificar el tamaño de cada tabla de la base de datos zm con la siguiente sentencia:

mysql> SELECT TABLE_NAME, table_rows, data_length, index_length, round(((data_length + index_length) / 1024 / 1024),2) ‘Size in MB’ FROM information_schema.TABLES WHERE table_schema = ‘zm’;

database zoneminder size log fail big

De ser necesario se podrá eliminar registros en dicha tabla o realizar un truncate sobre la misma. En las opciones de registro de las opciones de ZoneMinder en su interfaz web se pueden ajustar los niveles de registro (logs) a almacenar.

Referencias:

https://wiki.zoneminder.com/Debian_8_64-bit_with_Zoneminder_1.29.0_the_Easy_Way
https://wiki.zoneminder.com/Debian_9_64-bit_with_Zoneminder_1.30.0_the_Easy_Way

http://zoneminder.readthedocs.io/en/stable/installationguide/debian.html#easy-way-debian-jessie

7 comentarios en “Instalación, configuración e implementación de ZoneMinder”

  1. mysql -u root -p -e “grant select,insert,update,delete,create on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;”
    Introduzco esto y me tira error :
    bash: ”: no se encontró la orden
    Perdonad mi ignorancia algo tendre mal pero me tira esto.

  2. Intenté usar Zoneminder y no funcionó bien. El rendimiento carecía en gran medida con las cámaras h.264. shinobicctv es una alternativa a zoneminder y parece funcionar mucho mejor. Donde zoneminder estaba usando 90% shinobi usa 10%. Aunque creo que Zoneminder es mejor con cámaras de tipo jpeg y mjpeg.

  3. Hola,
    La verdad es que que ya me volví loco, pero conseguí que me saliera el zoneminder en el navegador. Ahora me falta configurar bien la cámara.
    Mi pega es, como siempre, los sobre entendidos en la explicación, pero que como yo no los sé me quedo en la duda.
    A la hora de poner en la ficha origen el Nombre del host remoto;
    ¿Es la ip en donde yo estoy viendo la consola de zoneminder (en mi caso el local host)?
    ¿Es la ip de la red interna (la que me pone al principio cuando ejecuto ifconfig)
    ¿Es otra cosa?

    La contraseña y usuario:
    ¿Se refiere a los que he configurado en la consola de zoneminder u otra cosa?

    Gracias por aclararme si puedes.

  4. Hola buenas tal vez sea una tonteria pero no doy con ello,tengo 8 camaras conectadas y cuando le doy a montage solo aparecen 6 ,de vez een cuando van cambiando las 6 que salen pero nunca mas de seis ….tengo mal alguna configuracion en las opciones y no lo veo?
    Sin embargo si que en montagge review se ven todas ,tengo debian 10 yy zoneminder 1.32.10 alguna idea?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *