04、数据传输方式
转载公众号《微言晓意》,仅用于个人学习
大数据分析中数据传输方式包括SYSLOG、kafka、JDBC/ODBC、文件或FTP、Agent等方式,本文对数据传输方式进行简要介绍。
SYSLOG
syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。
接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。由于syslog简单而灵活的特性,syslog不再仅限于Unix类主机的日志记录,任何需要记录和发送日志的场景,都可能会使用syslog。作为一种被动采集网络数据的协议,syslog提供了一种传递方式,即允许一个设备通过网络把事件传递给时间信息接收者。kafka
kafka是一种高吞吐量的分布式发布订阅消息系统。通常来讲,消息模型可以分为两种:队列和发布-订阅式。队列的处理方式是一组消费者从服务器读取消息,一条消息只有其中的一个消费者来处理。在发布-订阅模型中,消息被广播给所有的消费者,接收到消息的消费者都可以处理此消息。
Kafka为这两种模型提供了单一的消费者抽象模型:消费者组(consumer group)。消费者用一个消费者组名标记自己。一个发布在Topic上消息被分发给此消费者组中的一个消费者。假如所有的消费者都在一个组中,那么这就变成了queue模型。假如所有的消费者都在不同的组中,那么就完全变成了发布-订阅模型。
JDBC/ODBC
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一。可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。使用这两种接口方式可以直接连接到数据库,数据库可以是oracle、mysql、也可以是sqlserver。通过连接到数据库中,直接下载数据库表中的一些数据作为源数据进行分析,这样采集的是数据库的表中规范的键值对,可以通过匹配规则来直接分析这些数据。日文或FTP
文件型日志通常存储在系统的固定位置,这就决定了对这类日志的采集技术主要是完成对日志文件的读取、解析和分析工作。如上所述,不同日志类型文件格式各不相同,但有它们的共同点是日志文件中的每一行都是一个事件记录,包含相对固定的信息。文件型日志一般有以下3种采集模式:
- 本机文件访问:指直接读取默认存储在主机或设备上日志文件,将日志逐条解析为固定的消息格式。
- samba协议共享:samba是基于SMB(Server Message Block)协议的一个应用程序,是一个网络服务器,用于Linux和Windows共享文件之用。samba协议文件共享方式采集是指通过samba协议取得日志所在的主机上将日志文件直接读取到指定的位置上,然后进行读取及分析。
- ftp下载:该方式是将远程主机上的日志文件通过协议远程传送到传感器所在主机,然后再进行读取、解析和分析。这种方式很适合采集多个关键主机的日志的情况,此时只需在某一选定主机上安装日志类安全传感器,该传感器通过FTP下载的方式完成对多个主机中日志文件的采集。
Agent
Agent采集是基于C/S架构来进行源数据的采集,客户端的agent会根据内部的通信机制来采集需要的数据并发送来agent指定的服务端,将客户端所有采集的日志汇集起来进行分析。这种方式可以让客户端主动的将数据发送给服务端,服务端只做接收工作,因此也不会造成服务端压力过大以及资源的浪费。
SNMP
SNMP数据采集有两种方式:一种是轮询(polling-only)的方式,另一种是基于中断(interrupt-based)的方式。SNMP轮询方式是指SNMP网管进程通过定时向各个设备发送查询请求消息来跟踪各个设备的状态。其缺点在于信息的实时性不强。通过调整轮询时间来进行数据采集普遍存在以下问题:轮询间隔设置太小,会产生太多不必要的通信数据;轮询间隔设置太大,又无法及时采集重要事件信息,违背了积极主动的网络安全管理目标。
SNMP中断方式是指当设备出现异常事件时,设备自身主动向SNMP网管进程发送陷阱消息,汇报出现的异常事件。其缺点在于可能消耗被管设备更多的系统时间和资源,从而降低被管设备其它方面的处理性能。
NetFlow
NetFlow是一种数据交换方式,其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略。NetFlow缓存同时包含了随后数据流的统计信息,一个NetFlow流定义为在一个源IP地址和目的IP地址间传输的单向数据包流,且包括源/目的mac地址、源/目的端口、包大小、数据包中传输的具体内容等。SPAN全流量镜像
通过在交换机或路由器上,将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听,指定端口称之为“镜像端口”或“目的端口”,在不严重影响源端口正常吞吐流量的情况下,可以通过镜像端口对网络的流量进行监控分析。
监视到进出网络的所有的数据包,供安装了监控软件的管理服务器来抓取数据。在企业中用端口镜像功能,可以很好的对企业内部的网络数据进行监控管理,在网络出现故障的时候,可以做到很好地故障定位。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库