如何高效的把监控数据写入数据库

旁路监控和串联监控的比较

常见的网络监控模式可以分为两种:一种是串联监控模式,另一种是旁路监控模式。

旁路模式一般是指通过交换机等网络设备的“端口镜像”功能来实现监控,在此模式下,监控设备只需要连接到交换机的指定镜像端口,所以形象的称之为“旁路监控”;而串联模式一般是通过网关或者网桥的模式来进行监控,由于监控设备做为网关或者网桥串联在网络中,所以称之为“串联监控模式”。

串联模式功能虽然强大,但影响网络效率且极大的增加网关负载。

旁路模式优缺点,比较如下:

 旁路模式的优点: 

1. 旁路监控模式部署起来比较灵活方便,只需要在交换机上面配置镜像端口即可。不会影响现有的网络结构。而串联模式一般要作为网关或者网桥,所以需要对现有网络结构进行变动。

2. 旁路模式分析的是镜像端口拷贝过来的数据,对原始传递的数据包不会造成延时,不会对网速造成任何影响。而串联模式是串联在网络中的,那么所有的数据必须先经过监控系统,通过监控系统的分析检查之后,才能够发送到各个客户端,所以会对网速有一定的延时。

3. 旁路监控设备一旦故障或者停止运行,不会影响现有网络的正常原因。而串联监控设备如果出现故障,会导致网络中断,导致网络单点故障。

 旁路模式的缺点: 

1. 需要交换机支持端口镜像才可以实现监控。

回到话题,如何把监控数据写到数据库:

 一、  通过安装采集工具到连接交换机镜像端口的PC上,记录局域网上每台机器的上网信息。

       实现工具:winpcpap、delphi、sqlite.dll。注意是直接调用wpcpap库的函数,不通过第三方包装组件。框架特点:多线程+双缓冲技术,主线程负责界面,监听线程接收网卡数据,归档线程保存到文件,全程无阻塞,按日期生成归档文件。双缓冲使用链表对象实现,在传递1K大小的数据时,平均写入性能约在100万条/秒,释放速度是写入的1.2倍;在传递32K大小数据时,读写分别下降到原来的三分之一,实际产生的数据都在1K之内,所以性能方面完全没有问题。    

 

二、服务端

  配置参数:  url_length:采集数据包中url的长度,大于此值的包一律忽略,可以控制无效数据的生成量,默认512,一般256即可。

                    File_density:按日/周/月来生成归档文件名,默认是按日,不推荐更改。

                   Batch_commit:这是检查缓冲区到的归档阀值,当检查到缓冲区已经写入超过此值时,数据转交归档线程写入磁盘,同时继续监听,互不干涉。缓冲区切换仅受归档进程控制,所以不会出现丢失数据的情况。

这三个参数在ini配置文件中配置,分别体现在下图红线标识处。

如何高效的把监控数据写入数据库_第1张图片 如何高效的把监控数据写入数据库_第2张图片 如何高效的把监控数据写入数据库_第3张图片

你可能感兴趣的:(网络辅助)