进击的大数据(六)数据采集模块的设计

先来搞数据采集模块吧, 简单做一下需求分析,大概暂时就这几个需求吧,很简单。

1. 需求分析 

1.1 syslog协议采集

        1)采用udp协议对宿主机指定端口进行监听,实时获取数据后将数据放入redis缓存。

        2)可通过配置文件对UDP协议绑定的IP、端口进行设置。

        3)端口默认 514 syslog标准端口,IP默认 0.0.0.0 即宿主机所有IP地址。

1.2 服务中心消息通信

       1)提供与服务中心交互接口,便于服务中心对该模块进行状态数据采集,这是考虑以后如果采用集群部署形式时,可以通过

            服务中心模块进行系统状态追踪。

       2)接口采用应答模式,由服务中心发送状态获取请求,采集模块回应相应数据。

       3)采集端可通过配置文件配置所属服务中心IP地址。

       4)服务中心交互内容包括一下内容:

            获取节点系统信息:计算机名、IP地址

            检查节点数据采集模块运行状态

1.3 资产自动发现

      1)支持资产自动发现,通过网络自动发现存在数据交互关系的客户端资产。

2.概要设计

       资产数据由服务中心从mysql数据库缓存到redis中,数据采集模块从redis中获取资产数据,redis仅做内存级缓存,不做数  据持久化,这样可以避免如果mysql中资产数量大导致的查询时长影响采集端的入库效率问题。

2.1 syslog协议采集流程图

2.2 接口设计

服务中心通信接口

请求地址

interactive

请求形式

POST

返回值类型

return_resultModel

请求参数

序号

参数名

类型

必填

详细说明

1

command

string

服务中心发送的指令

返回参数(json)

序号

参数名

类型

详细说明

1

result

int

返回是否成功,1表示成功,0表示失败。

2

data_message

List

json数据根据指令不同有不同的内容

 3.详细设计

3.1 syslog协议采集

        1)UDP采用非阻塞式监听,确保可以第一之间返回监听状态,减少数据丢失的概率,非阻塞式监听:Selector

        2)采用固定线程池进行多线程数据处理,集中java线程池的对比,固定线程池较为适合。

        3)固定线程池暂时采用n*2+1的计算方式确定线程数量,n代表cpu的核心数,这是一个基础算法。

3.2 接口命令列表

        1)get_sysinfo:获取系统基本信息

            返回数据格式:{"runstatus":"1","nodename":"node1"}

            runstatus:节点运行状态,接口正常调用则返回1

            nodename:节点计算机名称

           状态检测及系统信息获取暂时使用一个命令

3.3 redis表设计

       

表名字段名类型说明 
spartacus_assets_discoversourceipstring数据产生者的IP地址资产发现表
nodeipstring接收数据节点的IP地址
createtimestring发现资产的时间
spartacus_{nodename}_data hostipstring资产ip数据采集表
 receivetimelong接收时间 时间戳
receivesourcestring接收源  syslog
datacontentstring数据内容
idspartacus_assetsint资产id
assetsnamestring资产名称
securitydomainstring资产所处的安全域
businessdomainstring资产所处的业务域
physicalpositionstring资产所处的物理位置
subnodenamestring资产所属节点的名称
subnodeipstring资产所属节点的ip

3.4 mysql表设计

mysql中spartacus_nodes表设计时预设了部分字段,这是为将来部分功能做的预留,这个阶段可以不用在意。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值