A. 如何使用Monit部署服务器监控系统
Monit是什么看
Monit是
一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只
有500KB大小),并且不依赖任何第三方程序、插件或者库。然而,Monit可以胜任全面监控、进程状态监控、文件系统变动监控、邮件通知和对核心服务
的自定义动作等场景。易于安装、轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具。
我
已经在一些机器使用Monit几年了,而且我对它的可靠性非常满意。甚至作为全面的监控系统,对任何Linux系统管理员来说Monit也是非常有用和强
大的。在这篇教程中,我会展示如何在一个本地服务器部署Monit(作为后备监控系统)来监控常见的服务。在部署过程中,我只会展示我们用到的部分。
在Linux安装Monit
Monit已经被包含在多数Linux发行版的软件仓库中了。
Debian、Ubuntu或者Linux Mint:
$ sudo aptitude install monit
Fedora或者CentOS/RHEL:
在CentOS/RHEL中,你必须首先启用EPEL或者Repoforge软件仓库.
# yum install monit
Monit
自带一个文档完善的配置文件,其中包含了很多例子。主配置文件在/etc/monit.conf(Fedora/CentOS/RHEL
中),或者/etc/monit/monitrc(Debian/Ubuntu/Mint
中)。Monit配置文件有两部分:逗Global地(全局)和逗Services地(服务)。
Global Configuration: Web Status Page (全局配置:Web状态页面)
Monit可以使用邮件服务来发送通知,也可以使用HTTP/HTTPS页面来展示。我们先使用如下配置的web状态页面吧:
Monit监听1966端口。
对web状态页面的访问是通过SSL加密的。
使用monituser/romania作为用户名/口令登录。
只允许通过localhost、myhost.mydomain.ro和在局域网内部(192.168.0.0/16)访问。
Monit使用pem格式的SSL证书。
之后的步骤,我会使用一个基于Red Hat的系统。在基于Debian的系统中的步骤也是类似的。
首先,在/var/cert生成一个自签名的证书(monit.pem):
# mkdir /var/certs # cd /etc/pki/tls/certs # ./make-mmy-cert monit.pem # cp monit.pem /var/certs # chmod 0400 /var/certs/monit.pem
现在将下列代码片段放到Monit的主配置文件中。你可以创建一个空配置文件,或者基于自带的配置文件修改。
set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro
Global Configuration: Email Notification (全局配置:邮件通知)
然后,我们来设置Monit的邮件通知。我们至少需要一个可用的SMTP服务器来让Monit发送邮件。这样就可以(按照你的实际情况修改):
邮件服务器的机器名:smtp.monit.ro
Monit使用的发件人:[email protected]
邮件的收件人:[email protected]
邮件服务器使用的SMTP端口:587(默认是25)
有了以上信息,邮件通知就可以这样配置:
set mailserver smtp.monit.ro port 587 set mail-format { from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert [email protected]
就像你看到的,Monit会提供几个内部变量($DATE、$EVENT、$HOST等),你可以按照你的需求自定义邮件内容。如果你想要从Monit所在机器发送邮件,就需要一个已经安装的与sendmail兼容的程序(如postfix或者ssmtp)。
Global Configuration: Monit Daemon (全局配置:Monit守护进程)
接下来就该配置Monit守护进程了。可以将其设置成这样:
在120秒后进行第一次检测。
每3分钟检测一次服务。
使用syslog来记录日志。
如下代码段可以满足上述需求。
set daemon 120 with start delay 240 set logfile syslog facility log_daemon
我们必须定义逗idfile地,Monit守护进程的一个独一无二的ID文件;以及逗eventqueue地,当monit的邮件因为SMTP或者网络故障发不出去,邮件会暂存在这里;以及确保/var/monit路径是存在的。然后使用下边的配置就可以了。
set idfile /var/monit/id set eventqueue basedir /var/monit
测试全局配置
现在逗Global地部分就完成了。Monit配置文件看起来像这样:
# Global Section # status webpage and acl's set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monit.pem allow monituser:romania allow localhost allow 192.168.0.0/16 allow myhost.mydomain.ro # mail-server set mailserver smtp.monit.ro port 587 # email-format set mail-format { from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert [email protected] # delay checks set daemon 120 with start delay 240 set logfile syslog facility log_daemon # idfile and mail queue path set idfile /var/monit/id set eventqueue basedir /var/monit
现在是时候验证我们的工作了,你可以通过运行如下命令来验证存在的配置文件(/etc/monit.conf):
# monit -t Control file syntax OK
如果monit提示任何错误,请再检查下配置文件。幸运的是,错误/警告信息是可以帮助你发现问题的,比如:
monit: Cannot stat the SSL server PEM file '/var/certs/monit.pem' -- No such file or directory /etc/monit/monitrc:10: Warning: hostname did not resolve 'smtp.monit.ro'
一旦你确认配置文件没问题了,可以启动monit守护进程,然后等2到3分钟:
# service monit start
如果你使用的是systemd,运行:
# systemctl start monit
现在打开一个浏览器窗口,然后访问https://<monit_host>:1966。将<monit_host>替换成Monit所在机器的机器名或者IP地址。
如果你使用的是自签名的SSL证书,你会在浏览器中看到一个警告信息。继续访问即可。
你完成登录后,就会看到这个页面。
在这个教程的其余部分,我们演示监控一个本地服务器和常见服务的方法。你会在官方wiki页面看到很多有用的例子。其中的多数是可以直接复制粘贴的!
Service Configuration: CPU/Memory Monitoring (服务配置:CPU、内存监控)
我们先来监控本地服务器的CPU、内存占用。复制如下代码段到配置文件中。
check system localhost if loadavg (1min) > 10 then alert if loadavg (5min) > 6 then alert if memory usage > 75% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 60% then alert if cpu usage (wait) > 75% then alert
你可以很容易理解上边的配置。最上边的check是指每个监控周期(全局配置里设置的120秒)都对本机进行下面的操作。如果满足了任何条件,monit守护进程就会使用邮件发送一条报警。
如果某个监控项不需要每个周期都检查,可以使用如下格式,它会每240秒检查一次平均负载。
if loadavg (1min) > 10 for 2 cycles then alert
Service Configuration: SSH Service Monitoring (服务配置:SSH服务监控)
先检查我们的sshd是否安装在/usr/sbin/sshd:
check file sshd_bin with path /usr/sbin/sshd
我们还想检查sshd的启动脚本是否存在:
check file sshd_init with path /etc/init.d/sshd
最后,我们还想检查sshd守护进程是否存活,并且在监听22端口:
check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/sshd start" stop program "/etc/init.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
我
们可以这样解释上述配置:我们检查是否存在名为sshd的进程,并且有一个保存其pid的文件存在(/var/run/sshd.pid)。如果任何一个
不存在,我们就使用启动脚本重启sshd。我们检查是否有进程在监听22端口,并且使用的是SSH协议。如果没有,我们还是重启sshd。如果在最近的5
个监控周期(5x120秒)至少重启5次了,sshd就被认为是不能用的,我们就不再检查了。
Service Configuration: SMTP Service Monitoring (服务配置:SMTP服务监控)
现在我们来设置一个检查远程SMTP服务器(如192.168.111.102)的监控。假定SMTP服务器运行着SMTP、IMAP、SSH服务。
check host MAIL with address 192.168.111.102 if failed icmp type echo within 10 cycles then alert if failed port 25 protocol smtp then alert else if recovered then exec "/scripts/mail-script" if failed port 22 protocol ssh then alert if failed port 143 protocol imap then alert
我
们检查远程主机是否响应ICMP协议。如果我们在10个周期内没有收到ICMP回应,就发送一条报警。如果监测到25端口上的SMTP协议是异常的,就发
送一条报警。如果在一次监测失败后又监测成功了,就运行一个脚本(/scripts/mail-script)。如果检查22端口上的SSH或者143端
口上的IMAP协议不正常,同样发送报警。
B. 如何搭建网络视频监控系统
首先介绍一下硬件方面,
海康威视DS-7016录像机 1台
西部数据SATA接口500G硬盘 1个
TP-LINK R460+路由器 1个
花生壳动态域名专业服务 1年
电源线和视频线随便几百米就够了
第一步:搭建你的监控系统
首先将录像机接电源并连接路由器,通过硬盘录像机的默认管理地址进行登陆管理设置,
如http://192.168.0.64/。登陆管理,安装控件后会出现一个登陆的管理界面,输入默认的管理帐号admin ,密码12345,端口默认8000。
通过以上操作,录像机的设置就要告一段落了
内网输入http://192.168.0.64是能够看到监控了
但是我们需要实现的是远程监控,需要做到的是外网同样都可以访问。
第二步设置花生壳动态域名解析
注册一个免费的花生壳护照并等待1小时(貌似是花生壳的数据库服务器同步问题)
然后登陆路由器(默认管理的地址为http://192.168.0.1帐号admin密码admin)
在动态DNS里面输入我们刚注册的帐号和密码,并启用动态DNS,点击登陆。
登陆成功后,会直接显示目前护照的花生壳服务级别和能够得到花生壳解析服务的域名
域名zengkebing.gicp.net已经可以绑定我们当前的公网IP了,动态解析服务已经做好了。
第三步设置路由器端口映射
接下来的就是要做路由器的端口映射
需要从路由器将录像机要用到的80和8000端口映射到192.168.0.64
如果你的录像机不是这个IP和端口就随之改动好了,具体操作请见下图
登录到路由器的管理界面(默认管理的地址为http://192.168.0.1帐号admin密码admin)
点击路由器左边操作菜单的“转发规则”—“虚拟服务器”。服务端口号填写为80IP地址就输入录像机的内网IP“192.168.0.64”协议选择“ALL”或者“TCP”都可以
然后别忘了保存,那个常用服务端口只是起到一个帮助提示作用,不用设置。
同样的操作,把录像机视频服务的8000端口也给映射到“192.168.0.64”保存好可以看到已经映射好的端口,已经生效了,端口映射也完成了,到此视频服务器的设置已经全部完成,然后我们测试服务是否可以正常访问。
第四步验证服务是否可以正常访问
打开浏览器,在地址栏里面输入动态域名zengkebing.gicp.net敲回车键,会得到一个以下的提示,需要安装一个来自“杭州海康威视数字技术股份有限公司”的一个控件,这个是我们必须要安装的,点击提示按左键进行安装。然后会得到浏览器的一个提示,我们需要点击安装,才能够进行视频监控。安装视频控件成功后,我们可以看到令人期待的视频录像机登陆窗口,输入账号admin和密码12345,以8000端口登陆登陆成功后,双击左边列表当中的摄像头图标,就可以看到监控的画面了。
点击监控图像下面的按键切换成单画面,非常的清晰和顺畅。
修改一下录像机的默认账户以及密码,点击“配置”选项。然后在“用户权限”选项礼貌进行修改用户密码,注意:密码只可以是纯数字(海康真BT)
C. 如何组建监控系统
首先是网络摄像机(或者用模拟摄像机,网络视频服务器),然后是网络交换机,然后是PC,这是最简单网络监控系统。
要不就是首先模拟摄像机,然后是视频光端机(或视频线缆),然后是硬盘录像机,然后是交换机,然后是PC,这是前端模拟,硬录存储,网络观看的系统组成方式。
更具体的,可以详细说。
北京安力博发科技有限公司旗下的“佰沃”高清数字视频监控系统,不仅可以为您提供从前端到后端,从标清(D1)到标准高清(720P)再到全高清(FULL HD1080P)的全系列产品,同时也可以协助您从初步方案,到深化设计,再到安装调试,最终到售后维保,全程提供最完善,最专业的服务。
“佰沃”高清数字视频监控系统,在具备高品质的图像,稳定的产品质量,超长的保修期,超高的性价比等优势以外,在传输机存储码流方面更是具备其他产品所无法比拟的压缩比率,能够为您节约大量的网络带宽资源及录像存储空间,有效的降低项目整体的成本预算。
D. 如何自建家庭监控系统
步骤1:确定视频传输通道
由于查看视频监控服务器的画面需要通过网络传输,因此视频监控服务器必须能连接互联网。在这之前为了能正常访问视频监控服务器,必须解决一个问题——如何从外部网络访问视频监控服务器。一般来说,监控服务器的联网方法有两种。一种是直接由监控服务器电脑拨号上网,这种联网方式比较简单,只要监控服务器成功运行,然后拨号上网,再运行动态域名解析软件和视频监控软件即可。另一种方法主要针对使用路由器上网的电脑进行端口映射,要想从外网访问,就必须给内网分配一个外网IP地址。因此必须申请动态域名解析服务。
步骤2:监控设备的选择
设置完网络参数,接着搭建视频监控服务器。视频监控服务器就是一台配有摄像头且可以上网的电脑。由于需要长时间开机,因此要求电脑稳定性较高、功耗较低。笔者在客厅放置的视频监控服务器选用的是整合凌动CPU的小型主板,并配有静音风扇。软件方面,可以使用Webcamxp充当视频监控软件客户端。
步骤3:确定音/视频源
为了让用户能够访问视频摄像头,还需要对客户端软件的视频和音频监控源进行设置,在视频监控软件的“sourcesmonitor”选项卡的“tools/options”中有两个类别,分别是音频源(audiosource)和视频源(videosource),可在此设定对应的摄像头设备和麦克风设备。
步骤4:建立外部监控通道
由于用户要通过网络查看视频监控服务器上的监控视频,因此接下来要把客户端软件获取的视频和音频对外发布。可通过客户端软件的“web/broadcast”选项卡中的“内部http服务器”选项进行设置。
如果直连互联网,可以使用“搜索WANIP”选项,勾选“启动时检测WANIP”选项,这样客户端软件会自动获取视频监控服务器的公网IP。如果使用宽带路由器进行联网,则在软件的“内部IP地址”中输入手动分配给该视频监控服务器的内网IP地址,并关闭“启动时检测WANIP”选项。完成这些设置后,点击WEBServer按钮即可启动对外广播功能。
经过以上设置后,只要在任何一台已经连接网络的电脑上输入自己申请的域名,即可看到家中情况,真正实现家用监控的效果。
E. 想要部署一个服务器监控系统,大家推荐哪个
你好楼主;
1、Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,
2、Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
3、Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。
4、Argus 是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。
5、Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于Unix平台。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。
6、Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等
7、collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。
8、Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展
9、网络嗅探器/数据包捕获网络取证分析工具(NFAT),它可以检测网络上的流量,会话,主机名,操作系统的开放端口等。 NetworkMiner也可以解析PCAP文件进行离线分析,同时,NetworkMiner还可以提取网络流量的传输的文件。
10、Pandora FMS(灵活监控系统)是一种小型和大型系统环境(一个服务器2000节点)的可用性和性能监视系统。对于本地系统,该软件使用代理来监视Linux, Solaris, FreeBSD, MAC OS X, Windows和AIX平台上的数值参数,布尔状态或字符串。使用者可以用Shellscript, WSH, Perl 或 C创建代理。 可通过SNMP v3, TCP检查和远程WMI探测来进行远程网络监视。 数据报告基于Pandora自己的SQL后台,且可在配置的屏幕上显示。
11、Observium是一个可自动发现网络中的Cisco设备和Linux系 统的网络监控工具,而是包括了主要的网络硬件和操作系统的广泛支持。
12、EasyNetMonitor是一款非常有用的免费网络监 视工具,无需安装。软件默认会每10秒钟ping一次网站,如果网站运作正常,也就是有响应的话,系统托盘的监测状态会显示绿灯,如果是没响应的话则是显 示红灯。要修改或是删除监测的网站,在地球小图标上点击右键,选择监测网址子菜单的 Edit 或是 Delete就行!
13、Colasoft Capsa Free是一个功能强大的程序,成功地处理与网络分析,向您提供用于故障诊断和监测的信息。它为用户提供丰富的经验,若要了解如何监视网络活动,查明网络问题,增强网络安全性等。
望采纳!
F. 如何组建一套网络监控系统
首先介绍一下硬件方面,海康威视DS-7016录像机 1台 西部数据SATA接口500G硬盘 1个 TP-LINK R460+路由器 1个 花生壳动态域名专业服务 1年 电源线和视频线随便几百米就够了第一步:搭建你的监控系统首先将录像机接电源并连接路由器,通过硬盘录像机的默认管理地址进行登陆管理设置,如http://192.168.0.64/。登陆管理,安装控件后会出现一个登陆的管理界面,输入默认的管理帐号admin ,密码12345,端口默认8000。
登陆成功后,双击左边摄像头列表当中的摄像头,可以看到一个监控的页面,就证明这个录像机已经正常在本地工作了,接下来,我们要对录像机进行网络上的配置,点击操作界面的菜单可进入管理界面。
服务器参数这里有几个关键的设置选项,其中一个是IP地址,这个设置192.168.0.64子网掩码255.255.255.0,网关192.168.0.1。另外还有2个端口,最近端口号 8000这个是视频服务传输用的端口,HTTP端口号 80 这个是在浏览器输入访问要用到的端口。
通过以上操作,录像机的设置就要告一段落了内网输入http://192.168.0.64是能够看到监控了但是我们需要实现的是远程监控,需要做到的是外网同样都可以访问。第二步 设置花生壳动态域名解析注册一个免费的花生壳护照并等待1小时(貌似是花生壳的数据库服务器同步问题)然后登陆路由器(默认管理的地址为http://192.168.0.1帐号admin密码admin)在动态DNS里面输入我们刚注册的帐号和密码,并启用动态DNS,点击登陆。登陆成功后,会直接显示目前护照的花生壳服务级别和能够得到花生壳解析服务的域名域名zengkebing.gicp.net已经可以绑定我们当前的公网IP了,动态解析服务已经做好了。
第三步 设置路由器端口映射
接下来的就是要做路由器的端口映射
需要从路由器将录像机要用到的80和8000端口映射到192.168.0.64
如果你的录像机不是这个IP和端口就随之改动好了,具体操作请见下图
登录到路由器的管理界面(默认管理的地址为http://192.168.0.1帐号admin密码admin)
点击路由器左边操作菜单的“转发规则”—“虚拟服务器”。服务端口号填写为80 IP地址就输入录像机的内网IP“192.168.0.64”协议选择“ALL”或者“TCP”都可以
然后别忘了保存,那个常用服务端口只是起到一个帮助提示作用,不用设置。
同样的操作,把录像机视频服务的8000端口也给映射到“192.168.0.64”保存好可以看到已经映射好的端口,已经生效了,端口映射也完成了,到此视频服务器的设置已经全部完成,然后我们测试服务是否可以正常访问。第四步 验证服务是否可以正常访问打开浏览器,在地址栏里面输入动态域名zengkebing.gicp.net 敲回车键,会得到一个以下的提示,需要安装一个来自“杭州海康威视数字技术股份有限公司”的一个控件,这个是我们必须要安装的,点击提示按左键进行安装。然后会得到浏览器的一个提示,我们需要点击安装,才能够进行视频监控。安装视频控件成功后,我们可以看到令人期待的视频录像机登陆窗口,输入账号admin和密码12345,以8000端口登陆登陆成功后,双击左边列表当中的摄像头图标,就可以看到监控的画面了。点击监控图像下面的按键切换成单画面,非常的清晰和顺畅。修改一下录像机的默认账户以及密码,点击“配置”选项。然后在“用户权限”选项礼貌进行修改用户密码
G. 如何设计一个mysql性能监控的软件
首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。
pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:
1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。
三、使用
接着我们来看下如何使用这个工具。
pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。
触发条件相关的参数有以下几个:
function:
∘默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
∘也可以设置为 processlist,代表监控 show processlist 的输出;
variable:
∘默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
threshold:
∘默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
∘监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
cycles:
∘默认为 5,表示连续观察到五次满足触发条件时,才触发收集;
连接参数:host、password、port、socket。
其他一些重要参数:
iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
retention-time :监控数据保留时长,默认 30 天。
daemonize:以后台服务运行,默认不开启。
log:后台运行日志,默认为 /var/log/pt-stalk.log。
collect:触发发生时收集诊断数据,默认开启。
∘collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
∘collect-strace:收集跟踪数据,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 数据,需要 tcpmp 工具。
H. 智能视频监控系统详细设计思路
随着宽带有线和无线网络基础设施的完善以及全球安防市场需求的增长,视频监控的应用正呈爆发性的增长态势。视频监控系统的发展趋势非常明显,在经历了数字化和网络化之后,下一个重要的趋势就是智能化,即智能监控和视频分析技术的应用。
传统的视频监控由人工进行视频监测发现安全隐患或异常状态,或者用于事后分析,这种应用具有其固有的缺点,难以实现实时的安全监控和检测管理。带有智能分析功能的监控系统可以通过区分监控对象的外形、动作等特征,做到主动收集、分析数据,并根据预设条件执行报警、记录、分析等动作。智能监控系统可以运行于服务器,也可以运行在基于DSP的嵌入式系统上,而后者已逐渐成为主流。
智能视频的应用大体上可以分安防、人体行为检测和智能交通三方面的应用。其中安防应用是被广泛认为是最具潜力的市场,它包括以下几个应用类别:入侵检测,可以自动检测出视频画面中的运动行为特征;物品移除检测,可以自动检测物品搬移事件——当防区内某特定位置的物品被拿走或搬走时发出报警;遗留物检测,可以对遗弃物进行自动检测——当物品在某个防区内被放置或遗弃的时候自动报警;智能跟踪,可以使摄像机对自身的云台和变焦镜头进行自主PTZ驱动。人体行为检测应用包括脱岗检测(可以实现自动检测岗哨人员就位情况)、徘徊检测(对重要区域人体徘徊检测)。智能交通应用包括:对非法停留的交通工具进行检测,当交通工具在防区内非法停留时发出报警;车辆逆行检测,及时辨别逆行车辆。
随着准确率和可靠性逐步提高及产品成本的下降,智能视频在越来越多的场合得到了应用,它能够替代部分安防设备,降低安保人员的工作强度,提高工作效率,减少管理成本。事实上,智能视频的应用具有非常巨大的潜力。随着技术日趋成熟,智能视频技术的应用领域正在迅速扩展,这些应用主要包括上述的安防、交通以及零售、服务等行业,如人数统计、人脸识别、人群控制、注意力控制和交通流量控制等。
实时视频监测的需求正在快速增长,特别是随着实时安全监控应用的需求增加,实时发现安全隐患或目标异常行为的功能已经具有越来越重要的现实意义,智能视频监测系统产品在这种日益增长的需求带动下,正在成为视频监控应用的新热点。特别是随着半导体技术的进步,例如以Blackfin汇聚式处理器为代表的先进嵌入式解决平台方案的推出,具有极高性价比和极高实用性的智能视频分析设备不断推出,并在一些关键应用中发挥极为重要的作用。 图1:传统的视频监控应用示意图。
智能视频应用设计攻略
硬件平台方案的选择往往决定了系统的整体方案成本、性能、开发工具和方法的可用性,以及方案未来持续升级的可行性等,因此方案平台选型至关重要。智能视频应用自身的独特性要求在硬件平台的选择上进行综合权衡。视频监控系统的网络化和智能分析要求,以及大规模工程安装对成本、体积和功耗的限制,非标准化的智能视频分析方法和几乎定制化的方案优化方式,使得结合了MCU和DSP优势、具有软件设计灵活性和强大处理能力的汇聚式处理器方案平台体现出更加明显的优势。本文将结合ADI公司独特的Blackfin汇聚式DSP处理器的特点,分析智能视频设计中主要的设计技术要点。
一、硬件平台选型
可定制化能力非常重要。有很多因素制约着视频监控系统智能化的应用步伐:首先是智能监控的视频算法比较复杂,难于标准化,各个系统提供商的视频分析软件都有自己的独特算法,导致市场上的产品没有统一的标准;其次,视频监控系统的应用场景比较复杂,用户的要求多样化,所以定制化的要求比较多。因此,视频分析方案通常需要针对客户的应用特点和需求进行方案优化,采用的算法千差万别。此外,由于智能视频应用的高复杂性,对方案的处理能力提出了更高的要求。MCU+ASIC的视频监控传统方案难以实现各种个性化的设计和高运算能力要求,即使选择普通DSP+MCU的双芯片方案通常也难以满足智能视频监控应用的复杂运算需求,需要增加协处理器,这种复杂的解决方案无论是BOM成本、功耗还是开发难度都不足取。Blackfin处理器充分发挥了MCU+DSP汇聚式架构的优势,满足了智能视频应用的系统控制和高强度的运算需求,特别是以BF561为代表的高性能双内核架构已经成为智能视频应用的首选方案平台。
方案的可扩展性也是需要考虑的因素。智能视频分析应用除了需要针对应用环境、应用目的进行方案优化外,不同的客户可能还有其他方面的不同需求。例如,当前一些领先的数字视频监控方案实现了H.264基本类@Level3.0和MPEG4 D1+CIF双码流的支持,未来可能扩展到支持H.264 D1+CIF的双码流。随着智能视频分析的更广泛应用,如IP摄像机、无线视频监控、智能交通系统等,不同应用都可能对各种接口功能、通信标准、用户界面等的需求有较大的差异化,硬件平台方案对各种需求的灵活扩展性非常重要。同时,正如前文所述,智能视频分析技术发展不过数年的时间,随着技术的不断成熟以及一些相关的标准的出台和改进,产品的可升级特性至关重要,既是开发者须关注的问题也是终端客户关切的重要特性。Blackfin DSP在算法并行处理上具有独特优势,特别是ADSP-BF561采用双DSP核,能够实现很复杂的智能视频处理算法。
视频应用优化特性。一些方案尽管具有较强的处理能力和可扩展性,方案是否主要针对视频应用进行过优化设计也值得关注,因为这直接关系到设计工程师可用的软硬件设计资源以及系统设计难度和可实现的性能。以Blackfin处理器为例,Blackfin为高强度、高数据率的数字和媒体处理做了专门优化:Blackfin的几十个DMA通道和可灵活配置的Cache很好地满足了视频监控系统对大运算量、高数据吞吐率的要求;ADI专门开发了完全优化的音视频编解码器,并免费提供给大客户;针对视频应用Blackfin集成了很多硬件驱动,包括WiFi的驱动、音/视频编解码器的驱动;Blackfin的4个视频算术运算单元和视频象素指令集大大加速了视频运算速度;在智能视频分析的一些基础算子中,例如直方图统计、中值运算、Sobel运算、形态学中的膨胀运算等都可以利用Blackfin的MIN、MAX指令来消除条件跳转,节省处理器周期。不仅如此,Blackfin还支持13种非视频数据的向量运算。适当设计数据结构,在前背景分离、阈值计算和更新等多个环节都可以运用Blackfin的特色指令让智能视频分析算法更快捷。这些本身就很有效的指令中,大部分指令都能够并行执行,使得Blackfin的处理能力再加倍。
低功耗和稳定性很重要。考虑到智能视频监控设备通常都是一周7天,每天24小时运行的,稳定性和功耗也比较重要。在低功耗上,Blackfin处理器采用了多种节能技术:基于一种选通时钟内核设计,可按照逐条指令来选择性地切断功能单元的电源;支持多种针对所需CPU动作极少期间的断电模式;Blackfin处理器支持一种自含动态电源管理电路,借助该电路即可对工作频率和电压进行独立控制,以满足正在执行的算法的性能要求;大多数Blackfin处理器都提供片上内核稳压电路,并可在低至0.8V的电压下工作。而Blackfin独特的汇聚式处理架构、90nm工艺等打下了其领先的低功耗处理的基础。由于高处理能力,基于Blackfin平台的系统方案可以减少主芯片数量,丰富的功能和接口可以满足各种外设和功能扩展需求,降低元器件数量,从而保证更高的稳定可靠性。目前在同价位DSP中Blackfin DSP的低功耗特性和稳定性是最好的。
支持哪些嵌入式操作系统。智能视频分析通常是基于网络的应用,必须要操作系统的支持,因此选择具有广泛嵌入式系统支持能力的解决方案非常重要,这样能确保未来产品在更换操作系统时不至于必须更换硬件平台,保证研发成果的持续可用性。目前可用的嵌入式操作系统众多,各具优势,硬件平台方案对这些操作系统的支持能力是进行方案选型的考虑要点之一。例如,Blackfin处理器可以支持目前主流的操作系统,包括uCLinux、ThreadX、Nucleus,uCOS-II等十多种嵌入式操作系统,客户完全可以根据其自身要求选择其熟悉的或更具成本效益的软件架构基础。 图2:基于BF561的智能监控终端框图。
二、开发工具和可用资源
智能视频监控设备是一个复杂的系统,涉及到复杂的软硬件设计、人机界面、通信连接等,具有较高的系统设计难度。因此,所选择的硬件平台方案是否能提供完善的开发工具套件、必要的软件模块、成熟的参考设计、系统设计支持,以及是否有完整的设计生态系统等,对于是否能按期高质量地完成系统设计非常关键。事实上,并不是所有平台方案提供商都能提供这些支持。
以Blackfin系列处理器为例,采用Blackfin处理器的硬件平台从一般的DVR、IP摄像机、数字视频监控到智能视频监控,已经被全球大量的设备企业的广泛采用。Blackfin处理器获得众多企业的青睐,具有完整的开发工具和参考设计等支持是其受广泛欢迎的重要原因之一。ADI提供业界一流的工具、初学套件与支持,包括人们熟知的、能够支持其他Blackfin处理器的ADI CROSSCORE?软件与硬件工具,这些工具包括获奖的VisualDSP++?集成开发与调试环境(IDDE)、仿真器,以及EZ-KIT Lite?评估版硬件。
为提高开发效率,降低开发难度,开发时应尽量在已有的资源上进行,比如开放的例程,ADI为此提供了非常丰富的例程和资料。例如,ADI提供免费的“Image Tool Box”图像处理函数库软件包,该软件包专门针对图像处理应用常用的数学函数进行了优化,供客户在进行应用开发时调用。ADI还提供完整的参考设计,以及由本地合作伙伴开发的评估板、开发工具、算法IP、应用模块,以及由第三方合作伙伴提供包括软硬件在内的全套交钥匙方案。Blackfin处理器的视频监控应用目前在中国已经有多家具有丰富工程经验的第三方合作伙伴,已经建立完善的生态系统。
以ADI在今年三月份宣布提供基于该公司Blackfin BF526C的完整的IP监控和机器视觉摄像头参考设计为例,该参考设计在单个汇聚处理器上提供了强大的视频和音频处理能力,为工程师提供了一个统一的软件开发环境,可以实现更快的系统调试和部署,以及更低的系统成本。该处理器提供了集成的音频编解码器、流式视频和IP协议、片上DRAM存储器以及针对10/100以太网、USB和SD存储和本地RS-232端口的接口。这种完全可编程的解决方案可以满足多种视频压缩标准,例如H.264和MPEG4,支持音频G.729标准的编码。支持从控制中心到相机的双向语音通信,以及利用Pelo-P或Pelo-D协议的镜头平移、倾斜和拉伸动作。该参考设计还提供一块带双核BF561处理器的子卡,使系统能实现更高视频分辨率,并提供实现高级视频分析功能,如运动检测和跟踪。
应用方案揭秘——亿维东方智能网络摄像机
北京亿维东方科技有限公司(Emvideo)是专业智能安防产品的方案提供商,也是美国ADI公司授权的第三方合作伙伴。亿维东方目前有多款基于ADI Blackfin处理器为核心的硬件平台的产品,其中“软件+硬件”交钥匙的WiFi无线视频监控整体解决方案基于BF536+BF561的双处理器架构,方案硬件结构图如图3所示。
其中BF536处理器作为主处理器,除负责完成音频编码、远程控制以及用户交互控制等一些基本的管理与控制外,还负责嵌入式操作系统uClinux的运行,以及先进的智能视频分析功能,可以完成安防、人体行为、智能交通等多种智能视频分析。双核BF561作为协处理器负责视频编码算法,其强大的视频处理能力使得该方案实现了H.264基本类@Level3.0和MPEG4 D1+CIF双码流的支持,未来更将可能扩展到能够支持H.264 D1+CIF的双码流。两个处理器之间可以通过高速同步串行接口通讯,视频信号首先进入BF561处理器,采集编码后的码流发送到BF536处理器,然后通过网络发送到客户端进行解码显示。 图3:采用Blackfin BF536和BF561的解决方案硬件结构图。
该方案采用了先进的背景建模方法,能有效地克服光线变化、树叶摆动以及水面波纹等背景对前景目标分析产生的干扰,实现准确的前景检测,同时在目标跟踪上采用了独特的优化算放,实现了在入侵检测(包括区域警戒、绊线检测)的应用上超过90%的准确率。而所有这些都是基于BF536+BF561双处理器的硬件架构所具有的强大处理能力来实现的。
该方案的智能视频分析功能由亿维东方公司自主开发,独特的算法和丰富的智能视频分析技术开发经验确保实现客户的智能识别应用需求,并为客户提供包括软件升级在内的完善服务。由于智能视频识别应用目前并没有任何可循的需求标准和测试标准,因此视频分析方案通常需要针对客户的应用特点和需求进行方案优化。例如有些用户是地铁系统的,他们需要的功能是检测是否跨越候车的黄线、人群密度是否过大、是否有可疑的遗留物体等;有些用户是银行系统的,他们所需要的是ATM机的智能监控如分析是否有安装假键盘、安装吞卡器,在ATM机是否有暴力行为,是否出现犯罪分子的人脸等。利用该方案,客户可以根据用户的需求方便地进行调整算法。智能视频处理要求芯片具有强大的处理能力,有许多算法实现时得采用并行处理,Blackfin DSP在算法并行处理上具有独特的优势,特别是ADSP-BF561的双DSP核能够实现很复杂的智能视频处理算法。这是传统的MCU+ASIC或采用一般DSP方案所难以实现的。
该方案的软硬件都经过了应用验证,目前已经由多家客户进行生产,目标应用将主要是政府行政效能监测、教育系统等行业用户。