ZoneMinder
ZoneMinder 是一套集成的应用程序,提供完整的监控解决方案,可以捕获、分析、记录和监控连接到基于 Linux 的机器的任何闭路电视或安全摄像头。它旨在运行在支持 Video For Linux (V4L) 接口的发行版上,并且已经过连接到 BTTV 卡、各种 USB 摄像头的视频摄像头的测试,并且还支持大多数 IP 网络摄像头。
安装
Install the zoneminderAUR 软件包。
Apache
1) 编辑 Apache 的 /etc/httpd/conf/httpd.conf
并取消注释以下行
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule cgid_module modules/mod_cgid.so
2) 在同一文件中,通过在末尾添加以下行来启用 ZoneMinder 的配置
Include conf/extra/zoneminder.conf
现在启动或重启 httpd.service
。
Nginx
1) 编辑 Nginx 的 /etc/nginx/nginx.conf
并在 http
块的末尾添加以下行
include sites-enabled/*.conf;
2) 如果 /etc/nginx/sites-enabled
目录尚不存在,则创建它
# mkdir -p /etc/nginx/sites-enabled
3) 将 ZoneMinder 的配置文件从 /etc/nginx/sites-available
链接到 /etc/nginx/sites-enabled
# ln -sf /etc/nginx/sites-{available,enabled}/zoneminder.conf
现在启动或重启 fcgiwrap-multiwatch.service
和 nginx.service
。
fcgiwrap-multiwatch.service
抱怨套接字已存在并拒绝启动,请检查 fcgiwrap.socket
和 fcgiwrap.service
的状态,如果它们处于活动状态,则停止它们。MariaDB
1) 如果您尚未这样做,请初始化 MariaDB 的默认数据库
# mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql 2> /dev/null
2) 启动 mariadb.service
并为 ZoneMinder 创建数据库和用户
-p
选项。# mariadb -u root -p < /usr/share/zoneminder/db/zm_create.sql # mariadb -u root -p -e "grant select,insert,update,delete,create,drop,alter,index,lock tables,alter routine,create routine,trigger,execute on zm.* to 'zmuser'@localhost identified by 'zmpass';"
最后步骤
运行以下命令以创建 ZoneMinder 在运行时所需的一些 volatile 文件和目录
# systemd-tmpfiles --create
然后,除了上述步骤中已启动的任何服务外,启动 php-fpm.service
和 zoneminder.service
。ZoneMinder 的 Web 界面将在 https://127.0.0.1:8095 上访问。
故障排除
日志默认保存在 /var/log/zoneminder
中。您也可以在 Web 界面中检查日志。
请参阅上游 wiki 页面:故障排除。
清理应用程序数据
这对于需要擦除所有 ZoneMinder 并重新开始的开发人员或用户很有用。
重建数据库
删除 ZoneMinder MySQL 数据库并删除 MySQL 用户
# mysql -u root -p
DROP DATABASE zm; DROP USER 'zmuser'@'localhost';
重建数据库和用户
# mysql -u root -p
CREATE DATABASE zm; CREATE USER 'zmuser'@'localhost' IDENTIFIED BY 'zmpass'; GRANT ALTER, CREATE, DELETE, INSERT, SELECT, UPDATE ON zm.* TO 'zmuser'@'localhost'; exit
将预配置的表导入到您新创建的 zm 数据库中
# mysql -u root -p zm < /usr/share/zoneminder/db/zm_create.sql
清理缓存文件夹
# rm -Rf /var/lib/zoneminder/events/* /var/lib/zoneminder/images/* /var/lib/zoneminder/cache/*
本地视频设备
重要的是,运行 httpd 的用户(通常是 http)可以访问您的摄像头,例如
$ groups http
video http
$ ls -l /dev/video0
crw-rw----+ 1 root video 81, 0 Oct 28 21:54 /dev/video0
也就是说,将 http 用户添加到 video 组。
要将用户添加到组,请运行以下命令
# usermod -aG video http
多个本地 USB 摄像头
如果您在使用多个 USB 视频设备(例如多个网络摄像头)时观察到类似 libv4l2: error turning on stream: No space left on device 的错误,您可能需要增加总线上的带宽。
首先通过停止 zoneminder.service
进行测试,然后
# rmmod uvcvideo # modprobe uvcvideo quirks=128
启动 zoneminder.service
,如果问题得到解决,通过将模块选项添加到 /etc/modprobe.d/uvcvideo.conf
来持久化更改。例如
options uvcvideo nodrop=1 quirks=128
(参考)