怎么样视频监控软件定制开发

怎么样视频监控软件定制开发,第1张

在开发视频监控系统应用软件时,大家往往把关注的焦点集中于数字音/视频的编解码的实现上,而忽略了视频监控系统应用软件的整体架构。当然视频监控的核心也是在于音视频编解码上,佰锐的AnychatSDK主要就是在音视频领域这块,长期研究音视频即时通讯,对于音视频处理模块(采集、编解码)、流媒体管理模块(丢包重传、抖动平滑、动态缓冲)、流媒体播放模块(多路混音、音视频同步)以及P2P网络模块(NAT穿透、UPnP支持)等多个子模块,封装了底层的硬件 *** 作(音视频采集、播放)、封装了流媒体处理(编解码、网络传输)等非常专业和复杂的技术,为上层应用提供简单的API控制接口,可以在极短的开发周雀迅拍期,以及极少的人力资源投入下为客户的现有平台增加音视频即时通讯、多方会议的功能。AnyChatSDK可以让企业越过复杂的底层技术实现,而把主要精力投入项目的业务逻辑处理上,加快项目开发进展,从而为企业赢得市场先机。

视频监控系统中,一个优秀的音/视频编解码算法固然很重要,但其中是整个视频监控系统应用软件的一个重要组成部分。视频监控系统应用程序还涉及到如何搞笑地输入/输出数字音/视频数据,这些数据又如何与音/视频编解码算法协调、配合,以及视频监控系统应用软件各个模昌山块之间如何协调工作。本文主要阐述软件开发方法,说明层次化软件开发方法优越性。

传统的软件开发方法

传统的软件开发方法是一种线性的程序流程,首先以功能模块对整个程序进行模块化,然后选择ASM或C语言,从零开始编写各个子模块,最后编写一个主循环,将这些子模块线性地顺序循环执行。

传统的软件开发方法的优点是:整个程序的控制流、数据流完全由编顷羡程者掌握,程序直观、易理解。但其缺点是:各个子模块之间紧密耦合,修改某一子模块,将可能影响整个程序,也即其代码的重复使用率不高,导致相似系统之间程序的移植性差;由于程序顺序、循环执行,在算法对数据进行处理前,需要花大量时间来等待输入/输出数据就绪,导致CPU的利用率低,同样,简单的顺序、循环执行,只能管理和调度单一任务,不能实现多任务的管理和调度。

企业里涉及到两部分的网络管理,一部分是监视上INTERNET的行为和内容,也就是大家说的上网监控或外网监控;另一部分就是如果这个电脑不上 INTERNET但又在内部局域网上(比如打印个文件什么的),一般被大家叫成内网监控或本网监控;上网监控管理的是上网的内容监视和上网行为监视(比如发了什么邮件,是否限制流量,是否允许QQ,或监视用户页面浏览);而内网监视管理的是本地网络的活动过程(比如有没有COPY东西到U盘、是否在玩单机 游戏、使用电脑做了什么等等)。

外网监控软件模式基本可以分为两类:有客户端的和没有客户端的(内网安全都需要客户端,上面没有客户端的都不能实现内网安全管理)。

拥有内网管理功能的:网眼监控软件、Anyview(网络警)网络监控软件、网路岗局域网管理软件、网猫网络监控软件实现需要客户端支持。这几种软件都有专门的客户端软件提供。

没有内网管理功能的:百络网警局域网管理、聚生网管系统、超级嗅探狗上网监控系统。二、有客户端的外网监控

信安上网行为管理系统和Phantom系统(外网管理和内网管理功能都提供)。

不牵涉部署模式,因为他们的实现原理都是在C/S模式,通过部署在被监控计算机上的客户端来实现各种功能,在这种模式下,服务器的安装部署对网路环境就没有特别的要求,网络内随意找一个电脑就可以做服务器,而且功能、网络速度、效率都不受影响,不需要对原有网络架构、环境进行改动。

唯一的缺点就是需要安装客户端。 大概分为四种安装模式:旁路、旁听(共享式HUB、端口镜像)、网关、网桥。

(1)旁路模式:

基本采用ARP欺骗方式虚拟网关,让其他计算机将数据发送到监控计算机。

(2)网关模式:

是把本机作为其他电脑的网关(设置被监视电脑的默认网关指向本机),常用的是NAT存储转发的方式;简单说有点像个路由器工作的方式;因此控制力极强,但由于存储转发的方式,性能多少有点损失;不过效率已经比较好了。但维护和安装比较麻烦;无法跨越VLAN和VPN;假如网关死了,全网就瘫痪了。此类软件有 ISA、anyrouter软网关等,这里没有引用,ISA在一些银行金融机构仍在使用,海天上网监控软件是专门针对ISA而开发的。

(3)网桥模式:

支持网桥模式的软件比较少。 除了模式,我们讲一下获取数据包的技术,大概有两种方式:

1) 采用 *** 作系统核心NDIS中间层驱动模式,

2) 公开免费接口WINPCAP协议层驱动。

由于WINPCAP本身设计的天生弱点,所以在流量限制方面无法实现、阻断UDP也将导致网络中断、让旅无法支持千M网络和无线网络、性能也必然很低;也无法实现NAT等更多的扩展功能,由于在协议层运行会被火墙禁止;而NDIS中间层驱动模式由于在NDIS层位置驱动,因此性能效率将非常高,更多功能也将成为可能;能够克服WINPCAP所有的弱点,因此成为主流技术;但实现起来很大难度需要很强的开发实力;

4, 结论:

按照部署模式分:通过对比我们可以知道,网桥模式是最理想的一种模式,这种模式唯一的缺点就是额外开支,需要购买一台足够网络处理能力服务器,而且还要连接在交换机和路由器之间的网络上。

5, 总结

如果需要内网管理与外网管理都需要,那么所有软件都需要客户端,显然Phantom和网眼监控软件是最好的选择。

如果只需要外网监控,那末就需要选择了,这时不需要部署客户端,但需要买一台服务器,部署在交换机和路由器之间。而网眼网络监控软件和Phantom则可以任选一台电脑做服务器;缺点埋运是要安装客户端,优点是:实现的功能强大,支持拓展功能性强。 1) 免费开放的国外代码,因此安全性欠缺;原理上是采用旁听模式,所以无法阻断UDP应用,无法流量限制,并容易数据丢包;阻断规则有可能引起网络中断或无效;

2) 原理上决定不适合超过100个电脑的网络环境,如采用老式共享式HUB速度限制在10M带宽损失严重;弯滑梁如采用交换机镜像是共享100M方式,由于一些交换机本身的缺陷,采用镜像后会导致交换机阻塞现象的可能,因此网络带宽会大约损失40%;

3) 由于是免费接口只提供总线抓包功能,所以不支持集群环境也不支持任何内网监控功能;

4) 由于是高层协议接口同时未提供适合监控的加密压缩数据库;所以不支持即时大规模数据存储,不适合大用户网络;不包含千M、无线网;如需支持多 VLAN或VPN应采用镜像技术,需额外投资支持双向镜像技术的交换机并正确设置和维护;

5) 由于提供的接口都是通用的有限代码,缺乏良好的可控性,所以很多功能无法实现;

7, Arp欺骗

欺骗局域网内计算机,使其他计算机误认为监控计算机为网关计算机,将所有数据发送到监控计算机,只能适合于小型的网络,且环境中不能有限制旁路模式;路由或防火墙的限制或被监视电脑安装了ARP防火墙都会导致无法旁路成功,因为你一边在禁止旁路一边却正在旁路,所以自相矛盾;同时如网内同时多个旁路将会导致混乱而中断网络。

首先介绍下 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-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12401042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存