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

时间:2024-06-08 06:59:24

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

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

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

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

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

 旁路模式的优点: 

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配置文件中配置,分别体现在下图红线标识处。

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