APP下载

基于ELK架构的日志分析系统研究与实践

2020-10-27王军利杨卫中

中国信息化 2020年9期
关键词:日志组件分布式

王军利 杨卫中

在传统的基于IOE集中架构的IT系统中,部署的主机及软件数量较少,产生的日志种类和数量也较少;随着互联网技术的快速发展,“平台+应用”的分布式架构成为主流,主机数量和软件规模急剧增加,日志分析变得日益困难。本文主要针对基于ELK架构的日志分析系统进行研究,实现对分布式部署的主机和软件日志进行收集、分析、存储,并提供良好的UI界面进行数据展示、快速搜索、处理分析等功能,从而提升日志分析、问题定位、性能优化等工作的效率。

一、研究背景

随着新一代BSS的上线,IT系统架构发生了巨大变化,从传统的IOE集中架构过渡为当前流行的“平台+应用”的分布式架构。目前新一代BSS系统运行在近500台x86物理机和虚拟机上,众多的主机、组件及应用,每天合计产生TB级的日志,这些日志往往被运维人员忽略,加上日志分析工具的缺乏,这些日志远没有被有效利用起来。因此,对各组件、各环节、各路径的日志的分析与管控,是传统业务运维走向“统一管控、智能运营”目标的重要手段,是满足IT系统开放、敏捷、智能化要求的重要保障。

在复杂的分布式的主机及应用集群中,记录日志的方式多种多样,且不易归档,以及无法提供有效的日志监控手段等,无论是开发人员还是运维人员都无法高效搜索日志内容从而快速准确定位问题,因此迫切需要一个集中的、独立的、能够收集管理各个应用和服务器上的日志,并提供良好的UI界面进行数据展示、快速搜索、處理分析等功能的工具或系统。

经过分析研究,基于开源ELK组件的日志分析系统(以下简称该系统)提供了相应的解决方案,该方案能高效、简便的满足以上场景。

二、ELK架构、规划、部署

(一)ELK架构及特点

ELK架构主要由ElasticSearch、Logstash和Kibana等三个开源软件组成,其中E(ElasticSearch,也简称ES)是分布式搜索引擎,完成搜索、分析、存储数据等功能;L(Logstash)是收集、分析、过滤日志的工具,支持多种数据获取方式;K(Kibana)为EL提供友好的日志分析Web界面,并可以汇总、分析和搜索日志。其架构见图1。

ELK原理简述如下:由Logstash收集和处理各种日志并存放到ES集群中;由Kibana从ES集群中查询数据,并生成图表,最后返回给客户端。

ELK主要特点如下:

开源组件部署:ELK中使用到的各类组件均为开源软件,降低成本;

集中化日志管理:将不同主机上的各类日志进行收集、汇总和存储;

分布式集群部署:平台自身采用分布式架构部署,自身可靠性高,如图1所示。

日志传输实时可靠:该系统中引入实时消息队列kafka,提高了日志传输的实时性和可靠性;

强大的搜索功能:ES以分布式搜索的方式快速检索,支持DSL语法;

良好的展示和UI分析功能:可以展示详细的图表信息,定制展示内容;提供友好的日志分析Web界面,可进行汇总、分析和搜索。

(二)ELK部署规划

1. 主机集群规划

目前该系统采用三台主机集群部署:

2. 日志信息规划

日志规划包括日志字段定义、不同组件日志定义、日志索引规则等,主要涉及Host、Teledb(mysql)、Kafka、Redis等组件。

日志字段定义如下:

3.组件日志规划

(三)ELK部署过程简述

ElasticSearch部署:经过解压elasticsearch-7.2.0.zip、配置elasticsearch.yml、启动服务,完成部署。

Logstash部署:经过解压logstash-7.2.0.tar.gz、配置agent.conf和kafka.conf、启动服务,完成部署。

Kibana部署:经过解压kibana-7.2.0.tar.gz、配置kibana.yml、启动服务,完成部署。

三、应用和实践

通过上述规划、部署和配置,到此该系统已基本就绪,下面展示下在生产环境中的应用情况。

(一)日志查询

通过以下几种方式可以查询到Teledb(mysql)组件的相关日志:登陆kibana界面,点击Discover,默认显示15分钟内信息;选择要显示的字段如host、thread,完成后即可显示其信息,见图2。通过关键字查找日志,在界面输入查询关键字,即可查询相关日志。

(二)组件监控

该系统可以对组件进行指标监控,如图3所示对Teledb(mysql)监控的展示,包括mysql操作命令、mysql进程、当前连接、打开表的情况等指标。

四、应用效果

该系统在实际应用后,原来逐个到服务器上查询日志排查问题的手工方式得到了很大改善;运维人员搜索日志、定位问题、解决故障的效率得到了很大提升。因此该系统可以有效降低故障恢复时间目标RTO,加快IT系统恢复,减少故障对客户感知的影响,提升客户满意度和中国电信的品牌形象。

从实际使用情况看,使用该系统前,我们搜索目前70多套Mysql数据库的日志,需要到70多台主机上去逐个检查,消耗1个小时以上的时间;使用该系统后,基本上是一键搜索,在1分钟内即可返回结果,从时间上看效率提升了60倍以上。

参照目前市场上比较成熟的日志监控商业工具splunk、日志易等收费标准,根据测算BSS中40多套应用及组件,日均日志量TB级,理论上节省至少百万元的成本投入。按照集团规划,预期三年内随着IT应用全面上云的实施,该系统会涵盖更多的应用和组件,则可以节省更多的成本。

作者单位:中国电信股份有限公司河南分公司

猜你喜欢

日志组件分布式
高效管理日志文件用命令行就可以
创建Vue组件npm包实战分析
光伏组件热斑对发电性能的影响
居民分布式储能系统对电网削峰填谷效果分析
智能机械臂
读扶贫日志
基于Paxos的分布式一致性算法的实现与优化
雅皮的心情日志
雅皮的心情日志
嵌入式组件技术的研究及应用