CN111786973A - 一种流日志采集方法、装置、设备和存储介质 - Google Patents

一种流日志采集方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN111786973A
CN111786973A CN202010568198.9A CN202010568198A CN111786973A CN 111786973 A CN111786973 A CN 111786973A CN 202010568198 A CN202010568198 A CN 202010568198A CN 111786973 A CN111786973 A CN 111786973A
Authority
CN
China
Prior art keywords
log
flow
message
processing component
hit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010568198.9A
Other languages
English (en)
Other versions
CN111786973B (zh
Inventor
雷思源
孙小强
周磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010568198.9A priority Critical patent/CN111786973B/zh
Publication of CN111786973A publication Critical patent/CN111786973A/zh
Application granted granted Critical
Publication of CN111786973B publication Critical patent/CN111786973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种流日志采集方法、装置、设备和存储介质,涉及云平台技术。具体实现方案为:该方法应用于软件定义网络的节点,所述方法包括:通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;通过所述节点中的日志处理组件,根据所述命中报文生成流日志;通过所述日志处理组件将所述流日志上报给日志服务端。根据本申请的技术解决了现有技术中软件定义网络中流量监控功能对网络性能构成影响的问题。

Description

一种流日志采集方法、装置、设备和存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及云平台技术。
背景技术
虚拟私有云(Virtual Private Cloud,简称VPC)是一个公共云计算资源的动态配置池,需要使用加密协议、隧道协议和其他安全程序,在民营企业和云服务提供商之间传输数据。一个VPC基本上把提供商的多租户架构变成单租户架构。
对于VPC的用户而言,需要对VPC中的流量有所了解,且存在基本的网络问题定位、流量监控及展示的需求。
相关技术中,通过云监控来了解云产品资源使用率、应用程序性能和云产品运行状况以及多指标监控、自定义告警等。但是,上述方案需要增加流量检查点,会引起云主机性能下降,对正常的流量转发采用了侵入式的监控方式,因此对正常业务存在影响。
发明内容
本申请实施例提供了一种流日志采集方法、装置、设备和存储介质。
根据本申请实施例的一方面,提供了一种流日志采集方法,应用于软件定义网络的节点,所述方法包括:
通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
通过所述节点中的日志处理组件,根据所述命中报文生成流日志;
通过所述日志处理组件将所述流日志上报给日志服务端。
根据本申请实施例的另一方面,提供了一种流日志采集装置,配置于软件定义网络的节点中,所述装置包括:
流表配置模块,配置于所述节点中的虚拟交换机中,用于获取日志流表,并配置在报文入向路径和报文出向路径至少一个中;
报文命中模块,配置于所述虚拟交换机中,用于根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
日志处理组件,配置于所述节点中,用于根据所述命中报文生成流日志;
所述日志处理组件,还用于将所述流日志上报给日志服务端。
根据本申请实施例的另一方面,提供了一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所提供的流日志采集方法。
根据本申请实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请任意实施例所提供的流日志采集方法。
根据本申请的技术解决了现有技术中软件定义网络中流量监控功能对网络性能构成影响的问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1A为本申请实施例提供的一种流日志采集方法的流程图;
图1B为本申请实施例所适用的计算节点的架构示意图;
图2A为本申请实施例提供的一种流日志采集方法的流程图;
图2B为本申请实施例所适用的计算节点的架构示意图;
图3A为本申请实施例所适用的一种报文路径的示意图;
图3B为本申请实施例所适用的IPv4报文消息的示意图;
图3C为本申请实施例所适用的IPv6报文消息的示意图;
图4A为本申请实施例提供的一种流日志采集方法的流程图;
图4B为本申请实施例所适用的计算节点的架构示意图;
图5是本申请实施例的流日志采集装置的框图;
图6是用来实现本申请实施例的流日志采集方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例的技术方案适用于软件定义网络(Software Defined Network,SDN)中,SDN技术是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。
基于SDN技术可实现云平台,云平台中部署有基于SDN技术实现的节点,共同为用户提供网络服务。云平台例如可以是VPC,可以为多个用户提供不同的独立VPC。VPC可以部署于一个节点或多个节点。基于SDN技术实现的节点类型可包括多种,例如,基于OpenStack协议实现的SDN可包括计算节点、控制节点和存储节点,其中,计算节点是主要承载虚机、虚拟交换机(例如BVS)来完成业务处理和报文转发功能的节点。
本申请实施例中,流日志监控的主要对象就是虚拟交换机转发的报文流量。因此,流日志采集方案可以由SDN的节点来实施,且主要是承载虚拟交换机的节点来实施。本申请实施例以虚拟交换机承载于计算节点(CN)中为例进行说明,但本领域技术人员应该能够理解,承载虚拟交换机的其他类型节点也同样适用本申请实施例的技术方案。
以计算节点为例,一个计算节点可承载至少一个虚机,虚机之间通过虚拟交换机来实现计算节点内部的虚机之间的报文交互。对于一个VPC或一个云平台而言,可以部署有多个计算节点,所以虚拟交换机还用于实现不同计算节点的虚机之间的报文交互。
为了方便网络管理,对于VPC而言,用户可以选择性的确定自己的VPC包括一个或多个虚拟子网(Subnet),每个虚拟子网包括一个或多个虚机(VM),部署于一个或多个计算节点上。每个虚机通过自身配置的一个或多个虚拟网卡来进行报文交互。报文交互的最细粒度是以虚拟网卡为单位的。
在虚拟交换机中,通过诸多流表来控制报文的流向,具体可以是在报文入向路径和报文出向路径中,分别以多个流表来匹配报文;流表中至少包括报文匹配项和执行动作项,如果报文与某个流表中的报文匹配项匹配成功,则为该流表的命中报文;虚拟交换机会对命中报文按照该流表中设置的执行动作项的值来执行动作(action)。执行动作项一般规定了需要将该报文转发至哪个网卡的端口、或转发至哪个流表继续匹配、或丢弃等。
本申请实施例的技术方案基于上述SDN节点来实现,下面通过实施例进行具体介绍。
图1A为本申请实施例提供的一种流日志采集方法的流程图,本实施例适用于SDN的节点对节点中虚拟交换机处理的报文流量进行监控,以采集形成流日志的情况。本实施例由流日志采集装置来实现,该装置可以采用软件和/或硬件来实现,并配置于部署有节点的计算设备中,计算设备一般是能够承担大量计算任务的服务器或服务集群。图1B为本申请实施例所适用的计算节点的架构示意图,结合图1A和图1B进行说明,该方法包括:
S110、通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
如图1B所示,在本实施例中,计算节点10中的虚拟交换机(BVS)11可获取日志流表,该日志流表可以是预先设置的,也可以是用户根据流日志采集需求动态给虚拟交换机11配置的。日志流表与其他流表的数据内容和格式类似,可与其他流表类似配置在报文入向路径和报文出向路径的至少一个中。
S120、通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
虚拟交换机11对于接收的入向报文和要发出的出向报文,均分别基于报文入向路径和报文出向路径中的各个流表来控制报文的转发动作。入向报文会与报文入向路径中的流表,按照流表顺序逐一匹配,一旦流表命中报文,则虚拟交换机11根据流表的执行动作项来处理报文。出向报文会与报文出向路径中的流表,按照流表顺序逐一匹配,一旦流表命中报文,则虚拟交换机11根据流表的执行动作项来处理报文。
在此过程中,如果日志流表命中了报文,则虚拟交换机11按照日志流表中的执行动作项,将命中报文转发至日志处理组件12。日志流表的执行动作项可以规定了将报文转发至特定端口,该特定端口即对应后续的日志处理组件12所监控的端口,以便日志处理组件12能够采集到该命中报文。
S130、通过所述节点中的日志处理组件,根据所述命中报文生成流日志;
在本操作中,日志处理组件12可进一步基于陆续命中的多个报文来生成流日志,具体可以是按照流日志上报要求,对命中报文进行统计和聚类等处理。
S140、通过所述日志处理组件将所述流日志上报给日志服务端。
在本操作中,日志处理组件12可以定期或按要求,将流日志上报给日志服务端13。日志服务端13可以存储流日志,并可以为用户提供流日志检索、查询及可视化的能力。
本申请实施例的技术方案,通过在虚拟交换机的报文入向路径和报文出向路径的至少一个中配置流表,从而能够使得虚拟交换机在正常处理报文的过程中,采集命中日志流表的报文,从而形成流日志。该流日志采集过程,不需要额外的日志采集指令,对虚拟交换机的正常业务处理没有影响,能够实现无侵入的流日志采集。从而可按需为用户提供流入或流出具体虚机的流量统计信息。
图2A为本申请实施例提供的一种流日志采集方法的流程图。本实施例以前述实施例为基础,具体介绍流表配置方式。图2B所示为本申请实施例所适用的计算节点的架构示意图,如图2B所示,计算节点20中配置有至少一个虚拟交换机21、虚拟交换机代理端(ovsagent)22和日志处理组件(又可称为流日志代理端,flowlog agent)23。每个虚拟交换机21可将报文入向路径和报文出向路径汇聚形成一条报文路径(Datapath)。外部传输的消息可以通过云服务端(Neutron Server)24的接口接收,并分发给各个计算节点20。
可通过云服务端24和虚拟交换机代理端22来实现流表的配置,具体如下:
S210、通过所述节点的虚拟交换机代理端从云服务端的接口获取消息;
S220、如果识别到获取的消息为日志流表配置消息,则通过所述虚拟交换机代理端根据所述云服务端的数据库中所存储的流日志采集规则生成日志流表,其中,所述日志流表配置消息为所述云服务端根据所述流日志采集规则产生的;
流日志采集规则一般是根据用户的日志获取需求来确定的,可以是默认产生常用采集规则,也可以是根据用户自定义的需求来确定流日志采集规则。具体的,用户可以向云服务端(Neutron Server)24发送流日志配置请求,该请求用于确定流日志采集规则。流日志采集规则可以是增、删或变更流日志采集的规则。流日志采集规则中具体指明了需要作为监控目标的报文、网卡、虚机、子网、和VPC中的一个或多个。可以通过设置条件来指定目标,例如指定网卡地址、虚机标识、报文的源地址或目的地址等。流日志采集规则中还可以规定上报给日志服务端28的流日志内容和格式,以及存储至日志服务端28的路径等内容。
云服务端24根据用户的流日志配置请求获取流日志配置规则,作为用户数据的流日志配置请求可存储于云服务端24对应的第一数据库(DB)25中,作为控制数据的流日志配置规则可存储于云服务端24对应的第二数据库(ETCD)26中。具体的,云服务端24中可增设流日志应用接口(flowlog API)24a和流日志插件(flowlog plugin)24b,流日志应用接口24a用于进行流日志消息的分发,流日志插件24b用于进行流日志相关消息的处理。
云服务端24根据流日志采集规则产生日志流表配置消息,通过接口(northod)和第二数据库(ETCD)26发送给虚拟交换机代理端22。当然,云服务端24也会将其他应处理的消息发送给虚拟交换机代理端22。
消息进入虚拟交换机代理端22的消息队列,按照消息的预设优先级进行处理。当虚拟交换机代理端22识别到消息为日志流表配置消息时,可以从云服务端24的第二数据库26中读取流日志采集规则,据此来生成日志流表。
S230、通过所述虚拟交换机代理端将所述日志流表配置给所述虚拟交换机;
S240、通过所述虚拟交换机将所述日志流表配置在报文入向路径和报文出向路径的至少一个中;
虚拟交换机代理端22具体可以通过虚拟交换机代理端22的组件(ovs-vswitchd)将日志流表配置到虚拟交换机21的报文路径中。同时也可以将日志流表存储于自身对应的代理端数据库(ovs-db server)27。由此,虚拟交换机代理端22实现了流表的配置。
虚拟交换机代理端22还可以同时配置虚拟交换机21向日志处理组件23导出命中报文的端口,具体可根据日志处理组件23所监听的端口来进行配置。
为支持日志流表的配置功能,虚拟交换机代理端22中可增设流日志扩展程序(flowlog extension)。
S250、通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
S260、通过所述节点中的日志处理组件,根据所述命中报文生成流日志;
S270、通过所述日志处理组件将所述流日志上报给日志服务端。
本实施例的技术方案,通过节点中的虚拟交换机代理端来实现了日志流表配置,允许用户能够通过云服务端来进行流日志采集规则的配置,不需要有额外的流日志采集指令,用户能够根据需要,对流量进行全时、全流、无侵入的监控。上述流日志采集规则的配置过程,能够利用虚拟交换机代理端的消息处理和流表配置功能来实现,因此对已有的节点运行体系是无侵入的,不影响节点的正常功能运行。
图3A为本申请实施例所适用的一种报文路径的示意图。本实施例以前述实施例为基础,进一步提供了流表在报文路径中配置的具体实现方式。本实施例中,虚拟交换机通过虚拟网桥来处理报文流量,例如,虚拟交换机中,基于Openstack协议的虚拟网桥包括内部网桥(br-int)和外部网桥(br-tun),分别负责接收的报文和发出的报文。虚拟网桥根据一个或多个流表以及流表的顺序,将报文逐一与流表中的报文匹配项进行匹配,匹配命中后再根据执行动作项来执行规定的动作。各个流表的配置目的不同,可实现不同的报文转发功能。
虚拟交换机,可选的将所有报文流向(soft flow)整合成一条报文路径(Datapath),如图3A所示。br-int和br-tun中分别配置有多个流表,本领域技术人员应该理解,图3A中所示的各流表以及顺序仅为示例,具体可以根据用户的实际需求和节点的功能来设置流表以及流表顺序。在br-int和br-tun中分别包括报文入向路径和报文出向路径。
对于报文出向路径,报文先过br-int中的SG通信接口,再过br-tun中的防火墙,因此在br-int的报文出向路径中添加出向日志流表,如图3A所示,table 51为日志流表。入向日志流表的执行动作项具体配置为“flowlog,resubmit(,62)”,即将命中的报文转发给日志处理组件的采集端口,且重新发送至table 62继续处理。
对于报文入向路径,报文先过br-tun中的防火墙,再过br-int中的SG通信接口,因此在br-tun中的报文入向路径中添加入向日志流表,如图3A所示,table 6为入向日志流表,出向日志流表的执行动作项具体配置为“flowlog,resubmit(,7)”,即将命中的报文转发给日志处理组件的采集端口,且重新发送至table 7继续处理。
通过本实施例的技术方案,能够将日志流表合理配置于报文路径中,实现对报文的全流、全时监控,避免出现遗漏。
在前述实施例基础上,虚拟交换机为了支持流日志功能,需支持以下功能:
增加日志报文处理的执行动作项(flowlog action):日志报文处理的执行动作项与其他执行动作项的处理方式相同,在流表的“action”中加上“flowlog”即可。例如,流表为:
ovs-ofctl add-flow br-tun'table=10,priority=2,dl_vlan=2,tcp,nw_src=192.168.0.11,nw_dst=192.168.0.10,tp_src=80actions=flowlog,resubmit(,11)',表明action中包括了两个执行动作。
动作配置之后,这个流表中的日志报文处理动作就会作用在报文流(dp flow)中,有报文命中流表的情况下,虚拟交换机会把命中报文的信息抽取出来,统一的通过用户数据报协议(UDP,User Datagram Protocol)的方式发送出去,虚拟交换机可以使用UDP将命中报文的元信息发送到日志处理组件,消息格式如图3B和3C所示。具体可发送到本机的一个可配置的端口,日志处理组件可监听这个端口,由此来采集命中的报文。即,通过虚拟交换机可根据所述日志流表中的执行动作项,将命中报文的元信息,基于用户数据报协议转发至日志处理组件对应的设定端口。发送命中报文的元信息,可减少虚拟交换机转发给设定端口的数据传输量,也能够一定程度上减少日志处理组件的数据采集量和数据处理量,只处理流日志所需的关键元信息即可。
虚拟交换机所转发消息的具体字段可定义为下表1所示:
表1
Figure BDA0002548283000000091
Figure BDA0002548283000000101
其中,IPv4报文元信息长度:56字节,一个消息25batch发送。IPv6报文元信息长度:80字节,一个消息17batch发送。
图4A为本申请实施例提供的一种流日志采集方法的流程图。本实施例以前述实施例为基础,进一步提供流日志采集的具体实现方式。图4B所示为本申请实施例所适用的计算节点的架构示意图,如图4B所示,在计算节点20中设置的日志处理组件23可以由独立进程实现。日志处理组件23所实现的流日志生成和流日志上报功能,可分别通过子组件来实现。如图4A所示,本实施例的方法包括:
S410、通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
S420、通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
S430、通过所述日志处理组件中的同步子组件,获取基于流日志采集规则确定的流日志采集模板;
流日志采集规则中可确定有流日志采集模板,该模板规定了流日志应从报文中采集哪些字段信息,以及可规定如何对这些字段信息进行统计梳理,并按照什么格式生成流日志,以满足用户查看流日志的需求。可以预先为日志处理组件23配置流日志采集规则,优选的,结合前述实施例,日志处理组件23的同步子组件可以从虚拟交换机代理端22的数据库27或云服务端24的第二数据库26等任意存储有流日志采集规则的位置获取日志采集规则。
S440、通过所述日志处理组件中的采集子组件,从设定端口采集获取所述虚拟交换机转发的命中报文;
虚拟交换机21将命中报文转发至日志处理组件23,其具体可以是通过流表的执行动作项控制,将命中报文转发至设定端口,该端口由日志处理组件23中的采集子组件(collector)231负责监听并接收报文,即实现从设定端口采集获取命中报文。
S450、通过所述日志处理组件中的格式化子组件,根据所述流日志采集模板从采集到的命中报文中提取信息,并将提取的信息填入所述流日志采集模板,形成流日志。
本操作中,格式化子组件(formater)232进一步基于流日志采集模板的规定,将从命中报文中提取的信息,整合处理后,按模板要求填入流日志采集模板,形成具有报文具体信息内容的流日志。同步子组件可以与格式化子组件232一体设置。
S460、通过所述日志处理组件中的导出子组件,将所述流日志上报给日志服务端。
导出子组件(exporter)233,可具体根据流日志采集规则中规定的日志存储路径,将流日志上报给日志服务端,具体可以是将流日志存储到规定路径空间中。
如上所述,日志处理组件可包括四个子组件,即所述同步子组件、采集子组件、格式化子组件和导出子组件。所述日志处理组件可通过进程实现,所述同步子组件、采集子组件、格式化子组件和导出子组件可以通过所述进程中的独立线程分别实现。或者,同步子组件也可以与格式化子组件232采用同一线程来执行。
由此,流日志产生和上报的各个功能可采用独立线程来并行实现,保证流日志的处理效率。
具体的,日志处理组件以流日志代理端(flowlog agent)的形式实现,在流日志代理端启动运行后,启动以下4个任务:
1)同步子组件(cache sync线程,bthread):周期性去ovsdb及ETCD中同步流日志采集模板,流日志采集模板中包括有MAC(媒体访问地址),port(端口),子网(subnet),VPC,流日志实例ID等信息,同步周期优选是小于流日志导出周期,以便使得导出的流日志满足最新的流日志采集要求。
2)采集子组件(collector线程,libevent):监听设定端口,采集BVS发来的命中报文数据,将报文聚类,并周期性扫描。将采集到的报文添加到格式化队列(format queue)中;
3)格式化子组件(formater线程):从格式化队列中读取报文数据,并根据同步子组件获取的流日志采集模板对流日志的字段进行回填,回填后,将流日志写入导出队列(export queue)中;
4)导出子组件(exporter线程):从导出队列中读取流日志,根据流日志采集规则,找到对应的日志存储路径,推送(push)给日志服务端。
日志处理组件还可以实现报文到流的统计,维护过期时间等,具体可通过哈希表记录各报文的时间,定期维护。
日志处理组件的主要功能是基于来自虚拟交换机的报文信息,并结合控制面信息最终按照流日志的模板格式要求填入相关的字段,形成流日志。
对于一条流日志,通过节点中的日志处理组件,可根据所述命中报文确定下述至少一项信息:五元组、包数、字节数、时间戳、媒体访问地址(mac)、流量方向(即报文的入向或出向,IN/OUT)、流量动作(具体包括接受或拒绝,ACCEPT/REJECT)、流日志版本、端口标识(PORT_ID)、虚机标识(VM_ID)、子网标识(SUBNET_ID)、虚拟私有云标识(VPC_ID)、租户标识以及流日志记录状态(可包括正确或错误,OK/ERROR)。优选是确定上述各个信息,作为添加到流日志采集模板中的字段,以方便用户从各个维度了解流量情况。
除此之外,日志处理组件的数据平面还需要能够了解应该将某一流日志发送到日志服务端的哪个具体日志存储路径中。
上述各信息字段中,流的五元组、字节数、报文数、时间戳及流量动作(ACCEPT/REJECT)这些信息在虚拟交换机导出的报文元信息中都存在,日志处理组件可以直接提取。
需要额外确定的三方面数据是:流量方向;port、vm、subnet和vpc的短ID;以及,导出时的日志存储路径。下面分别介绍确定方式。
第一、通过所述节点中的日志处理组件,根据所述命中报文确定流量方向具体可以包括:通过所述日志处理组件根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向。具体说明如下:
在判断报文的流量方向时,日志处理组件可以利用虚拟交换机所转发消息中的报文入端口(in_port)和出端口(out_port)来确定。
例如,虚拟交换机中in_port与out_port的取值规则如下表2所示:
表2
Figure BDA0002548283000000131
入端口和出端口的取值规则可具体总结如下:
1、当报文被安全组或防火墙丢弃(drop)时,为了标识出这种行为,虚拟交换机会将out port置位为设定丢弃值,如“0”,而该设定丢弃值(0)在报文路径端口中虚拟交换机的配置中,实际上是不会收发报文的。所以如果出端口为设定丢弃值,表明该命中报文被丢弃。即,所述节点中的日志处理组件,根据所述命中报文确定流量动作可具体包括:如果所述命中报文的出端口取值为设定丢弃值,则所述命中报文流量动作为丢弃。
2、可以通过入端口和出端口来直接区分跨计算节点(CN)的入向和出向。
2.1、对于跨CN的情况,可直接基于in_port和out_port来判定报文流向:
对于计算节点而言,计算节点的宿主网卡通过网桥连接各个虚机的虚拟网卡,虚机的网卡之间也可通过网桥相连。虚机网桥之间的端口是内部端口,取值例如为qvo。计算节点的宿主网卡统一设置有流量入口和流量出口,流量入口用于接收该计算节点外部的流量,流量出口用于将该计算节点的内部流量向外传输。基于上述规律,
若in_port的取值为计算节点的流量入口(例如vxlan_sys_4789),则确定该报文的流量流向为跨CN的入向;
若out_port的取值为计算节点的流量出口(例如dpdk0),则确定该报文的流量流向为跨CN的出向。
命中报文的流量动作,在虚拟交换机进行流量命中时,就可以相应的记录是ACCEPT或REJECT,由此,可以由虚拟交换机提供给日志处理组件。
日志处理组件通过虚拟交换机提供的命中报文信息,即可确定跨CN入向报文的流量动作可以为ACCEPT或REJECT流量。还可以确定跨CN出向报文的流量动作为ACCEPT。
2.2、对于同CN的情况,是在计算节点内部的各虚机之间转发。例如,计算节点内部网桥的端口取值是vpo,则虚机交换机在命中同CN内部报文时,可直接确定报文的流量方向和流量动作,而后记录该信息,并通知日志处理组件。所述日志处理组件根据虚拟交换机的通知,可直接确定所述命中报文流量方向为出向。
由于同CN的报文流量,不论流量动作是ACCEPT还是REJECT,只会被出向日志流表命中,即会记录为源虚机的出向报文。由于不确定该报文的目标虚机是否也配置有日志流表来捕获入向报文,因此可选的是,根据出向日志流表命中的同CN报文,基于同CN报文的目的虚机地址生成一个反方向的流日志,即直接产生入向流日志,或能够产生入向流日志的信息。相当于“反向”复制一份目的地为同CN上VM的流日志,由此实际上已经覆盖了同CN的入向ACCEPT和REJECT。例如,虚机A向虚机B发送一个报文,该报文会在虚机A的报文出向路径中命中日志流量,从而能够产生虚机A出向报文的流日志。而无法命中虚机B的报文入向路径中的日志流表,所以不能体现在虚机B的入向报文流日志中。为此,可基于虚机A的出向报文,产生代表虚机B的入向报文的信息,从而为虚机B生成入向报文的流日志。
上述流量流向和流量动作的确定动作可以由流日志代理端的格式线程来实现。
综上,所述节点中的日志处理组件,根据所述命中报文确定流量方向具体可包括:
通过所述日志处理组件根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向。该方式尤为适用于跨CN情况。
或者,通过所述虚拟交换机根据所述命中报文中计算节点内部网桥端口来确定所述命中报文的流量方向,并通知所述日志处理组件;通过所述日志处理组件根据虚拟交换机的通知,确定所述命中报文流量方向为出向。该方式尤为适用于同CN情况。
可选的,通过所述日志处理组件根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向具体包括:
如果所述命中报文的入端口取值指向所述节点的流量入口,则通过所述日志处理组件确定所述命中报文的流量方向为入向;
如果所述命中报文的出端口取值指向所述节点的流量出口,则通过所述日志处理组件确定所述命中报文的流量方向为出向。
可选的,通过所述节点中的日志处理组件,根据所述命中报文确定流量动作包括:
如果所述命中报文的出端口取值为设定丢弃值,则通过所述日志处理组件确定所述命中报文流量动作为丢弃。
可选的,通过所述日志处理组件根据虚拟交换机的通知,确定所述命中报文流量方向为出向之后,还包括:
通过所述日志处理组件根据出向的所述命中报文,逆向产生用于确定入向流日志的信息。
第二、通常,端口、虚机、子网和虚拟私有云分别设有长标识和短标识。长标识是节点后台运行时操作的,是比较长的字符串;短标识是呈现给用户的,是比较短的字符串。长标识和短标识具有对应关系,均可以起到标识作用。虚拟交换机提供的命中报文信息中携带的是长标识,而流日志是为了提供用户查看的,所以需要将长标识转换为短标识。
通过所述节点中的日志处理组件,根据所述命中报文确定端口标识、虚机标识、子网标识和虚拟私有云标识中的至少一个包括:
通过所述日志处理组件从云服务端的数据库中读取端口、虚机、子网和虚拟私有云中至少一个的长标识与短标识的对应关系;
通过所述日志处理组件根据所述命中报文提取所述端口、虚机、子网和虚拟私有云中至少一个的长标识,并根据所述对应关系确定长标识对应的短标识,作为所述端口标识、虚机标识、子网标识和虚拟私有云标识中的至少一个。
由此,能够使得流日志中呈现的是用户易于识别的短标识。
上述过程具体说明如下:
流日志中涉及的port,vm,subnet及VPC的短ID,由于控制面只有长ID信息,因此,neutron中需要有一个实体来获取长ID和短ID,并让流日志代理端感知到。
长ID和短ID的映射对应关系实际上存在console的bce_logical的DB里,云服务端的数据库中。
流日志代理端在进行处理时,通过媒体访问地址能够反查到port,instance,subnet vpc的长ID,就可以通过本地缓存的对应关系查找短ID,如果失败,则会查ETCD并缓存到本地。
第三、日志处理组件确定流日志上报给日志服务端的日志存储路径(log_store)的方式。在通过所述日志处理组件将所述流日志上报给日志服务端之前,还包括:
通过所述日志处理组件根据流日志采集规则中的配置粒度,确定流日志上报给日志服务端的日志存储路径;
其中,所述配置粒度的粒度级别包括下述至少一项:端口粒度、设备粒度、子网粒度、虚拟私有云粒度和租户粒度。
通过设置不同的配置粒度,能够便于用户从不同粒度了解流量情况。将不同配置粒度的流日志直接存储至日志服务端的不同存储路径中,易于管理和查询。
具体介绍如下:
流日志的配置粒度可以有多种,具体可以是端口(port)、虚拟网卡(设备,device)、子网(subnet)、VPC(vpc)和租户(tenant)等不同级别的粒度。例如,子网粒度的流日志需要以子网为单位来汇总所有符合流日志采集规则的报文信息。
如前述实施例所介绍的,命中报文的粒度实际上都是端口粒度的,并不区分其他配置粒度,也不会直接形成其他配置粒度的流日志。因此,流日志代理端在导出流日志时,需要根据流日志采集规则来确定如何将流日志导出至与配置粒度对应的各日志存储路径中。不同的日志存储路径能够区分不同的配置粒度。
假如,当日志采集规则包括四个配置粒度,vpc1→subnet1→device1→port1,则流日志代理端会根据日志采集规则的配置粒度,将基于端口粒度确定的流日志进行二次的汇总统计,形成其他粒度的流日志,并分别导出到对应的日志存储路径中:
port 1的流日志发送到log_store1
device1的流日志发送到log_store2
subnet1的流日志发送到log_store3
vpc1的流日志发送到log_store4
这种情况下,流表上实际上只会有mac为port1的mac,action为flowlog的流表。
通过本申请实施例的技术方案,优选可以实现如下流日志采集功能:
根据用户配置,流日志采集功能应能够以网卡为最小粒度,采集流入/流出用户特定网卡、虚机、子网及VPC的的流量信息,并经过预处理及聚合后推送到日志服务端。
流量信息以日志的方式进行采集、传输、存储和展示,每条流日志可以五元组(源IP,目的IP,协议,源端口号及目的端口号)、报文数、字节数、采集状态及流量动作(允许流量或拒绝流量)为核心信息,同时也包括采集起始时间及必要的元信息,如port_id、VM_id,subnet_id,VPC_id,租户标识(tenant_id)等。
日志服务端能够进行流日志的存储,并提供以时间维度的检索与展示。
本申请实施例的技术方案,实际上涉及了流日志的配置、采集和导出这三个主要部分:
日志处理组件,也称流量采集组件:实现具体的流量采集功能,实现包→流的统计转换;
云服务端,例如Neutron组件:接收用户的流日志配置请求,调用底层日志处理组件实现流日志采集,具体涉及Neutron Server及ovs-agent(vnet controller)。
流量预处理及导出组件,日志处理组件中的格式子组件和导出子组件:根据采集到的信息,为每条流日志添加元信息,如port_id,VM id,subnet id,network id等。最终调用日志服务端的应用接口将流日志导出给日志服务端。
日志服务端负责为流日志的关键字建立索引,存储,并提供搜索展示功能。流日志能够为用户提供包括且不限于如下能力:排查某条流是否到达了特定机器;排查安全组或防火墙规则是否生效或是否有错杀;流量监控、展示或异常报警;根据流量特征进行有针对性的网络优化。
图5是本申请实施例的流日志采集装置的框图;如图5所示,该流日志采集装置500,配置于软件定义网络的节点中,所述装置包括:
流表配置模块510,配置于所述节点中的虚拟交换机中,用于获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
报文命中模块520,配置于所述虚拟交换机中,用于根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
日志处理组件530,配置于所述节点中,用于根据所述命中报文生成流日志;
所述日志处理组件530,还用于将所述流日志上报给日志服务端。
本申请实施例的技术方案,通过在虚拟交换机的报文入向路径和报文出向路径的至少一个中配置流表,从而能够使得虚拟交换机在正常处理报文的过程中,采集命中日志流表的报文,从而形成流日志。该流日志采集过程,不需要额外的日志采集指令,对虚拟交换机的正常业务处理没有影响,能够实现无侵入的流日志采集。从而可按需为用户提供流入或流出具体虚机的流量统计信息。
可选的,所述装置还包括:
消息获取模块,配置于虚拟交换机代理端,用于从云服务端的接口获取消息;
流表生成模块,配置于所述虚拟交换机代理端,用于如果识别到获取的消息为日志流表配置消息,则根据所述云服务端的数据库中所存储的流日志采集规则生成日志流表,其中,所述日志流表配置消息为所述云服务端根据所述流日志采集规则产生的;
流表提供模块,配置于所述虚拟交换机代理端,用于将所述日志流表配置给所述虚拟交换机;
相应的,所述流表配置模块,具体用于将所述日志流表配置在报文入向路径和报文出向路径的至少一个中。
可选的,其中,所述日志处理组件包括:
同步子组件,用于获取基于流日志采集规则确定的流日志采集模板;
采集子组件,用于从设定端口采集获取所述虚拟交换机转发的命中报文;
格式化子组件,用于根据所述流日志采集模板从采集到的命中报文中提取信息,并将提取的信息填入所述流日志采集模板,形成流日志。
可选的,所述日志处理组件还包括:
导出子组件,用于将所述流日志上报给日志服务端。
可选的,所述日志处理组件通过进程实现,所述同步子组件、采集子组件、格式化子组件和导出子组件通过所述进程中的独立线程分别实现。
可选的,所述日志处理组件具体用于:
根据所述命中报文确定下述至少一项信息:五元组、包数、字节数、时间戳、媒体访问地址、流量方向、流量动作、流日志版本、端口标识、虚机标识、子网标识、虚拟私有云标识、租户标识以及流日志记录状态;
根据确定的信息生成流日志。
可选的:
所述日志处理组件具体用于:根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向;或
所述虚拟交换机具体用于根据所述命中报文中计算节点内部网桥端口来确定所述命中报文的流量方向,并通知所述日志处理组件;所述日志处理组件具体用于根据虚拟交换机的通知,确定所述命中报文流量方向为出向。
可选的,所述日志处理组件具体用于:
如果所述命中报文的入端口取值指向所述节点的流量入口,则确定所述命中报文的流量方向为入向;
如果所述命中报文的出端口取值指向所述节点的流量出口,则所述日志处理组件确定所述命中报文的流量方向为出向。
可选的,所述日志处理组件具体用于:
如果所述命中报文的出端口取值为设定丢弃值,则确定所述命中报文流量动作为丢弃。
可选的,所述日志处理组件还用于:根据虚拟交换机的通知,确定所述命中报文流量方向为出向之后,根据出向的所述命中报文,逆向产生用于确定入向流日志的信息。
可选的,所述日志处理组件具体用于:
从云服务端的数据库中读取端口、虚机、子网和虚拟私有云中至少一个的长标识与短标识的对应关系;
根据所述命中报文提取所述端口、虚机、子网和虚拟私有云中至少一个的长标识,并根据所述对应关系确定长标识对应的短标识,作为所述端口标识、虚机标识、子网标识和虚拟私有云标识中的至少一个。
可选的,所述日志处理组件还用于:将所述流日志上报给日志服务端之前,根据流日志采集规则中的配置粒度,确定流日志上报给日志服务端的日志存储路径;
其中,所述配置粒度的粒度级别包括下述至少一项:端口粒度、设备粒度、子网粒度、虚拟私有云粒度和租户粒度。
可选的,所述虚拟交换机包括内部网桥和外部网桥,所述日志流表包括入向日志流表和出向日志流表,所述入向日志流表配置于外部网桥的报文入向路径中,所述出向日志流表配置于内部网桥的报文出向路径中。
可选的,所述报文命中模块具体用于:根据所述日志流表中的执行动作项,将命中报文的元信息,基于用户数据报协议转发至日志处理组件对应的设定端口。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的流日志采集方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的流日志采集的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的流日志采集的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的流日志采集的方法对应的程序指令/模块(例如,附图5所示的流表配置模块510、报文命中模块520和日志处理组件530)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的流日志采集的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据流日志采集的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至流日志采集的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
流日志采集的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与流日志采集的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (30)

1.一种流日志采集方法,应用于软件定义网络的节点,所述方法包括:
通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
通过所述虚拟交换机根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
通过所述节点中的日志处理组件,根据所述命中报文生成流日志;
通过所述日志处理组件将所述流日志上报给日志服务端。
2.根据权利要求1所述的方法,其中,通过所述节点中的虚拟交换机获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中包括:
通过所述节点的虚拟交换机代理端从云服务端的接口获取消息;
如果识别到获取的消息为日志流表配置消息,则通过所述虚拟交换机代理端根据所述云服务端的数据库中所存储的流日志采集规则生成日志流表,其中,所述日志流表配置消息为所述云服务端根据所述流日志采集规则产生的;
通过所述虚拟交换机代理端将所述日志流表配置给所述虚拟交换机;
通过所述虚拟交换机将所述日志流表配置在报文入向路径和报文出向路径的至少一个中。
3.根据权利要求1所述的方法,其中,通过所述节点中的日志处理组件,根据所述命中报文生成流日志包括:
通过所述日志处理组件中的同步子组件,获取基于流日志采集规则确定的流日志采集模板;
通过所述日志处理组件中的采集子组件,从设定端口采集获取所述虚拟交换机转发的命中报文;
通过所述日志处理组件中的格式化子组件,根据所述流日志采集模板从采集到的命中报文中提取信息,并将提取的信息填入所述流日志采集模板,形成流日志。
4.根据权利要求3所述的方法,其中,通过所述日志处理组件将所述流日志上报给日志服务端包括:
通过所述日志处理组件中的导出子组件,将所述流日志上报给日志服务端。
5.根据权利要求4所述的方法,其中,所述日志处理组件通过进程实现,所述同步子组件、采集子组件、格式化子组件和导出子组件通过所述进程中的独立线程分别实现。
6.根据权利要求1所述的方法,其中,通过所述节点中的日志处理组件,根据所述命中报文生成流日志包括:
通过所述节点中的日志处理组件,根据所述命中报文确定下述至少一项信息:五元组、包数、字节数、时间戳、媒体访问地址、流量方向、流量动作、流日志版本、端口标识、虚机标识、子网标识、虚拟私有云标识、租户标识以及流日志记录状态;
通过所述日志处理组件根据确定的信息生成流日志。
7.根据权利要求6所述的方法,其中,通过所述节点中的日志处理组件,根据所述命中报文确定流量方向包括:
通过所述日志处理组件根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向;或
通过所述虚拟交换机根据所述命中报文中计算节点内部网桥端口来确定所述命中报文的流量方向,并通知所述日志处理组件;通过所述日志处理组件根据虚拟交换机的通知,确定所述命中报文流量方向为出向。
8.根据权利要求7所述的方法,其中,通过所述日志处理组件根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向包括:
如果所述命中报文的入端口取值指向所述节点的流量入口,则通过所述日志处理组件确定所述命中报文的流量方向为入向;
如果所述命中报文的出端口取值指向所述节点的流量出口,则通过所述日志处理组件确定所述命中报文的流量方向为出向。
9.根据权利要求6所述的方法,其中,通过所述节点中的日志处理组件,根据所述命中报文确定流量动作包括:
如果所述命中报文的出端口取值为设定丢弃值,则通过所述日志处理组件确定所述命中报文流量动作为丢弃。
10.根据权利要求6所述的方法,其中,通过所述日志处理组件根据虚拟交换机的通知,确定所述命中报文流量方向为出向之后,还包括:
通过所述日志处理组件根据出向的所述命中报文,逆向产生用于确定入向流日志的信息。
11.根据权利要求6所述的方法,其中,通过所述节点中的日志处理组件,根据所述命中报文确定端口标识、虚机标识、子网标识和虚拟私有云标识的至少一个包括:
通过所述日志处理组件从云服务端的数据库中读取端口、虚机、子网和虚拟私有云中的至少一个的长标识与短标识的对应关系;
通过所述日志处理组件根据所述命中报文提取所述端口、虚机、子网和虚拟私有云中至少一个的长标识,并根据所述对应关系确定长标识对应的短标识,作为所述端口标识、虚机标识、子网标识和虚拟私有云标识中的至少一个。
12.根据权利要求1所述的方法,其中,通过所述日志处理组件将所述流日志上报给日志服务端之前,还包括:
通过所述日志处理组件根据流日志采集规则中的配置粒度,确定流日志上报给日志服务端的日志存储路径;
其中,所述配置粒度的粒度级别包括下述至少一项:端口粒度、设备粒度、子网粒度、虚拟私有云粒度和租户粒度。
13.根据权利要求1所述的方法,其中,所述虚拟交换机包括内部网桥和外部网桥,所述日志流表包括入向日志流表和出向日志流表,所述入向日志流表配置于外部网桥的报文入向路径中,所述出向日志流表配置于内部网桥的报文出向路径中。
14.根据权利要求1所述的方法,其中,通过所述虚拟交换机根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件包括:
通过所述虚拟交换机根据所述日志流表中的执行动作项,将命中报文的元信息,基于用户数据报协议转发至日志处理组件对应的设定端口。
15.一种流日志采集装置,配置于软件定义网络的节点中,所述装置包括:
流表配置模块,配置于所述节点中的虚拟交换机中,用于获取日志流表,并配置在报文入向路径和报文出向路径的至少一个中;
报文命中模块,配置于所述虚拟交换机中,用于根据所述日志流表命中匹配报文时,根据所述日志流表中的执行动作项,将命中报文转发至日志处理组件;
日志处理组件,配置于所述节点中,用于根据所述命中报文生成流日志;
所述日志处理组件,还用于将所述流日志上报给日志服务端。
16.根据权利要求15所述的装置,其中,所述装置还包括:
消息获取模块,配置于虚拟交换机代理端,用于从云服务端的接口获取消息;
流表生成模块,配置于所述虚拟交换机代理端,用于如果识别到获取的消息为日志流表配置消息,则根据所述云服务端的数据库中所存储的流日志采集规则生成日志流表,其中,所述日志流表配置消息为所述云服务端根据所述流日志采集规则产生的;
流表提供模块,配置于所述虚拟交换机代理端,用于将所述日志流表配置给所述虚拟交换机;
相应的,所述流表配置模块,具体用于将所述日志流表配置在报文入向路径和报文出向路径的至少一个中。
17.根据权利要求15所述的装置,其中,所述日志处理组件包括:
同步子组件,用于获取基于流日志采集规则确定的流日志采集模板;
采集子组件,用于从设定端口采集获取所述虚拟交换机转发的命中报文;
格式化子组件,用于根据所述流日志采集模板从采集到的命中报文中提取信息,并将提取的信息填入所述流日志采集模板,形成流日志。
18.根据权利要求17所述的装置,其中,所述日志处理组件还包括:
导出子组件,用于将所述流日志上报给日志服务端。
19.根据权利要求18所述的装置,其中,所述日志处理组件通过进程实现,所述同步子组件、采集子组件、格式化子组件和导出子组件通过所述进程中的独立线程分别实现。
20.根据权利要求15所述的装置,其中,所述日志处理组件具体用于:
根据所述命中报文确定下述至少一项信息:五元组、包数、字节数、时间戳、媒体访问地址、流量方向、流量动作、流日志版本、端口标识、虚机标识、子网标识、虚拟私有云标识、租户标识以及流日志记录状态;
根据确定的信息生成流日志。
21.根据权利要求20所述的装置,其中:
所述日志处理组件具体用于:根据所述命中报文的入端口和出端口取值规则确定所述命中报文的流量方向为入向或出向;或
所述虚拟交换机具体用于根据所述命中报文中计算节点内部网桥端口来确定所述命中报文的流量方向,并通知所述日志处理组件;所述日志处理组件具体用于根据虚拟交换机的通知,确定所述命中报文流量方向为出向。
22.根据权利要求21所述的装置,其中,所述日志处理组件具体用于:
如果所述命中报文的入端口取值指向所述节点的流量入口,则确定所述命中报文的流量方向为入向;
如果所述命中报文的出端口取值指向所述节点的流量出口,则所述日志处理组件确定所述命中报文的流量方向为出向。
23.根据权利要求21所述的装置,其中,所述日志处理组件具体用于:
如果所述命中报文的出端口取值为设定丢弃值,则确定所述命中报文流量动作为丢弃。
24.根据权利要求21所述的装置,其中,所述日志处理组件还用于:根据虚拟交换机的通知,确定所述命中报文流量方向为出向之后,根据出向的所述命中报文,逆向产生用于确定入向流日志的信息。
25.根据权利要求21所述的装置,其中,所述日志处理组件具体用于:
从云服务端的数据库中读取端口、虚机、子网和虚拟私有云中至少一个的长标识与短标识的对应关系;
根据所述命中报文提取所述端口、虚机、子网和虚拟私有云中至少一个的长标识,并根据所述对应关系确定长标识对应的短标识,作为所述端口标识、虚机标识、子网标识和虚拟私有云标识中的至少一个。
26.根据权利要求15所述的装置,其中,所述日志处理组件还用于:将所述流日志上报给日志服务端之前,根据流日志采集规则中的配置粒度,确定流日志上报给日志服务端的日志存储路径;
其中,所述配置粒度的粒度级别包括下述至少一项:端口粒度、设备粒度、子网粒度、虚拟私有云粒度和租户粒度。
27.根据权利要求15所述的装置,其中,所述虚拟交换机包括内部网桥和外部网桥,所述日志流表包括入向日志流表和出向日志流表,所述入向日志流表配置于外部网桥的报文入向路径中,所述出向日志流表配置于内部网桥的报文出向路径中。
28.根据权利要求15所述的装置,其中,所述报文命中模块具体用于:根据所述日志流表中的执行动作项,将命中报文的元信息,基于用户数据报协议转发至日志处理组件对应的设定端口。
29.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-14中任一项所述的流日志采集方法。
30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-14中任一项所述的流日志采集方法。
CN202010568198.9A 2020-06-19 2020-06-19 一种流日志采集方法、装置、设备和存储介质 Active CN111786973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010568198.9A CN111786973B (zh) 2020-06-19 2020-06-19 一种流日志采集方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010568198.9A CN111786973B (zh) 2020-06-19 2020-06-19 一种流日志采集方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111786973A true CN111786973A (zh) 2020-10-16
CN111786973B CN111786973B (zh) 2022-09-23

Family

ID=72756732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010568198.9A Active CN111786973B (zh) 2020-06-19 2020-06-19 一种流日志采集方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111786973B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113433400A (zh) * 2021-05-27 2021-09-24 国网天津市电力公司电力科学研究院 分布式新能源发电站电压调节暂态性能测试***和方法
CN113709017A (zh) * 2021-08-17 2021-11-26 中盈优创资讯科技有限公司 虚拟化流量的采集方法及装置
CN113794640A (zh) * 2021-08-20 2021-12-14 新华三信息安全技术有限公司 一种报文处理方法、装置、设备及机器可读存储介质
CN114301769A (zh) * 2021-12-29 2022-04-08 杭州迪普信息技术有限公司 原始流量数据的处理方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747026A (zh) * 2013-10-29 2014-04-23 盛科网络(苏州)有限公司 openflow流表的告警方法及告警装置
CN105592075A (zh) * 2015-11-27 2016-05-18 杭州华三通信技术有限公司 安全网关的报文处理方法及装置
US20170093664A1 (en) * 2015-09-25 2017-03-30 Telefonaktiebolaget L M Ericsson (Publ) Sdn controller logic-inference network troubleshooter (sdn-lint) tool
CN107360115A (zh) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 一种sdn网络防护方法及装置
CN110719215A (zh) * 2019-10-21 2020-01-21 北京百度网讯科技有限公司 虚拟网络的流信息采集方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747026A (zh) * 2013-10-29 2014-04-23 盛科网络(苏州)有限公司 openflow流表的告警方法及告警装置
US20170093664A1 (en) * 2015-09-25 2017-03-30 Telefonaktiebolaget L M Ericsson (Publ) Sdn controller logic-inference network troubleshooter (sdn-lint) tool
CN105592075A (zh) * 2015-11-27 2016-05-18 杭州华三通信技术有限公司 安全网关的报文处理方法及装置
CN107360115A (zh) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 一种sdn网络防护方法及装置
CN110719215A (zh) * 2019-10-21 2020-01-21 北京百度网讯科技有限公司 虚拟网络的流信息采集方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨绍光等: "基于SDN的虚拟私有云研究", 《信息通信技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113433400A (zh) * 2021-05-27 2021-09-24 国网天津市电力公司电力科学研究院 分布式新能源发电站电压调节暂态性能测试***和方法
CN113709017A (zh) * 2021-08-17 2021-11-26 中盈优创资讯科技有限公司 虚拟化流量的采集方法及装置
CN113709017B (zh) * 2021-08-17 2022-10-04 中盈优创资讯科技有限公司 虚拟化流量的采集方法及装置
CN113794640A (zh) * 2021-08-20 2021-12-14 新华三信息安全技术有限公司 一种报文处理方法、装置、设备及机器可读存储介质
CN113794640B (zh) * 2021-08-20 2022-11-18 新华三信息安全技术有限公司 一种报文处理方法、装置、设备及机器可读存储介质
CN114301769A (zh) * 2021-12-29 2022-04-08 杭州迪普信息技术有限公司 原始流量数据的处理方法及***

Also Published As

Publication number Publication date
CN111786973B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN111786973B (zh) 一种流日志采集方法、装置、设备和存储介质
US11481242B2 (en) System and method of flow source discovery
US10862775B2 (en) Supporting programmability for arbitrary events in a software defined networking environment
US11321213B2 (en) Correlation key used to correlate flow and con text data
CN110521171B (zh) 用于应用性能监视和管理的流簇解析
CN108667853B (zh) 恶意攻击的检测方法和装置
US9787591B2 (en) Autonomic ingress traffic load balancing in link aggregation groups by modification of switch routing
JP2008035266A (ja) 情報システムの状態を解析する技術
US20170295068A1 (en) Logical network topology analyzer
Hyun et al. Real‐time and fine‐grained network monitoring using in‐band network telemetry
US20180176183A1 (en) Managing firewall flow records of a virtual infrastructure
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
US11005797B2 (en) Method, system and server for removing alerts
US20120110665A1 (en) Intrusion Detection Within a Distributed Processing System
US11888680B1 (en) Early detection of telemetry data streaming interruptions
CN113452714B (zh) 主机聚类方法及装置
WO2022100707A1 (zh) 一种确定数据流信息的方法、装置及***
US10341299B2 (en) Collecting firewall flow records of a virtual infrastructure
JP6476853B2 (ja) ネットワーク監視システム及び方法
Pape et al. Restful correlation and consolidation of distributed logging data in cloud environments
Muragaa et al. A pox controller module to collect web traffic statistics in SDN environment
US20230350736A1 (en) Distributed flow correlation
CN114301757B (zh) 一种网络资产处理方法、装置、设备以及存储介质
US9917742B1 (en) Hardware connection management
KR20180015916A (ko) Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant