一种社交数据监控系统的制作方法

文档序号:13164354阅读:145来源:国知局
一种社交数据监控系统的制作方法

本发明涉及互联网安全领域,特别是一种社交数据监控系统。



背景技术:

随着社交网络、移动互联网的大规模发展,人们能更方便的通过手机获取资讯、发表言论、沟通交流。特别是在社交网络繁荣之后,每个网民都可以创造信息,使得网络中的信息量出现爆发式的增长,数据来源也呈现出多样化的趋势,逐步分化出微博、微信、电商、论坛、问答等越来越多的来源。

社交数据越来越多,形式和平台越来越丰富,在提供数据给大量的品牌客户进行分析的同时,系统内部如何及时准确地监控这些数据,以及监控系统自身稳定成了一个关键点。



技术实现要素:

现有技术中,系统复杂度较高,搭建和实现难度较大,偏向于瞬时的数据监控与报警。虽然有些技术涉及数据持久化和图表化展现,但并没有技术方案涉及快速分析和展现大规模的历史数据。就目前来看,现有技术不具备快速分析和快速查看历史数据的特点。

有鉴于此,发明人在为不同的数据来源搭建特有的数据获取平台的同时,搭建了社交数据监控系统,用于提高这些平台的稳定性,及早发现问题,帮助排查问题,以及验证问题解决。

根据本发明的第一方面,本发明提供了一种社交数据监控系统,其包括:

es单元,数据存储和搜索;

收集器数据采集单元,通过api采集各个平台的数据,并将采集到的数据存储到es单元;

sdk数据采集单元,通过sdk采集应用内部的数据,并将采集到的数据存储到es单元;

监控单元,其调取es单元存储的数据,通过grafana展示单元和/或web展示单元展示。

优选地,所述收集器数据采集单元采集的数据包括系统信息和设备信息。

所述设备信息包括但不限于:网卡信息、cpu信息、内存、硬盘等。

优选地,所述sdk数据采集单元采集的数据包括任务信息。

所述任务信息包括但不限于:监控业务的吞吐量、任务队列长度、任务延时等。

优选地,所述sdk数据采集单元包括采样模块,按照调用量采样收集数据。

优选地,所述sdk数据采集单元包括数据整理模块,保证数据格式统一。

优选地,所述sdk数据采集单元包括聚合模块,对采集到的数据进行聚合处理。

优选地,所述监控单元包括报警模块,当所监控的数据超过阈值时,启动报警。

优选地,所述报警模块包括邮件报警和/或电话报警。

优选地,所述grafana展示单元也可包括报警模块,在报警模块中设定阈值,当数据超过阈值时,通过grafana展示单元的ui组件渲染展示。

优选地,所述社交数据来自:微博、微信、qq、bbs、贴吧、论坛、人人网、知乎中的一种或多种。

附图说明

通过阅读参考一下附图所作的对非限制性实施例所作的详细描述,本发明的其他特征、目的和优点将会变得更明显:

图1是根据本发明的一些实施方式的社交数据监控系统的示意图。

图2是根据本发明的另一些实施方式的社交数据监控系统的示意图。

图3为在本发明的一些具体实施例中利用web展示单元展示监控数据的示意图。

图4a-图4c在本发明的一些具体实施例中利用grafana展示单元展示监控数据的示意图。

具体实施方式

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生/混淆,对于本领域公知的一些技术特征未进行描述。

在本发明中,术语“数据获取平台”是指获取数据的平台,通过程序和接口自动浏览网页数据,整合数据并存储的装置。

本发明中所监控的数据包括但不限于分析数据、跟踪数据和全局数据。

术语“grafana”是一个开源的可视化监控数据展现平台,具有功能齐全的度量仪表盘和图形编辑器,支持graphite,influxdb、opentsdb和elasticsearch,具有灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式。

术语“api”(applicationprogramminginterface),应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

术语“sdk”(softwaredevelopmentkit,软件开发工具包)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

术语“es”(elasticsearch)一个由elastic公司开发的分布式系统搜索架构,能够存储大量数据用于业务搜索。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

elasticsearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据量级一般在千万至数十亿这个级别;其二用于大规模数据的实时联机分析处理(olap),经典的如elk栈,数据规模可能达到千亿或更多。这两种场景的数据索引和应用访问模式上差异较大,在硬件选型和集群优化方面侧重点也会有所不同。一般来说后一种场景属于大数据范畴,数据量级和集群规模更大,在管理方面也更有挑战。

在本发明应用的场景中,社交数据平台多,需要采集的不同平台也比较多,各个平台原始数据结构不同,需要做适配。有些平台的配置极低,发明人发现使用elk栈(elasticsearch、logstash和kibana)进行处理时,资源占用太大,时常导致服务器无法工作,系统可靠性降低。由于社交数据对实时性有很高要求,所以监控的时候如果有问题要尽快处理,防止系统问题导致设计数据延迟。

在此情况下,发明人在采集端,利用收集器数据采集单元和sdk数据采集单元适配不同的平台,提高系统健壮性。

收集器数据采集单元提供http接口,存数据很灵活,如果有新的存储内容,直接在请求url上变动即可。收集器数据采集单元对接各种数据平台,采集系统信息和/或设备信息,所述设备信息包括但不限于:网卡信息、cpu信息、内存、硬盘等。

sdk数据采集单元是将api采集的http请求,按照业务内容进行封装。sdk数据采集单元采集的数据包括任务信息。所述任务信息包括但不限于:监控业务的吞吐量、任务队列长度、任务延时等。所述sdk数据采集单元采集的数据种类根据需要都可以封装在内,因此sdk数据采集单元的采集能力很强,种类多样。所述sdk数据采集单元包括数据整理模块,内部逻辑会对数据进行整理,保证数据格式统一。

在本发明的一些应用场景中,某些过于频繁的采集点拖慢性能,本发明的sdk数据采集单元包括采样模块,按照调用量采样收集数据。本发明的sdk数据采集单元包括聚合模块,数据在采集程序内部聚合处理完之后才发送,这样会减少很多内存。

elasticsearch单元接收收集器数据收集单元和sdk数据收集单元收集的数据。并在内部进行处理和存储,以待后续分析时候使用。

elasticsearch是一个基于lucene的分布式搜索服务器,它存储json格式的文档数据,有基于restful的操作接口,利用elasticsearch可以方便的在任何web应用中集成搜索应用,另外它有出色的聚合功能(aggregation)能轻松的对数据进行统计分析。

在联机分析处理(olap)中,elasticsearch支持多种聚合统计功能,还和yarn、hadoop、hive、spark、pig、flume等大数据框架兼容。比如:可以将elasticsearch跑在yarn上,还可以在hive中建立外部表映射到elasticsearch的index中,直接在hive中执行insert语句,将数据加载进elasticsearch。

所谓olap,就是从实时表中统计任意组合维度的指标,也就是过滤、分组、聚合,其中,聚合除了一般的sum、count、avg、max、min等,还有一个重要的count(distinct),看上去这些操作在sql中是非常简单的统计,但在海量数据、低延迟的要求下,并不是那么容易。在本发明中,在采集端对一些容易出问题的采集点部署sdk数据采集单元,降低了整个系统的数据延迟,并且提高了稳定性。

另外,由于数据展示多样化的要求,grafana作为展示单元比kibana灵活得多,对插件的支持更多更好,发明人认为采用grafana作为展示单元系统更稳定、适应性更强。

在本发明的一些实施方式中,监控单元调取es单元存储的数据,通过grafana展示单元和/或web展示单元展示。

grafana展示单元主要展示聚合数据。如图4a-图4c,展示的是监控部署在某平台端的爬虫任务的工作状况。

web展示单元定制化程度更高,主要用于展示grafana无法展示的非聚合数据,例如跟业务相关的内容。如图3所示,为通过api从某平台上采集的数据。

监视单元、grafana显示单元和web展示单元共同完成数据展示和监控的任务。

图1和图2分别示出了本发明系统的不同构建方式,但并不用于限制本发明。本领域技术人员根据图1和图2的提示,可以根据实际需要设置监控单元和报警模块。

所述监控单元包括报警模块,当所监控的数据超过阈值时,启动报警。所述报警模块包括邮件报警和/或电话报警,或其他需要的模式。

所述报警模块也可以设在展示单元内部,例如设置在grafana显示单元内部。报警模块设置在展示单元内部便于报警的展示,例如颜色变化等。

报警规则可以使用现有的图表控制面板设置,阈值可以通过在用户界面拖拉线控制。grafana服务器会不断评估设置的规则,在规则条件符合的时候发送出通知。

通过规则配置,可以指定一个名字,规定规则的名字,什么时候评估一次,以及触发报警的条件。

例如条件类型query,可以指定query字母,时间跨度和聚合函数。字母指定在metricstab里设置的聚合函数。query的结果和聚合函数会是一个单一的值,用于后面判断是否超过了阈值。

还可以包括其他条件类型,例如otheralert,允许用户在一个条件中引用另一种报警;还有timeofday。

通知支持不同的类型,包括但不限于slack、pageduty、email、webhook等。

报警状态的改变通过注释存储放在grafana内部,支持grafana的内部数据库(例如mysql、postgres或sqlite)。grafana注释存储用于记录存储状态改变,也可以通过注释的形式加入图表评论的功能。

由于展示单元并不一定可以支持所有需要的报警模式,在一些情形下,尤其是应客户的要求,监控单元可以设置独立的报警模块。所述报警模块根据报警规则,在触发报警的条件时,通知相关端口。

通过上述的构造设计,本发明的系统能够支持多平台、实时和历史数据趋势兼顾的社交数据监控。满足每天3000万级别,数据延迟在1分钟以内的监控需求。

本发明的系统实测每日处理3000万以上的监控数据,上线后提高了的平台的稳定性,并为提早发现问题,定位问题和解决问题提供了保障。

额外的考虑因素

下面的额外考虑因素适用于前述讨论。在整个这个说明书中,多个实例可实现被描述为单个实例的部件、操作或结构。虽然一个或多个方法的单独操作被示出和描述为单独的操作,但是单独操作中的一个或多个可被同时执行,且没有事物要求操作以所示顺序执行。在示例配置中被呈现为单独的部件的结构和功能可被实现为组合的结构或部件。类似地,被呈现为单个部件的结构和功能可被实现为单独的部件。这些和其它变形、修改、添加和改进落在本公开的主题的范围内。

此外,某些实施方案在本文被描述为包括逻辑或多个部件、单元或机构。单元可构成软件模块(例如存储在机器可读介质上的代码)或硬件模块。硬件模块是能够执行某些操作并可以以某种方式配置或布置的有形单元。在示例实施方案中,一个或多个计算机系统(例如独立计算机、客户端或服务器计算机系统)或计算机系统(例如处理器或一组处理器)的一个或多个硬件模块可由软件(例如应用或应用部分)配置为操作来执行如在本文描述的某些操作的硬件模块。

在各种实施方案中,可机械或电子地执行硬件模块。例如,硬件模块可包括永久配置(例如作为专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic))成执行某些操作的专用电路或逻辑。硬件模块还可包括临时由软件配置成执行某些操作的可编程逻辑或电路(例如,如包括在通用处理器或其它可编程处理器内的)。将认识到,在专用和永久配置的电路中或在临时配置的电路(例如由软件配置)中机械地实现硬件模块的决定可由成本和时间考虑因素推动。

因此,术语“硬件”应被理解为包括有形实体,是被物理地构造、永久地配置(例如硬连线)或临时配置(例如编程)成以某种方式操作或执行本文描述的某些操作的实体。考虑到硬件模块被临时配置(例如编程)的实施方案,每个硬件模块不需要在任一个时刻被配置或例示。例如,在硬件模块包括使用软件而配置的通用处理器的场合,通用处理器可在不同的时间被配置为相应的不同硬件模块。软件可相应地配置处理器,例如以构成在一个时刻的特定硬件模块并构成在不同的时刻的不同硬件模块。

硬件和软件模块可向其它硬件和/或软件模块提供信息并从其它硬件和/或软件模接收信息。因此,所描述的硬件模块可被视为被通信地耦合。在多个这样的硬件或软件模块同时存在的场合,可通过信号传输(例如在适当的电路和总线上)来实现通信,其连接硬件或软件模块。在多个硬件模块或软件在不同的时间被配置或例示的实施方案中,可例如通过在多个硬件或软件模块访问的存储器结构中的信息的存储和取回来实现在这样的硬件或软件模块之间的通信。例如,一个硬件或软件模块可执行操作并将该操作的输出存储在它通信地耦合到的存储器设备。另一硬件或软件模块可接着在稍后的时间访问存储器设备以取回并处理所存储的输出。硬件和软件模块也可发起与输入或输出设备的通信,并可对资源(例如信息的集合)操作。

本文描述的示例方法的各种操作可至少部分地由临时配置(例如通过软件)或永久配置成执行相关操作的一个或多个处理器执行。不管是临时还是永久地被配置,这样的处理器都可构成操作来执行一个或多个操作或功能的处理器实现的模块。在本文提到的模块可在一些示例实施方案中包括处理器实现的模块。

类似地,本文描述的方法或例程可至少部分地是处理器实现的。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的硬件模块执行。某些操作的执行可分布在一个或多个处理器当中,不仅存在于单个机器内,而且部署在多个机器当中。在一些示例实施方案中,一个或多个处理器可位于单个位置上(例如在家庭环境、办公室环境内或作为服务器农场),而在其它环境中,处理器可分布在多个位置当中。

一个或多个处理器也可操作来支持在“云计算”环境中的相关操作的执行或作为saas。例如,如上面指示的,至少一些操作可由一组计算机(作为包括处理器的机器的例子)执行,这些操作是经由网络(例如互联网)和经由一个或多个适当的接口(例如api)可访问的。

某些操作的执行可分布在一个或多个处理器当中,不仅存在于单个机器内,而且部署在多个机器当中。在一些示例实施方案中,一个或多个处理器或处理器实现的模块可位于单个地理位置中(例如在家庭环境、办公室环境内或作为服务器农场)。在其它示例实施方案中,一个或多个处理器或处理器实现的模块可分布在多个地理位置当中。

本发明不限于上述实施方式,在本发明思想的范围内可以进行各种变更。本发明已通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1