Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo instalar y configurar ZoneMinder en linux

 Le pedimos a Gemini la inteligencia artificial de Google que nos explique cómo instalar y configurar zoneminder en linux

Explicanos detalladamente cómo instalar y configurar zoneminder en linux

¡Claro! ZoneMinder es una robusta y completa solución de videovigilancia de código abierto para Linux. Permite monitorear cámaras IP, cámaras USB, cámaras analógicas (con hardware adicional) y ofrece grabación continua, detección de movimiento, alarmas, y una interfaz web para el control y visualización.

La instalación y configuración de ZoneMinder en Linux implica varios componentes: el servidor de base de datos (MariaDB/MySQL), el servidor web (Apache), PHP y el propio ZoneMinder.

Esta guía se centrará en las distribuciones más comunes de Linux (Ubuntu/Debian y CentOS/RHEL/Fedora).

Consideraciones Previas:

Hardware: Un servidor dedicado o una máquina potente. La cantidad de RAM, CPU y espacio en disco dependerá del número de cámaras, la resolución, los FPS y el método de grabación (continuo vs. detección de movimiento).

Almacenamiento: Asegúrate de tener suficiente espacio en disco para almacenar las grabaciones de video.

Dirección IP : Es altamente recomendable que tu servidor ZoneMinder tenga una dirección IP estática en tu red.

Privilegios: Necesitarás privilegios de sudo para la instalación y configuración.

Paso 1: Actualizar el Sistema e Instalar Dependencias Básicas

Es crucial tener el sistema actualizado antes de instalar nuevos paquetes.

Para Ubuntu/Debian:

Bash


sudo apt update

sudo apt upgrade -y

sudo apt install -y build-essential curl wget git


Para CentOS/RHEL/Fedora:

Bash


sudo dnf update -y

sudo dnf install -y @development-tools curl wget git


Paso 2: Instalar y Configurar el Servidor de Base de Datos (MariaDB/MySQL)

ZoneMinder necesita una base de datos para almacenar su configuración, eventos y otros datos. MariaDB es un reemplazo popular de MySQL.

Para Ubuntu/Debian:

Bash


sudo apt install -y mariadb-server mariadb-client

Para CentOS/RHEL/Fedora:

Bash


sudo dnf install -y mariadb-server mariadb

sudo systemctl enable --now mariadb # Habilitar e iniciar el servicio


Configurar la Seguridad de la Base de Datos

Después de la instalación, es vital asegurar tu servidor de base de datos.

Bash

sudo mysql_secure_installation

Sigue las indicaciones:

Si te pide una contraseña de root actual, presiona Enter (ya que no hay una por defecto).

Set root password? [Y/n]: Escribe Y y establece una contraseña fuerte para el usuario root de la base de datos.

Remove anonymous users? [Y/n]: Escribe Y.

Disallow root login remotely? [Y/n]: Escribe Y (muy recomendable por seguridad).

Remove test database and access to it? [Y/n]: Escribe Y.

Reload privilege tables now? [Y/n]: Escribe Y.

Crear la Base de Datos y el Usuario para ZoneMinder

Ahora crea la base de datos zm y un usuario zmuser con permisos para acceder a ella. ¡Cambia 'zmpass' por una contraseña fuerte y única!

Bash

sudo mysql -u root -p

Ingresa la contraseña de root de la base de datos que acabas de establecer. Luego, ejecuta los siguientes comandos SQL:

SQL

CREATE DATABASE zm;

CREATE USER 'zmuser'@'localhost' IDENTIFIED BY 'zmpass';

GRANT ALL PRIVILEGES ON zm.* TO 'zmuser'@'localhost' WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;

Paso 3:
Instalar y Configurar el Servidor Web (Apache) y PHP

ZoneMinder proporciona una interfaz web para su gestión. Apache es el servidor web recomendado.

Para Ubuntu/Debian:

Bash


sudo apt install -y apache2 php libapache2-mod-php php-mysql php-gd php-curl php-json php-mbstring php-xml php-zip php-common php-cli ffmpeg

Habilita los módulos de Apache necesarios:

Bash


sudo a2enmod cgi rewrite expires

sudo systemctl restart apache2


Para CentOS/RHEL/Fedora:

Bash


sudo dnf install -y httpd php php-mysqlnd php-gd php-curl php-json php-mbstring php-xml php-zip ffmpeg

sudo systemctl enable --now httpd # Habilitar e iniciar el servicio


Configurar PHP


Ajusta la configuración de PHP para ZoneMinder, aumentando los límites de memoria y carga de archivos, y configurando la zona horaria.

Edita php.ini:

Ubuntu/Debian: sudo nano /etc/php/<versión_php>/apache2/php.ini (reemplaza <versión_php> por tu versión, ej., 8.1).

CentOS/RHEL/Fedora: sudo nano /etc/php.ini

Modifica las siguientes líneas:

memory_limit = 256M (o más, dependiendo de tus necesidades)

upload_max_filesize = 128M

post_max_size = 128M


date.timezone = America/Sao_Paulo (o tu zona horaria. Busca una lista en la documentación de PHP si no estás seguro).

Guarda los cambios y reinicia Apache

Ubuntu/Debian:
sudo systemctl restart apache2

CentOS/RHEL/Fedora: sudo systemctl restart httpd

Paso 4: Instalar ZoneMinder

Para Ubuntu/Debian (Recomendado usar el PPA para versiones más recientes):

Bash

sudo add-apt-repository ppa:iconnor/zoneminder-release

sudo apt update

sudo apt install -y zoneminder


Durante la instalación, es posible que se te pregunte si quieres configurar la base de datos de ZoneMinder. Si ya la creaste manualmente en el Paso 2, selecciona No o No configurar automáticamente. Si seleccionas Sí, asegúrate de proporcionar las credenciales correctas que creaste (usuario zmuser, contraseña zmpass).

Para CentOS/RHEL/Fedora:

ZoneMinder suele estar en los repositorios estándar o en EPEL (Extra Packages for Enterprise Linux).

Bash

# Si aún no tienes EPEL

sudo dnf install -y epel-release

sudo dnf install -y zoneminder


Paso 5: Configuración Post-Instalación de ZoneMinder

Después de instalar el paquete de ZoneMinder, quedan algunos pasos cruciales para que funcione correctamente.

Configurar la Base de Datos de ZoneMinder

El paquete de ZoneMinder debe poblar la base de datos zm con sus tablas y datos iniciales. Si no lo hizo automáticamente durante la instalación (o si omitiste la configuración automática), necesitas hacerlo manualmente:

Bash

# Asegúrate de que el script de actualización de ZM se ejecute

sudo zmupdate.pl -f

# O, si zmupdate.pl falla o la base de datos está vacía, importa el esquema manualmente:

sudo mysql -u zmuser -p zm < /usr/share/zoneminder/db/zm_create.sql


Ingresa la contraseña para zmuser cuando se te solicite.

Configurar ZoneMinder para Usar tu Base de Datos

Edita el archivo de configuración principal de ZoneMinder para que apunte a la base de datos que creaste.

Bash

sudo nano /etc/zm/zm.conf


Asegúrate de que estas líneas coincidan con tu configuración de base de datos (zmuser, zmpass y zm son ejemplos, usa los tuyos):

ZM_DB_HOST=localhost

ZM_DB_NAME=zm

ZM_DB_USER=zmuser

ZM_DB_PASS=zmpass

Guarda y cierra el archivo.

Configurar Permisos:

El usuario del servidor web (www-data en Ubuntu/Debian, apache en CentOS/RHEL) necesita permisos para acceder a los dispositivos de video y a los directorios de ZoneMinder.

Añadir usuario web al grupo video:

Ubuntu/Debian:

Bash


sudo usermod -aG video www-data

CentOS/RHEL/Fedora:

Bash


sudo usermod -aG video apache

Configurar permisos para el directorio de ZM: La mayoría de los paquetes lo configuran correctamente, pero verifica que el usuario del servidor web tenga permisos para el directorio web de ZoneMinder y el directorio de eventos/imágenes.

Ubuntu/Debian:

Bash


sudo chown -R www-data:www-data /usr/share/zoneminder/www

sudo chown -R www-data:www-data /var/cache/zoneminder/events

sudo chown -R www-data:www-data /var/cache/zoneminder/images

sudo chmod 740 /etc/zm/zm.conf

sudo chown root:www-data /etc/zm/zm.conf

CentOS/RHEL/Fedora:

Bash


sudo chown -R apache:apache /usr/share/zoneminder/www

sudo chown -R apache:apache /var/cache/zoneminder/events

sudo chown -R apache:apache /var/cache/zoneminder/images

sudo chmod 740 /etc/zm/zm.conf

sudo chown root:apache /etc/zm/zm.conf


Contexto SELinux (Solo CentOS/RHEL/Fedora): Si tienes SELinux en modo enforcing, puede bloquear ZoneMinder. Para fines de prueba, puedes ponerlo en modo permissive temporalmente o configurar las reglas de SELinux correctamente.

Bash

# Modo permisivo temporal (no persistente al reiniciar)

sudo setenforce 0

# Para que sea persistente (edita el archivo y reinicia):

sudo nano /etc/selinux/config # Cambia SELINUX=enforcing a SELINUX=permissive


Para una configuración persistente y segura, se recomienda instalar las políticas de SELinux para ZoneMinder si están disponibles en tu distro, o aprender a crear tus propias reglas.

Configurar Apache para ZoneMinder

El paquete de ZoneMinder suele incluir un archivo de configuración de Apache.

Ubuntu/Debian:

El paquete ya habilita la configuración de ZoneMinder para Apache. Puedes verificarlo:

Bash

ls -l /etc/apache2/conf-enabled/zoneminder.conf

Si no existe, el archivo está en /etc/apache2/conf-available/zoneminder.conf y puedes habilitarlo con:

Bash

sudo a2enconf zoneminder

CentOS/RHEL/Fedora:

El archivo de configuración de Apache de ZoneMinder suele estar en /etc/httpd/conf.d/zoneminder.conf. Abre este archivo para verificar su contenido y asegúrate de que el Alias para /zm apunte al directorio web correcto de ZoneMinder (/usr/share/zoneminder/www).

Reinicia Apache

Ubuntu/Debian: sudo systemctl restart apache2

CentOS/RHEL/Fedora: sudo systemctl restart httpd

Iniciar el Servicio ZoneMinder:

Bash


sudo systemctl start zoneminder

sudo systemctl enable zoneminder # Para que inicie con el sistema


Paso 6: Primer Acceso a la Interfaz Web y Configuración Básica

Acceder a la Interfaz Web:

Abre tu navegador web y ve a:


http://your_server_ip/zm o http://localhost/zm (si estás en el mismo servidor).

Deberías ver la consola de ZoneMinder.

Primer Login y Creación de Usuario Administrador (Importante):

En las versiones más recientes de ZoneMinder (generalmente 1.36+), el primer acceso te guiará para crear un usuario administrador. Sigue las instrucciones.

En versiones anteriores, el usuario y la contraseña por defecto suelen estar vacíos. Simplemente haz clic en "Login" sin introducir nada.

Inmediatamente después de iniciar sesión, crea un usuario administrador con una contraseña fuerte y elimina el usuario por defecto o las credenciales vacías.

Ve a Options (Opciones) -> Users (Usuarios).

Haz clic en "Add New User" (Añadir Nuevo Usuario).

Establece un Username, una Password fuerte, y selecciona Administrator en el rol. Guarda.

Cierra sesión y vuelve a iniciarla con tu nuevo usuario administrador.

Configurar la Zona Horaria del Sistema:

Es crucial para que las grabaciones tengan la marca de tiempo correcta.

En la interfaz web de ZoneMinder, ve a Options (Opciones) -> System (Sistema).

Busca la opción TIMEZONE y selecciona tu zona horaria correcta (ej., America/Sao_Paulo).

Haz clic en "Save" (Guardar) en la parte inferior.

Ajustar Opciones de Almacenamiento (Opcional pero recomendado):

Ve a Options (Opciones) -> Storage (Almacenamiento).

Aquí verás la ubicación por defecto de tus eventos (/var/cache/zoneminder/events). Asegúrate de que esta partición tenga suficiente espacio en disco.

Puedes añadir nuevas áreas de almacenamiento si tienes discos dedicados o particiones más grandes.

Paso 7: Añadir tu Primera Cámara (Monitor)

En la Consola de ZoneMinder:

Haz clic en el botón Add New Monitor (Añadir Nuevo Monitor) en la parte superior.

Configuración del Monitor:

General:


Name: Un nombre descriptivo para tu cámara (ej., "Cámara Puerta Principal").

Source Type: Selecciona el tipo de cámara.

Ffmpeg: Para la mayoría de las cámaras IP (RTSP, HTTP, RTMP).

Local: Para cámaras USB conectadas directamente al servidor.

Libvlc: Alternativa a Ffmpeg.

Remote: Para cámaras IP más antiguas (HTTP, JPEG).

cURL:
Para capturar imágenes fijas vía HTTP.

V4L: Para cámaras analógicas con una tarjeta de captura.

Source (Fuente - Si elegiste Ffmpeg para IP Cam):

Source Path: Aquí va la URL de la transmisión de tu cámara IP. Ejemplos comunes:

rtsp://usuario:contraseña@IP_CAMARA:puerto/ruta_stream (ej., rtsp://admin:123456@192.168.1.100:554/stream1)

http://usuario:contraseña@IP_CAMARA:puerto/cgi-bin/stream.cgi

Consulta la documentación de tu cámara para la URL RTSP o HTTP correcta.

Remote Method: RTSP/HTTP (o HTTP si el stream es HTTP).

Shared Memory: Déjalo en 0.

Capture Width (Ancho de Captura) y Capture Height (Alto de Captura): Deben coincidir con la resolución del stream de tu cámara (ej., 1920x1080, 1280x720). Colours: 24 bit colour o 32 bit colour para la mayoría de las cámaras modernas.

General (Función del Monitor):

Function:
Define cómo ZoneMinder procesará este monitor.

Modect:
Detección de Movimiento (Recomendado para la mayoría de usos). Graba solo cuando se detecta movimiento.

Monitor:
Solo para visualización en vivo, no graba.

Record: Graba continuamente.

Nodect: Visualización en vivo, pero los eventos se registran por otras entradas (ej., un detector de alarma externo).

Max FPS (Max. Fotogramas por Segundo): La velocidad de fotogramas deseada. No debe superar la que la cámara puede entregar.

Motion (Movimiento - Si elegiste Modect):

Aquí puedes ajustar la sensibilidad de la detección de movimiento.

Puedes definir "zonas" para ignorar áreas o enfocar la detección.

Guarda el monitor.

Verificar el Monitor:

Después de guardar, el monitor debería aparecer en la Consola. Debería mostrar un estado Running.

Haz clic en la imagen en vivo del monitor para ver la transmisión en tiempo real.

Solución de Problemas Frecuentes (Rápido)

Interfaz web no carga o da error:


Apache no está corriendo.

Error en la configuración de Apache para ZoneMinder (/etc/apache2/conf-enabled/zoneminder.conf o /etc/httpd/conf.d/zoneminder.conf).

Errores de sintaxis en php.ini.

Problemas de permisos para el directorio web de ZoneMinder.

No se ve la transmisión de la cámara (zmc o zmu muertos):

URL de la cámara incorrecta: Verifica la Source Path (URL RTSP/HTTP), usuario y contraseña de la cámara.

Resolución incorrecta: Capture Width/Height no coincide con la cámara.

Firewall: El firewall del servidor ZoneMinder está bloqueando la conexión saliente a la cámara IP.

Cámara no accesible: La cámara está apagada o no tiene conexión de red.

FFmpeg/Libvlc:
Problemas con la instalación de los codecs o versiones incompatibles.

Logs del monitor: Haz clic en el nombre del monitor en la consola ZM y revisa sus logs específicos para ver el error exacto.

Detección de movimiento no funciona o es errática

Sensibilidad: Ajusta la sensibilidad de detección en la sección "Motion" del monitor.

Zonas: Define zonas de detección específicas o ignora áreas con mucho ruido (árboles, banderas).

Iluminación: Cambios drásticos de luz pueden activar falsos positivos.

No hay grabaciones o los eventos están incompletos

Espacio en Disco: El disco está lleno (df -h).

Permisos: El usuario del servidor web (www-data/apache) no tiene permisos de escritura en el directorio de eventos (/var/cache/zoneminder/events).

Función del monitor: Asegúrate de que el monitor esté configurado en Modect o Record.

Rendimiento lento:

Recursos del Servidor:
CPU o RAM insuficientes para el número de cámaras y la carga de trabajo.

Cámaras: Demasiados FPS o resoluciones muy altas. Intenta reducir la calidad de los streams.

Almacenamiento: El disco duro es lento.

Recuerda que la comunidad de ZoneMinder es activa y su documentación oficial (zoneminder.com/documentation) es una excelente fuente de información para configuraciones avanzadas y solución de problemas específicos. ¡Mucha suerte con tu sistema de videovigilancia !

Ads by CJ - Linux Foundation

Share This