APP下载

面向数据中心的日志分析平台研究

2020-10-26波,王琼,魏

通信电源技术 2020年13期
关键词:离线插件日志

杨 波,王 琼,魏 军

(国网甘肃省电力公司 信息通信公司,甘肃 兰州 730050)

0 引 言

本文提出了基于Logstash[1-2]、数据处理、Elasticsearch[3]以及Grafana的海量日志分析系统。Logstash是用于采集数据的核心组件;数据处理包括实时数据处理和离线数据处理,其中实时数据处理基于Flink,离线数据处理基于HDFS和Hive;Elasticsearch是数据存储和搜索引擎;通过Grafana能完成数据可视化分析。构建的日志分析系统具有成本低、实时性好、可扩展性高、快速开发以及节约资源等优点。

1 数据中心日志来源

数据中心主要由网络基础设施和网络服务及应用组成。日志[4]文件能详细记录系统每天发生的各类事件,对问题定位起着非常重要的作用。网络系统的异构性、设备的多样性、软件环境的复杂性,使得各类基础设施及软件均会产生大量的日志数据。数据中心日志的主要来源[5]有以下几方面。

1.1 系统日志

系统日志主要反映系统级别的运行情况,主要包括操作系统级别的日志,即物理机、宿主机以及虚拟机等部署有操作系统的系统日志。一般主要关注系统操作日志、安全日志以及定时任务日志等。

1.2 应用日志

应用日志一般分为应用服务日志和业务操作日志。应用服务日志包含Tomcat、Nginx运行时产生的日志等,通过该日志可以看到应用服务运行的健康状况;业务操作日志主要是业务系统将部分业务操作或业务错误写到日志中,可能单独一个文件,也可能集成到应用服务日中。业务操作日志是进行业务审计、业务监控的重要数据源。

1.3 数据库日志

数据库日志反映着数据库每一步每一个事务的操作及数据库运行的监控状况。进行日志监控和分析时,数据库是不可或缺的。

1.4 设备日志

设备日志可以直观地反映出设备的运行状况,且设备出现问题时,可以通过日志快速准确地找到原因,如交换机日志、防火墙日志等。通过防火墙日志可以看出系统是否遭受攻击,通过交换机日志可以看到网络流量是否出现陡增陡降等突发状况。

2 关键技术

2.1 日志采集技术

当前,日志采集主要有单机部署和分布式部署两种方式。为了方便日志集中管理,应采用分布式日志采集的方式。网络管理中常用的采集日志数据的方式包括文本方式采集、SNMP Trap方式采集、Syslog方式采集以及其他采集方式,如Telnet采集(远程控制命令采集)、串口采集等。

文本方式属于被动式采集日志数据的方式,传送的信息量相对较少且只有专业人员才能看懂,只能在采集日志数据范围小、速度比较慢的网络中使用。

2.2 日志存储技术

日志存储[6-7]的方式主要包括日志文件存储、数据库存储、HDFS存储和Elasticsearch存储等。日志管理者需要依据当前业务的特点,如数据类型、数据大小、数据存储成本、检索速度和存档时间等,定制化相应的日志存储策略。在日志分析领域,Elasticsearch的优点主要为灵活易用、插件扩展、准实时搜索、具有一定的统计分析功能。比如,Elasticsearch支持大量的Aggregation、丰富的Restful接口。对于构建面向数据中心的大规模日志存储分析系统,可以采用Elasticsearch集群,实现对日志数据的实时存储与检索,实现对原始日志和处理后的日志数据的分别存储。

2.3 日志可视化技术

日志可视化[8]是为了将经过大数据分析的日志信息以简洁、直观的方式展现,帮助数据中心运维人员、管理人员等更方便地读懂数据。目前,日志可视化技术主要有Kibana和Grafana两种。

Kibana是一个分析和可视化平台,可以浏览、可视化存储在ES集群上排名靠前的日志数据,并构建仪表盘。Kibana的仪表盘是公开的,没有进行基于角色的访问控制,如果需要针对多个用户设置不同的权限级别,则需要额外采购Shield。虽然Kibana有大量的图表类型,但是它们之上的控制仍是最初的限制。

Grafana是一个开源仪表盘工具,最新的版本可以用于Elasticsearch等数据源。它能够帮助用户更简单地创建和编辑仪表盘,含有一个独一无二的Graphite目标解析器,从而可以简化度量和函数的编辑。Grafana的面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,如热图、折线图以及图表等多种展示方式。Grafana可以灵活地浏览和使用图表,且针对每个数据源都有一个特定的查询编辑器,是针对数据源所具备的特性和能力特别定制的。

2.4 数据处理技术

当前对数据中心日志数据的存储需要分为实时处理和离线处理[9]。实时处理是为了满足数据可视化对数据的及时性需求;离线处理是为了应对大批量日志数据的处理,通过将日志数据进行切片等处理,全面准确地对日志数据进行分析,从中获取有效信息。目前,Flink和Hive作为实时处理和离线处理的框架,在大数据分析中得到广泛使用。

3 总体设计

3.1 需求分析

经过对比分析国内外应用现状,并结合当前数据中心业务发展的特点[10],面向数据中心的日志分析平台应该满足以下功能:(1)能够全面、准确地采集数据中心相关设备和应用系统的各类日志数据;(2)能够对采集到的数据进行实时处理和离线大数据分析;(3)能够以可视化的方式对日志分析统计数据进行展示。

3.2 总体设计

日志分析平台架构如图1所示。从图1可知,该平台主要包括日志采集模块、数据处理模块、ES集群模块和可视化分析模块。

图1 日志分析平台架构图

3.3 核心模块设计

3.3.1 日志采集模块

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash是一个应用程序日志、事件的传输、处理、管理与搜索的平台,能够对应用程序日志进行收集管理,提供Web接口用于查找与统计。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到所选择的目的地。Logstash数据处理流程如图2所示。

图2 Logstash数据处理流程图

输入:Logstash支持各种形式的数据输入,可以在同一时间从不同的来源捕捉事件,能以连续的流式传输方式,从日志、指标、Web应用以及数据存储等采集数据。

解析/转换:数据从源传输到存储库的过程中,Logstash过滤器能解析各个事件,识别已命名的字段及构建结构,并将它们转换成通用格式,以便轻松迅速地分析。

输出:Logstash提供多种输出选择,支持将数据发送到指定的地方,并且能够灵活地解锁下游用例。

由于在分布式系统中数据都分散在不同的容器或不同的物理机上,每一份数据往往不完整,因此需要Logstash这样的工具将数据收集起来。Logstash管道可以配置多个输入插件,将不同源头的数据整合起来进行统一处理。Logstash管道也可以配置多个输出插件,每个输出插件代表一种数据处理的业务需求。比如,对日志数据存档可以使用S3输出插件,将日志数据归档到S3存储服务器上。

3.3.2 数据处理模块

Flink是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算;可以部署在各种集群环境中,对各种大小的数据规模进行快速计算。

Flink为用户提供了更强大的计算能力和更易用的编程接口。Runtime和SQL层批流统一,提供高吞吐的掩饰计算能力和更强大的SQL支持;与Hadoop Yarn/Apache Mesos/Kubernetes集成,并且支持单机模式运行。Flink的作业可被分解成百上千个任务,分布在集群中并发执行。Flink系统架构如图3所示。

图3 Flink系统架构图

为了满足数据中心日志数据及时、准确传输数据的需求,采用Flink实时流处理技术框架,将Logstash采集到的数据实时传递给ES集群进行搜索、分析。

HDFS是Hadoop内置的分布式文件系统,是“一次写入、多次读取”模型。该模型降低了并发性控制要求,简化了数据聚合性,支持高吞吐量访问。HDFS架构包含NameNode、DataNode和备用NameNode。HDFS具有主/从架构,具体如图4所示。

图4 HDFS架构

NameNode:HDFS群集包含单个NameNode(主服务器),管理文件系统命名空间,并控制客户端对文件的访问权限。同时,它还维护和管理文件系统元数据,如由哪些块构成文件以及存储这些块的数据节点。

DataNode可以有多个DataNode,通常是集群中每个节点有一个DataNode,其负责管理运行节点的存储访问。HDFS中的DataNode存储实际数据,可以添加更多的DataNode来增加可用空间。

备用NameNode:备用NameNode服务并非真正的备用NameNode。具体来说,它并不为NameNode提供高可用性(HA)。

选用HDFS作为底层存储是基于其支持多种数据结构(结构化数据、半结构化数据、非结构化)的存储,存储空间可以无限大,扩展简易,支持大文件存储等特点,这与数据中心的业务特征极其吻合。

Hive[11-12]是一种数据仓库。Hive中的数据存储于文件系统中,能提供方便的访问数据仓库数据的HQL方法。该方法将SQL翻译成MapReduce,能够很好地解决离线处理中需要批量处理结果的查询。Hive将元数据存放在metastore中,Hive中的metastore有3种工作方式:(1)内嵌Derby方式:在同一时间只能发有一个进程连接使用数据库;(2)Local方式:使用本地Mysql数据库存储元数据;(3)Remote方式:使用远程已经搭建完成的Mysql数据库存储元数据。

3.3.3 日志存储模块

Elasticsearch[13]是一个基于Lucene构建的开源、分布式、Restful接口的全文搜索引擎。Elasticsearch架构如图5所示。

图5 Elasticsearch架构图

Elasticsearch是分布式的实时文件存储,每个字段都能被索引并可被搜索,可以扩展到上百台服务器,处理PB级结构化或非结构化数据,且所有的功能被集成到一台服务器上,相关应用可以通过RESTful API、各种语言的客户端或命令行与之交互。因此,Elasticsearch能够满足日志存储对稳定性、容错性、高性能以及高可扩展性等要求,且能保证集群的负载均衡。

3.3.4 日志可视化分析模块

Grafana[14]是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。Grafana支持许多不同的数据源。目前,Grafana提供了对MySQL、Influx DB、Prometheus以及Elasticsearch等的支持,可以实现对数据的可视化工作。

3.4 系统物理架构

根据数据中心日志管理平台的功能需求分析,平台主要由数据中心基础IT环境、日志采集集群、实时/离线数据处理集群、Elasticsearch日志存储集群等组成,系统物理结构如图6所示。数据中心基础IT环境是日志产生的主要来源;日志采集集群由多台服务器组成,基于Logstash构建的日志采集集群;基于Elasticsearch构建由主节点和数据节点组成的日志存储集群,实现日志数据的存储。

图6 系统物理架构

4 结 论

随着云计算技术的发展,数据中心[15]各种网络设备的增加,不同种类、不同类型、不同作用的日志也相应增多。本文首先分析了数据中心日志的来源,详细介绍了日志采集、日志数据处理、日志存储和日志可视化分析技术,并结合数据中心的特点,提出一种面向数据中心的日志分析平台架构,深入讨论了日志分析平台设计方案,对日志分析平台的建设具有一定的借鉴意义。

猜你喜欢

离线插件日志
一名老党员的工作日志
异步电机离线参数辨识方法
浅谈ATC离线基础数据的准备
扶贫日志
互联互通车载控制器离线数据自动生成方法研究
自编插件完善App Inventor与乐高机器人通信
基于OSGi的军用指挥软件插件机制研究
雅皮的心情日志
雅皮的心情日志
基于jQUerY的自定义插件开发