代码拉取完成,页面将自动刷新
一个用于监控NVR和IPC上下线及信息意外变更的监控工具。
最近我入职安防行业了,日常主职工作是测试视频录像机(NVR)的功能和稳定性。
NVR总是要搭配不同型号,不同能力的摄像头(IPC)一起工作,如: 由NVR下发配置到所有的IPC 由NVR集中预览所有IPC的视频 由NVR集中回放所有IPC的录像等。
我在负责NVR的测试工作中,其中一个重要测试工作就是NVR的稳定性性(如其死机、重启或不稳定的其它现象)等。 这里面就牵涉到,需要对测试环境中的所有NVR和IPC进行监控,如其IP地址保证不会意外被修改,其启动时间保证不会发生变更,临时性网络不可达需有相应记录或提示等。
所以我花了几天时间,开发了一个 简易的监控界面,这个工具临时称为dev_monit。
基于C、Ruby和JS实现的一个B/S架构工具。
在安防行业,厂商一般都会有一个搜索工具,用于搜索出当前LAN中自家NVR和IPC设备,方便进行一步管理(各设备IP地址修改、版本号、统一升级、修改密码等)
海康威视的叫SDAP。 https://www.hikvision.com/cn/support/tools/hitools/clea8b3e4ea7da90a9/
大华的叫ConfigTool。
我们的叫DM。
本人正是利用此工具的工作原理,使用C语言重写了搜索部分,工具称为st。主要用于识别当前所有的NVR、IPC及各自的启动时间,运行时间,当前IP地址等信息。
dev_monit,是一系列脚本,html文件、配置文件,st等组成。
本人前几年写过机房监控系统monit2,要比这个复杂很多。
dev_monit使用ruby语言实现了后端的数据采集(collector)、分析(ds)、分发(ws)。
数据采集部分,定时运行st工具,获取监控清单设备的基本信息(如设备类型、型号、当前时间、启动时间、运行时间、当前地址);递交给分析模块(ds)
由ds处理后,再次递交给ws模块。由ws向将数据通过websocket技术,分发给各个客户端(主要是浏览器)。
dev_monit启动后,会监控一个TCP端口(可自定义)上的HTTP请求和websocket请求。
如果是HTTP请求,会返回一个HTML页面给浏览器。这个页面包含了所有的NVR和IPC的信息。
如果是WS请求,调用ws模块,创建ws会话,将各NVR和IPC的变动信息通过websocket流载体分发给各浏览器。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。