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

zoneminder-install-linux-debian

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 video 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

Instalación de 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.

Instalaremos ZoneMinder:
#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

zoneminder-default-first-time

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)

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 optima para las cámaras Bosh Dinion NBC-455-P es la siguiente:

agregar-monitor-zoneminder-bosh-1

Paso 1 – General

agregar-monitor-zoneminder-bosh-2

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

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

Anuncios

2 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.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s