基于spark的数据质量评估(大数据巡检系统)

技术基于Spark的公安大数据实时运维技术怎么使用本篇内容主要讲解“基于Spark的公安大数据实时运维技术怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Spark

本文主要讲解如何使用基于Spark的公安大数据实时运维技术。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何使用基于Spark的公安大数据实时运维技术”!

公安行业有成千上万的前端和后端设备。前端设备包括摄像头、探测器和传感器,后端设备包括各级中央机房的服务器、应用服务器、网络设备和电力系统。设备数量庞大、种类繁多,给公安内部运维管理带来了巨大挑战。传统的通过ICMP/SNMP、Trap/Syslog等工具对设备进行诊断和分析的方法已经不能满足实际需求。由于公安内部运维管理的特殊性,目前ELK等架构的方法也不能满足需求。为了找到合理的解决方案,我们将目光转向开源架构,搭建了适合公安行业的实时运维管理平台。

实时运维平台整体架构

数据采集层:Logstash Flume,负责采集和过滤各种前端和后端硬件设备输出的Snmp Trap和Syslog日志信息以及应用服务器本身在不同场景下生成的系统和业务日志;

数据传输层:采用高吞吐量分布式消息队列Kafka集群,保证聚合日志和消息的可靠传输;

数据处理层:Spark实时Pull Kafka数据,通过Spark Streaming和RDD运算,进行数据流处理和逻辑分析;

数据存储层:实时数据存储在MySQL中,便于实时业务应用和显示;总数据存储在ES和HBase中,用于后续检索和分析;

服务层:基于存储层,后续整体业务应用涵盖APM、网络监控、拓扑、告警、工单、CMDB等。

整个系统涉及的主要开源框架如下:

基于Spark的公安大数据实时运维技术怎么使用

此外,整个环境基于JDK 8和Scala 2.10.4。公安系统设备有很多种。接下来,以exchange Syslog日志为例,详细介绍日志处理和分析的整体流程。

基于Spark的公安大数据实时运维技术怎么使用

图1公安实时运维平台总体架构

Flume+Logstash日志收集

Flume是Cloudera贡献的一个分布式、可靠、高可用的海量日志收集系统,支持定制各种Source进行数据收集,并提供简单的数据处理和通过缓存写入Sink的能力。

水槽中,源、槽和汇的配置如下:

基于Spark的公安大数据实时运维技术怎么使用

在该配置中,通过syslog源配置localhost tcp 5140端口接收网络设备发送的Syslog信息,将事件缓存在内存中,然后通过KafkaSink将日志发送到kafka集群中名为“syslog-kafka”的主题。

来自Elastic公司的Logstash旨在收集、分析和传输各种日志、事件和非结构化数据。它有三个主要功能:事件输入、事件过滤和事件输出,这些功能都设置在带后缀的配置文件中。糖膏剂在本例中,系统日志配置如下:

基于Spark的公安大数据实时运维技术怎么使用

输入插件用于指定各种数据源。在本例中,Logstash通过udp 514端口接收Syslog信息。

虽然这个例子中不需要配置Filter插件,但是它的功能非常强大,可以进行复杂的逻辑处理,包括正则表达式处理、编解码、k/v分割以及数值、时间等各种数据处理,可以根据实际场景进行设置。

输出插件用于将处理后的事件数据发送到指定的目的地,并指定Kafka的位置、主题和压缩类型。在* * * *的Codec插件中,将源主机的IP地址(主机)和Logstash处理的时间戳(@timestamp)指定为前缀,并集成原始事件消息,便于在事件传输过程中判断Syslog信息的来源。原始Syslog信息流的示例如下:

14712164: 10月9日18:04:10.7353360% LINK-3-updown :接口千兆以太网0/16,已将状态更改为关闭

日志输出插件处理的信息流变成:

19.1.1.12 2016-10-13t 10:04:5

4.520Z <147>12164: Oct 9 18:04:10.735:  %LINK-3-UPDOWN: Interface GigabitEthernet0/16, changed state to down

其中红色字段就是codec编码插件植入的host以及timestamp信息。处理后的Syslog信息会发送至Kafka集群中进行消息的缓存。

Kafka日志缓冲

Kafka是一个高吞吐的分布式消息队列,也是一个订阅/发布系统。Kafka集群中每个节点都有一个被称为broker的实例,负责缓存数据。Kafka有两类客户端,Producer(消息生产者的)和Consumer(消息消费者)。Kafka中不同业务系统的消息可通过topic进行区分,每个消息都会被分区,用以分担消息读写负载,每个分区又可以有多个副本来防止数据丢失。消费者在具体消费某个topic消息时,指定起始偏移量。Kafka通过Zero-Copy、Exactly  Once等技术语义保证了消息传输的实时、高效、可靠以及容错性。

Kafka集群中某个broker的配置文件server.properties的部分配置如下:

基于Spark的公安大数据实时运维技术怎么使用

其中需指定集群里不同broker的id,此台broker的id为1,默认监听9092端口,然后配置Zookeeper(后续简称zk)集群,再启动broker即可。

Kafka集群名为syslog-kafka的topic:

基于Spark的公安大数据实时运维技术怎么使用

Kafka集群的topic以及partition等信息也可以通过登录zk来观察。然后再通过下列命令查看Kafka接收到的所有交换机日志信息:

基于Spark的公安大数据实时运维技术怎么使用

部分日志样例如下:

基于Spark的公安大数据实时运维技术怎么使用

Spark日志处理逻辑

Spark是一个为大规模数据处理而生的快速、通用的引擎,在速度、效率及通用性上表现极为优异。

在Spark主程序中,通过Scala的正则表达式解析Kafka Source中名为“syslog-kafka”  的topic中的所有Syslog信息,再将解析后的有效字段封装为结果对象,***通过MyBatis近实时地写入MySQL中,供前端应用进行实时地可视化展示。另外,全量数据存储进入HBase及ES中,为后续海量日志的检索分析及其它更高级的应用提供支持。主程序示例代码如下:

基于Spark的公安大数据实时运维技术怎么使用

基于Spark的公安大数据实时运维技术怎么使用

整体的处理分析主要分为4步:

初始化SparkContext并指定Application的参数;

创建基于Kafka topic “syslog-kafka” 的DirectStream;

将获取的每一行数据映射为Syslog对象,调用Service进行对象封装并返回;

遍历RDD,记录不为空时保存或者更新Syslog信息到MySQL中。

Syslog POJO的部分基本属性如下:

基于Spark的公安大数据实时运维技术怎么使用

SwSyslog实体中的基本属性对应Syslog中的接口信息,注解中的name对应MySQL中的表sw_syslog  以及各个字段,MyBatis完成成员属性和数据库结构的ORM(对象关系映射)。

程序中的SwSyslogService有两个主要功能:

基于Spark的公安大数据实时运维技术怎么使用

基于Spark的公安大数据实时运维技术怎么使用

encapsulateSwSyslog()将Spark处理后的每一行Syslog通过Scala的正则表达式解析为不同的字段,然后封装并返回Syslog对象;遍历RDD分区生成的每一个Syslog对象中都有ip以及接口信息,saveSwSyslog()会据此判断该插入还是更新Syslog信息至数据库。另外,封装好的Syslog对象通过ORM工具MyBatis与MySQL进行互操作。

获取到的每一行Syslog信息如之前所述:

基于Spark的公安大数据实时运维技术怎么使用

这段信息需解析为设备ip、服务器时间、信息序号、设备时间、Syslog类型、属性、设备接口、接口状态等字段。Scala正则解析逻辑如下:

基于Spark的公安大数据实时运维技术怎么使用

通过正则过滤、Syslog封装以及MyBatis持久层映射,Syslog接口状态信息最终解析如下:

基于Spark的公安大数据实时运维技术怎么使用

***,诸如APM、网络监控或者告警等业务应用便可以基于MySQL做可视化展示。

到此,相信大家对“基于Spark的公安大数据实时运维技术怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/145798.html

(0)

相关推荐

  • 书写高质量SQL的30条建议分别是哪些

    技术书写高质量SQL的30条建议分别是哪些书写高质量SQL的30条建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言小编将结合实例demo,阐

    攻略 2021年11月30日
  • 编写CSS的方法有哪些

    技术编写CSS的方法有哪些这篇文章主要讲解了“编写CSS的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写CSS的方法有哪些”吧!  CSS正在改变网站设计的

    攻略 2021年12月10日
  • html中让图片靠右(html5怎么让文字在图片右边)

    技术html5如何实现图片往右这篇文章将为大家详细讲解有关html5如何实现图片往右,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在html中,图片往右的

    攻略 2021年12月17日
  • MySQL索引创建及使用

    技术MySQL索引创建及使用 MySQL索引创建及使用转自:https://blog.csdn.net/dengchenrong/article/details/88425762
    背景
    最近在深化学习数

    礼包 2021年10月27日
  • 中的偏旁,汉字中有几个部首

    技术中的偏旁,汉字中有几个部首《康熙字典》的部首限制在214个中的偏旁,为求搜寻的方便,有些部首的归类与字义无关。例如按照原则,所有象形字都应该自成部首,但这样会造成很多象形文字的部首只有这个字。所以像是“甲”“申”“由

    生活 2021年10月22日
  • flink 获取kafka数据(使用flink将数据写入到kafka)

    技术Flink中如何进行TableAPI 、SQL 与 Kafka 消息获取这篇文章将为大家详细讲解有关Flink中如何进行TableAPI 、SQL 与 Kafka 消息获取,文章内容质量较高,因此小编分享给大家做个参

    攻略 2021年12月15日