ZoneMinder (ZM) es un conjunto integrado de aplicaciones que proporciona una completa solución de vigilancia que le permite al usuario capturar, analizar, registrar y monitorizar una zona a través de cualquier CCTV o cámara de seguridad.
Principales características
- Monitorización desde cualquier lugar: ZoneMinder cuenta una interfaz basada totalmente en la web a la que puede acceder desde cualquier dispositivo con acceso a Internet
- Utiliza cualquier cámara: ZoneMinder te permite usar cualquier cámara analógica o por IP.
- Tus datos bajo control: ZoneMinder está completamente en local; Te permite tener tus datos a buen recaudo y controlar a dónde van.
- Se puede ejecutar en pequeños y grandes entornos: adecuado para uso doméstico y de pequeñas empresas, así como para implementar soluciones empresariales multiservidor. Es compatible con muchas plataformas, incluida la tecnología ARM (ODROID está basado en una plataforma ARM)
- Mantente al tanto de todo lo que sucede: ZoneMinder te permite buscar información de una forma muy intuitiva. Profundiza en lo que estás interesado en cuestión de segundos.
- Actualizado y sin coste alguno: un equipo comprometido con el código abierto mantiene muy activo ZoneMinder
Recientemente, he trasladado la aplicación ZoneMinder de mi viejo Radxa Rock Pro (una placa ARM) al ODROID-XU4 que es más potente. La mejor y más sencilla instalación que encontré fue la del ODROID-XU4 - Ubuntu 16.04.3 LTS - ZoneMinder 1.29 *.
Installation
Vamos a instalar ZoneMinder en nuestra placa ODROID-XU4. En tu tarjeta SD, instala la imagen de Ubuntu 16.04.3 LTS (la versión 4.14.y) proporcionada por Hardkernel en la dirección: https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.14/20171213
Luego actualiza el sistema:
$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade $ sudo apt install linux-image-xu3 $ sudo apt autoremove $ sudo rebootAhora instala LAMP (Linux, Apache, MySQL, PHP) en la placa:
$ sudo apt install apache2 $ sudo apt install mysql-server $ sudo apt install php libapache2-mod-php php-mysqlAhora instala ZoneMinder 1.29: **
$ sudo -iModifica la configuración de MySQL (no es necesario para ZM 1.32 o superior):
$ rm /etc/mysql/my.cnf (this removes the current symbolic link) $ cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf $ nano /etc/mysql/my.cnfEn la sección [mysqld] añade lo siguiente:
$ sql_mode = NO_ENGINE_SUBSTITUTIONA continuación, reinicia MySQL:
$ systemctl restart mysqlAhora instala ZoneMinder:
$ apt-get install zoneminderCrea una base de datos ZM (no necesario para ZM 1.32 o superior) :
$ mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql $ mysql -uroot -p -e "grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to 'zmuser'@localhost identified by 'zmpass';"Añade los permisos:
$ chmod 740 /etc/zm/zm.conf $ chown root:www-data /etc/zm/zm.conf $ chown -R www-data:www-data /usr/share/zoneminder/Activa los módulos y la configuración de ZoneMinder:
$ a2enmod cgi $ a2enmod rewrite $ a2enconf zoneminder $ a2enmod expires $ a2enmod headersActiva ZoneMinder al inicio del sistema:
$ systemctl enable zoneminder $ systemctl start zoneminderConfigura php.ini con la zona horaria correcta:
$ nano /etc/php/7.0/apache2/php.iniInserta tu zona horaria:
$ [Date] $ ; Defines the default timezone used by the date functions $ ; http://php.net/date.timezone $ date.timezone = America/New_YorkReinicia Apache:
$ systemctl reload apache2¡Hecho!
Ahora, puedes localizar la página web de ZM en http://IP_de_tu_placa/zm y añadir cámaras. *** El mismo procedimiento es válido para ZM 1.32 (la última versión estable de ZM), evitando así tener que usar comandos innecesarios. En este caso, antes de instalar ZM, deberás añadir el repositorio de ZoneMinder de Isaac Connor (responsable del mantenimiento de ZM en Ubuntu):
$ add-apt-repository ppa:iconnor/zoneminder-1.32Ten en cuenta que ZM 1.32 también está disponible para Ubuntu 18.04. Ten en cuenta que ffmpeg en la imagen 18.04 de Hardkernel no es compatible y debe adaptarse (consulta https://forum.odroid.com/viewtopic.php?f=95&t=33745#p247653 )
Notas
- Hay otras posibles combinaciones, que discutiremos más adelante;
- No hay necesidad de instalar un repositorio dedicado de ZoneMinder puesto que ZM 1.29 ya está disponible en los repositorios de Ubuntu 16.04 (xenial)
- Puede funcionar cualquier tipo de cámara: cámaras ffmpeg y mjpeg conectadas mediante Wi-Fi, cable Ethernet o USB
Otros ajustes y trucos
Tras la instalación, verifica si ZM se encuentra funcionando bien en tu LAN. Consulta las publicaciones anteriores para la instalación de ZM y la modificación de FFMPEG, si estas utilizando la distribución HK 18.04.
Abre un navegador web (se recomienda Firefox): http: //ipservidorLAN/zm (por ejemplo, http://192.168.1.200/zm). Si aparece la página de ZoneMinder, todo está bien.
Configura el acceso ZM con el modo autenticado: dirígete a Opciones/Sistema. Marca OPT_USE_AUTH. Cierre el navegador, luego ábrelo de nuevo y se te pedirá que introduzcas Userid/password. Utilica admin/admin *.
Modificar el userid/password: dirígete a Opciones/Usuarios. Cambia el nombre de usuario admin por lo que sea e introduce una nueva contraseña. Cierra el navegador, luego ábrelo de nuevo y se te pedirá que introduzcas el Userid/password. Usa los que has creado recientemente.
Comprueba AUTH_TYPE = builtin. Si no, configúralo: verifica AUTH_RELAY = hashed y nuevamente si no, configúralo. Cambia AUTH_HASH_SECRET por lo que sea *
Habilitar https para ZoneMinder: esta es la forma fácil. Existe otro método que utiliza certificados de letencrypt. Entra en el terminal y añade SSL a Apache2 creando primero un certificado autofirmado:
$ make-ssl-cert generate-default-snakeoil --force-overwriteEsto creará los siguientes archivos:
/etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/certs/ssl-cert-snakeoil.pemActiva el módulo SSL de Apache:
$ a2enmod sslActiva el host virtual ssl por defecto de Apache:
$ a2ensite default-sslReinicia Apache:
$ service apache2 restartAhora deberías poder acceder al servidor web mediante https://ipservidorLAN/zm (por ejemplo, https://192.168.1.200/zm).
Habilita el reenvío de puertos del puerto 443 en tu router. En un modelo ASUS, dirígete a WAN/Port Forwarding:
Nombre del servicio: HTTPS_Port_Forwarding Puerto: 443 IP Local: LANserverip (ej.: 192.168.1.200) Puerto lcoal: 443 Protocolo: TCP
Ahora debería poder acceder al servidor web mediante https://ipservidorWAN/zm (por ejemplo, https://5.157.104.224/zm).
Puedes vincular dinámicamente tu ipservidorWAN a un nombre de host estático (por ejemplo, https://nombredehost/zm) a través de las funciones de DNS dinámico de tu router (por ejemplo, en ASUS y DLink) o mediante servicios como NOIP. De esta forma, puedes exponer de forma segura el servicio ZoneMinder en WAN: acceso autentificado y acceso por https cifrados, de modo que toda la información en WAN quedara cifrada a través de una dirección web estática.
Si se te solicita que reinicies ZoneMinder, dirígete al Terminal e introduce el siguiente comando:
$ sudo service zoneminder restart
Cómo configura la cámara
Hay cuatro formas de hacerlo: tres fáciles, la cuarta manual:
1. Usar PRESETS 2. Utilizar la detección automática ONVIF. 3. Tirar de Google: buscar por "inserting {modelo de la camara} ZoneMinder" 4. Configuración manual
Para que te venga la inspiración, aquí tienes la configuración de mis tres tipos de cámaras:
A: FOSCAM FI8910W (antiguo modelo PTZ MJPEG usado para interiores)
General Name: whatever Server: None Source Type: Remote Function: Monitor (sólo para ver)
Source Remote Protocol: HTTP Remote Method: Simple Remote Host: 192.168.1.203 Remote Host Port: 200 Remote Host Path: /videostream.cgi?user=user-on-camera&pwd=pwd-on-camera&rate=3 Target Colorspace: 24 bit color Capture Width: 640 Capture Height: 480
Deja el resto de valores por defecto, veremos el control sobre los comandos PTZ más adelante.
B: FOSCAM FI8918W (modelo PTZ FFMPEG utilizado para interiores)
General Name: whatever Server: None Source Type: Ffmpeg Function: Modect Para ver y grabar cuando se detecte movimiento)
Source Source Path: rtsp://user-on-camera:pwd-on-camera@192.168.1.206:200/videoSub Remote Method: TCP Options: blank Target Colorspace: 24 bit color Capture Width: 640 Capture Height: 480
Deja el resto de valores por defecto, el control de los comandos PTZ lo veremos más adelante.
C: Los modelos en forma de cúpula Jidetech POE PTZ FFMPEG y LEFTEK POE PTZ FFMPEG que se utiliza para exteriores
General Name: whatever Server: None Source Type: Ffmpeg Function: Modect (Para ver y grabar cuando se detecte movimiento)
Source Source Path: rtsp://user-on-camera:pwd-on-camera@192.168.1.200:554/1/h264minor Remote Method: TCP Options: blank Target Colorspace: 24 bit color Capture Width: 640 Capture Height: 480
Deja el resto de valores por defecto, el control de los comandos PTZ lo veremos más adelante.
Cómo grabar en SSD
- Instala cifs-utils
$ sudo apt-get install cifs-utils- Crea un directorio para montar el SSD
$ mkdir /home/odroid/Documents/STORAGE-Edita /etc/fstab
$ sudo nano /etc/fstabInserta las siguientes líneas:
Nota: el UUID correcto del SSD se puede obtener con ls -l /dev/disk/by-uuid /*
#SSD UUID=BE28A67028A626FD /home/odroid/Documents/STORAGE auto nosuid,nodev,nofail 0 0Presiona CTRL+O, luego CTRL+X
$ sudo mount -aReinicia, si fuera necesario.
$ mkdir /home/odroid/Documents/STORAGE/ZM-IMAGES $ mkdir /home/odroid/Documents/STORAGE/ZM-IMAGES/images $ mkdir /home/odroid/Documents/STORAGE/ZM-IMAGES/events $ mkdir /home/odroid/Documents/STORAGE/ZM-IMAGES/temp $ sudo nano /etc/fstabInserta las siguientes líneas para crear un enlace:
/home/odroid/Documents/STORAGE/ZM-IMAGES/images /var/cache/zoneminder/images none defaults,bind 0 0 /home/odroid/Documents/STORAGE/ZM-IMAGES/events /var/cache/zoneminder/events none defaults,bind 0 0 /home/odroid/Documents/STORAGE/ZM-IMAGES/temp /var/cache/zoneminder/temp none defaults,bind 0 0
Presiona CTRL+O, luego CTRL+X
$ sudo mount -a $ sudo chown -R www-data:www-data /home/odroid/Documents/STORAGE/ZM-IMAGESSe podría seguir un procedimiento similar para montar un USB HD o un disco de almacenamiento en red.
Cómo grabar cuando se detecte movimiento
En la consola, haga clic en las zonas de la columna. En la cámara, quieres MOTION DETECTION. Haga clic de nuevo en la imagen. Fija el área que desea utilizar para la detección. Deja sin cambios si quieres chequear toda el área. Ahora configura lo siguiente:
Name: whatever Type: Active Unit: Pixels Alarm Colour: whatever Alarm check method: Blobs Min-Max Pix Thresh: 40 - 0 Filter: 5 -5 Min/max Alarmed area: 200 - 0 Min/max Filtered area: 20 - 0 Min/max Blob area: 20 - 0 Min/max Blob: 2 - 0 Overload Frame: 2
Guarda. Pon en la consola y la cámara en modo MODECT (función de columna).
Cómo implementar comandos PTZ
Habilitar los comandos PTZ: dirigete a Opciones/Sistema: marca en OPT_CONTROL. En la consola, haga clic en la fuente de la columna, para la cámara que quieras activar
PTZ:
Control Controllable: flag Control Type: Selecciona tu modelo de cámara Control device: según tu modelo (en mi caso blanco) Control address: camera_ip:camera_port (en mi caso 192.168.1.200:8999)
Be the first to comment