日志分析系统调研分析-ELK-EFK
日志解决方案调研

日志解决方案调研一、日志管理的挑战与重要性随着企业信息系统的规模和复杂度不断增加,传统的手工记录和分析方式已经无法满足快速变化的需求。
有效的日志管理解决方案能够帮助企业实时监控系统运行状态、快速识别潜在问题并进行响应。
例如,通过收集和分析系统的日志数据,管理员可以及时发现异常行为或安全漏洞,并采取必要的措施加以应对,从而保障信息系统的稳定运行和数据安全。
二、常见的日志解决方案类型开源日志管理工具开源日志管理工具因其免费、灵活和社区支持广泛等特点,受到了众多企业的青睐。
其中,比较知名的包括ELK(Elasticsearch、Logstash、Kibana)和Graylog。
ELK通过Elasticsearch进行高效的日志存储和检索,Logstash用于日志收集和传输,Kibana则提供了强大的可视化分析功能,使得用户可以直观地分析和理解日志数据。
Graylog则提供了类似的功能,但更专注于企业级应用场景,提供了更多的安全和可扩展性特性。
商业日志管理平台三、如何选择适合的日志解决方案需求分析和预算:明确企业的实际需求和预算限制,选择既能满足需求又不会过度投入的解决方案。
功能和性能:根据企业规模和业务特点,选择功能和性能都能够满足要求的解决方案。
集成和可扩展性:考虑解决方案与现有系统的集成能力和未来扩展的可能性,以避免日后的技术架构调整带来的额外成本和风险。
安全性和合规性:对于一些行业,如金融和医疗,安全性和合规性可能是至关重要的考虑因素,选择能够满足相关法规要求的解决方案至关重要。
五、未来日志管理的发展趋势云原生日志管理:随着企业对云计算的广泛采用,云原生日志管理解决方案正在兴起。
这些解决方案能够与云平台无缝集成,支持自动伸缩和高可用性,为企业提供更加灵活和成本效益的日志管理选项。
安全性和合规性的增强:随着数据隐私和合规性要求的提升,未来的日志管理解决方案将更加关注安全性和合规性的增强。
例如,通过数据加密、访问控制和完整性验证等技术手段,确保日志数据的安全存储和传输。
基于大数据的ELK日志分析系统研究及应用

基于大数据的ELK日志分析系统研究及应用作者:李志民孙林檀吴建军张新征来源:《科学与信息化》2019年第28期摘要基于ELK的日志分析系统研究分析是为了有效的解决当下物联网应用日志处理效率低的问题。
因此,本文首先阐述了基于ELK的日志分析平台,然后总结了对系统日记群集优化大方法,从而提高日志分析系统的运行效率和排查异常的速度。
关键词 ELK;日志分析系统;Elasticsearch日志设计信息系统的重要组成部分,是系统运行、性能分析以及故障诊断的重要来源。
随着科学技术的不断发展和互联网技术的广泛应用,不断增加了系统的日志量,随着日志的应用范围的扩大和复杂程度的增加,传统日志的分析方式和效率已经不能适信息系统对日志的需求。
为了满足信息时代的发展需要,下面就基于ELK的日志分析系统进行相关的研究分析工作。
1 基于ELK的日志分析平台随着实时分析技术的不断发展和成熟应用,在日志领域出现了新的分析系统-ELK,ELK 实时日志分析平台主要运用了Kiba-na(数据可视分析平台)、Logstash(日志采集工具)、Elasticsearch(分布式搜索引擎)[1]。
这些技术的应用可以让系统的运行维护人员在庞大的日志信息量中及时找到所需要管理和维护的信息,从而实现了对日志系统的分析。
1.1 日志分析系统整体架构完整的日志系统是有日志的储存系统、采集系统、解析系统化以及可视化分析系统共同组成的。
日志采集工具是日志的主要采集器,在多台机器当中都有分布,它可以对非结构的日志进行解析,然后把解析的结果传输到分布式搜索引擎中;分布式搜索引擎可以完成全文检索的功能,属于储存日志的中央系统;而Kibana组件的存在不仅可以对分布式搜索引擎中的日志进行可视化操作[2],还可以进行统计分析和高级搜索。
但是日记采集工具及要完成对日志的采集工作又要完成解析工作,这样不仅会致系统的性能下降,严重的时候还会影响工作的进展。
而Beats的推广和应用有效解决了这一问题,图1为Beatsde在系统框架中的应用:Beats在进行信息采集和解析工作的时候可以针对不同的日志格式和来源使用不同的采集器,Beats采集器包括了5中不同种类和功能的日志采集器,分别为:Filebeat、Metricbest、Packetbeat、Winlogbeat、Heartbeat。
ELK日志分析系统

ELK⽇志分析系统⼀、ELK 概述1、ELK简介 ELK平台是⼀套完整的⽇志集中处理解决⽅案,将 ElasticSearch、Logstash 和 Kiabana 三个开源⼯具配合使⽤,完成更强⼤的⽤户对⽇志的查询、排序、统计需求。
ElasticSearch:是基于Lucene(⼀个全⽂检索引擎的架构)开发的分布式存储检索引擎,⽤来存储各类⽇志。
Elasticsearch 是⽤ Java 开发的,可通过 RESTful Web 接⼝,让⽤户可以通过浏览器与 Elasticsearch 通信。
Elasticsearch 是个分布式搜索和分析引擎,优点是能对⼤容量的数据进⾏接近实时的存储、搜索和分析操作。
Logstash:作为数据收集引擎。
它⽀持动态的从各种数据源搜集数据,并对数据进⾏过滤、分析、丰富、统⼀格式等操作,然后存储到⽤户指定的位置,⼀般会发送给 Elasticsearch。
Logstash 由JRuby 语⾔编写,运⾏在 Java 虚拟机(JVM)上,是⼀款强⼤的数据处理⼯具,可以实现数据传输、格式处理、格式化输出。
Logstash 具有强⼤的插件功能,常⽤于⽇志处理。
Kiabana:是基于 Node.js 开发的展⽰⼯具,可以为 Logstash 和 ElasticSearch 提供图形化的⽇志分析 Web 界⾯展⽰,可以汇总、分析和搜索重要数据⽇志。
Filebeat:轻量级的开源⽇志⽂件数据搜集器。
通常在需要采集数据的客户端安装 Filebeat,并指定⽬录与⽇志格式,Filebeat 就能快速收集数据,并发送给 logstash 进⾏解析,或是直接发给 Elasticsearch 存储,性能上相⽐运⾏于 JVM 上的 logstash 优势明显,是对它的替代。
2、为什么要使⽤ ELK ⽇志主要包括系统⽇志、应⽤程序⽇志和安全⽇志。
系统运维和开发⼈员可以通过⽇志了解服务器软硬件信息、检查配置过程中的错误及错误发⽣的原因。
使用ELK进行日志分析

使⽤ELK进⾏⽇志分析0x01 前⾔:前段时间做应急,总是需要溯源分析,痛点是数据量⽐较⼤,想要短时间能分析出来。
再者就是之前在调查某酒店事件的时候特别羡慕某产商有各种分析溯源⼯具。
反思过后,终于在没有那么忙的时候开始搭建平台,开始采坑0x02 ELK搭建:firewalld的基本使⽤启动: systemctl start firewalld查看状态: systemctl status firewalld停⽌: systemctl disable firewalld禁⽤: systemctl stop firewalld我安装的是⼀个精简版的centos7,所以需要安装Java环境rpm -qa | grep java*yum install java-1.8.0-openjdk* -yrpm -ivh kibana-6.4.2-x86_64.rpmrpm -ivh logstash-6.4.2.rpmrpm -ivh elasticsearch-6.4.2.rpmyum install gcc-c++修改配置⽂件vim /etc/logstash/logstash.ymlvim /etc/elasticsearch/elasticsearch.ymlvim /etc/kibana/kibana.yml启动服务systemctl start logstash.servicesystemctl start elasticsearch.servicesystemctl start kibana.service利⽤redis作为输⼊源:tar zxvf redis-5.0.0.tar.gzcd redis-5.0.0make && make install修改redis.conf。
bind 0.0.0.0protected-mode nodaemonize yesmaxclients 1000000启动redismv redis.conf /etc/redis-server /etc/redis.conf汉化:python main.py /usr/share/kibana chrome插件:。
ELK日志分析系统

ELK日志分析系统ELK日志分析系统是一种常用的开源日志管理和分析平台。
它由三个主要组件组成,即Elasticsearch、Logstash和Kibana,分别用于收集、存储、分析和可视化日志数据。
本文将介绍ELK日志分析系统的原理、特点和应用场景等。
ELK日志分析系统具有以下几个特点。
首先,它是一个开源系统,用户可以自由获取、使用和修改代码,满足各种定制化需求。
其次,它具有高度的可扩展性和灵活性,可以处理海量的日志数据,并支持实时查询和分析。
再次,它采用分布式架构,可以部署在多台服务器上,实现高可用性和负载均衡。
最后,它提供了丰富的可视化工具和功能,让用户可以直观地了解和分析日志数据,发现潜在的问题和异常。
ELK日志分析系统在各种场景下都有广泛的应用。
首先,它可以用于系统日志的监控和故障诊断。
通过收集和分析系统的日志数据,可以及时发现和解决问题,保证系统的正常运行。
其次,它可以用于应用程序的性能监控和优化。
通过分析应用程序的日志数据,可以找到性能瓶颈和潜在的问题,并采取相应的措施进行优化。
再次,它可以用于网络安全监控和威胁检测。
通过分析网络设备和服务器的日志数据,可以及时发现并应对潜在的安全威胁。
最后,它还可以用于业务数据分析和用户行为追踪。
通过分析用户的访问日志和行为日志,可以了解用户的偏好和行为模式,为业务决策提供依据。
然而,ELK日志分析系统也存在一些挑战和限制。
首先,对于大规模的日志数据,ELK系统需要消耗大量的存储和计算资源,对硬件设施和系统性能要求较高。
其次,ELK系统对日志的结构有一定的要求,如果日志数据过于复杂或不规范,可能会造成数据解析和处理的困难。
再次,ELK系统对于数据的实时性要求较高,以保证用户能够在短时间内获取到最新的数据和分析结果。
最后,对于非技术人员来说,ELK系统的配置和使用可能较为复杂,需要一定的培训和专业知识。
总之,ELK日志分析系统是一种功能强大且灵活的日志管理和分析工具,可以帮助用户实现日志数据的收集、存储、分析和可视化展示。
基于ELK架构的日志分析系统研究与实践

基于ELK架构的日志分析系统研究与实践作者:王军利杨卫中来源:《中国信息化》2020年第09期在传统的基于IOE集中架构的IT系统中,部署的主机及软件数量较少,产生的日志种类和数量也较少;随着互联网技术的快速发展,“平台+应用”的分布式架构成为主流,主机数量和软件规模急剧增加,日志分析变得日益困难。
本文主要针对基于ELK架构的日志分析系统进行研究,实现对分布式部署的主机和软件日志进行收集、分析、存储,并提供良好的UI界面进行数据展示、快速搜索、处理分析等功能,从而提升日志分析、问题定位、性能优化等工作的效率。
随着新一代BSS的上线,IT系统架构发生了巨大变化,从传统的IOE集中架构过渡为当前流行的“平台+应用”的分布式架构。
目前新一代BSS系统运行在近500台x86物理机和虚拟机上,众多的主机、组件及应用,每天合计产生TB级的日志,这些日志往往被运维人员忽略,加上日志分析工具的缺乏,这些日志远没有被有效利用起来。
因此,对各组件、各环节、各路径的日志的分析与管控,是传统业务运维走向“统一管控、智能运营”目标的重要手段,是满足IT系统开放、敏捷、智能化要求的重要保障。
在复杂的分布式的主机及应用集群中,记录日志的方式多种多样,且不易归档,以及无法提供有效的日志监控手段等,无论是开发人员还是运维人员都无法高效搜索日志内容从而快速准确定位问题,因此迫切需要一个集中的、独立的、能够收集管理各个应用和服务器上的日志,并提供良好的UI界面进行数据展示、快速搜索、處理分析等功能的工具或系统。
经过分析研究,基于开源ELK组件的日志分析系统(以下简称该系统)提供了相应的解决方案,该方案能高效、简便的满足以上场景。
(一)ELK架构及特点ELK架构主要由ElasticSearch、Logstash和Kibana等三个开源软件组成,其中E (ElasticSearch,也简称ES)是分布式搜索引擎,完成搜索、分析、存储数据等功能;L (Logstash)是收集、分析、过滤日志的工具,支持多种数据获取方式;K(Kibana)为EL提供友好的日志分析Web界面,并可以汇总、分析和搜索日志。
基于ELK的实时日志分析系统

基于ELK的实时日志分析系统ELK是一个开源的日志管理工具,它由三个独立但协作的组件组成:Elasticsearch、Logstash和Kibana。
ELK可以用于实时的日志分析,它可以帮助用户在大量的日志数据中实时、可视化和分析数据。
首先,Elasticsearch是一个分布式引擎,它可以快速地存储、和分析大规模的数据。
它使用倒排索引的方式来存储数据,并提供了灵活的全文、过滤和聚合功能。
对于实时日志分析系统来说,Elasticsearch可以作为一个集中的存储和索引引擎,用于存储和检索大量的日志数据。
其次,Logstash是一个用于数据收集、转换和发送的工具。
它可以从不同的数据源中收集日志数据,如文件、数据库、网络等,并对数据进行预处理、清洗和转换。
同时,Logstash也可以将处理后的数据发送到不同的目标,如Elasticsearch、消息队列等。
对于实时日志分析系统来说,Logstash可以负责收集应用程序生成的日志数据,并将其发送到Elasticsearch中进行索引和存储。
最后,Kibana是一个用于可视化和分析数据的工具。
它提供了一个直观的Web界面,用户可以通过查询和过滤数据来生成各种图表和图形,如柱状图、饼图、地图等。
Kibana还支持用户创建自定义的仪表板和报表,以便更方便地监控和分析日志数据。
对于实时日志分析系统来说,Kibana可以作为一个前端界面,供用户可视化和分析存储在Elasticsearch中的日志数据。
基于ELK的实时日志分析系统可以帮助用户实时地监控和分析应用程序的日志数据。
用户可以通过Kibana的查询功能,快速和过滤感兴趣的日志数据,并通过可视化工具生成图表和报表。
这样,用户可以更方便地分析日志数据,并及时发现应用程序的异常和问题。
此外,ELK还具有高可靠性和可扩展性的特点。
Elasticsearch作为一个分布式系统,可以水平地扩展以处理大规模的数据,并提供高可用性和容错性。
ELK日志分析系统

ELK日志分析系统ELK日志分析系统(Elasticsearch, Logstash, Kibana)是一种用于实时数据分析和可视化的开源工具组合。
它结合了Elasticsearch、Logstash和Kibana这三个工具,可对大量的日志数据进行收集、存储、和分析,并通过直观的可视化界面展示分析结果。
本文将对ELK日志分析系统的原理、功能和应用进行介绍。
2. 数据存储和索引:ELK日志分析系统使用Elasticsearch作为底层存储和索引引擎。
Elasticsearch是一个高性能、分布式的和分析引擎,能够实时地处理大规模的数据,并提供复杂的、聚合和分析功能。
Elasticsearch使用倒排索引来加快速度,并支持多种查询和分析方式,如全文、聚合查询、时序分析等。
3. 数据和查询:ELK日志分析系统通过Elasticsearch提供强大的和查询功能。
用户可以使用简单的关键字查询或复杂的过滤条件来和筛选数据。
同时,Elasticsearch还支持模糊、近似和正则表达式等高级方式,以便更精确地找到所需的数据。
4. 数据可视化和分析:ELK日志分析系统的另一个重要功能是数据的可视化和分析。
通过Kibana工具,用户可以创建自定义的仪表板和图表,展示日志数据的各种指标和趋势。
Kibana支持多种图表类型,如柱状图、折线图、饼图等,并提供交互式过滤和数据透视功能,以帮助用户更好地理解和分析数据。
ELK日志分析系统在实际应用中具有广泛的用途。
首先,它可以用于系统监控和故障排查。
通过收集和分析系统日志,可以实时监控系统的运行状态,并及时发现和解决潜在的问题。
其次,ELK日志分析系统可以用于安全事件检测和威胁分析。
通过分析网络和应用日志,可以识别潜在的安全威胁,提高系统的安全性。
此外,ELK日志分析系统还可以用于运营分析、业务分析和市场分析等领域,帮助企业更好地理解和利用日志数据,提升业务效率和竞争力。
总之,ELK日志分析系统是一种功能强大的实时数据分析和可视化工具组合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
日志分析系统目录一. 背景介绍 (2)二.日志系统比较 (2)1.怎样收集系统日志并进行分析 (2)A.实时模式: (2)B.准实时模式 (2)2.常见的开源日志系统的比较 (3)A. FaceBook的Scribe (3)B. Apache的Chukwa (3)C. LinkedIn的Kafka (4)E. 总结 (8)三.较为成熟的日志监控分析工具 (8)1.ELK (9)A.ELK 简介 (9)B.ELK使用场景 (10)C.ELK的优势 (10)D.ELK的缺点: (11)2.EFK (11)3. Logstash 于FluentD(Fluentd)对比 (11)一. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1)构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2)支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;(3)具有高可扩展性。
即:当数据量增加时,可以通过增加节点进行水平扩展。
二.日志系统比较1.怎样收集系统日志并进行分析A.实时模式:1 在打印日志的服务器上部署agent2 agent使用低耗方式将日志增量上传到计算集群3 计算集群解析日志并计算出结果,尽量分布式、负载均衡,有必要的话(比如需要关联汇聚)则采用多层架构4 计算结果写入最适合的存储(比如按时间周期分析的结果比较适合写入Time Series模式的存储)5 搭建一套针对存储结构的查询系统、报表系统补充:常用的计算技术是stormB.准实时模式1 在打印日志的服务器上部署agent2 agent使用低耗方式将日志增量上传到缓冲集群3 缓冲集群将原始日志文件写入hdfs类型的存储4 用hadoop任务驱动的解析日志和计算5 计算结果写入hbase6 用hadoop系列衍生的建模和查询工具来产出报表补充:可以用hive来帮助简化2.常见的开源日志系统的比较A. FaceBook的ScribeScribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。
它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。
它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。
特点:容错性好。
当后端的存储系统crash时,scribe会将数据写到本地磁盘上,当存储系统恢复正常后,scribe将日志重新加载到存储系统中。
架构:scribe的架构比较简单,主要包括三部分,分别为scribe agent, scribe和存储系统。
(1) scribe agentscribe agent实际上是一个thrift client。
向scribe发送数据的唯一方法是使用thrift client, scribe内部定义了一个thrift接口,用户使用该接口将数据发送给server。
(2) scribescribe接收到thrift client发送过来的数据,根据配置文件,将不同topic 的数据发送给不同的对象。
scribe提供了各种各样的store,如 file, HDFS 等,scribe可将数据加载到这些store中。
(3) 存储系统存储系统实际上就是scribe中的store,当前scribe支持非常多的store,包括file(文件),buffer(双层存储,一个主储存,一个副存储),network(另一个scribe服务器),bucket(包含多个 store,通过hash的将数据存到不同store中),null(忽略数据),thriftfile(写到一个Thrift TFileTransport 文件中)和multi(把数据同时存放到不同store中)。
B. Apache的Chukwachukwa是一个非常新的开源项目,由于其属于hadoop系列产品,因而使用了很多hadoop的组件(用HDFS存储,用mapreduce处理数据),它提供了很多模块以支持hadoop集群日志分析。
需求:(1) 灵活的,动态可控的数据源(2) 高性能,高可扩展的存储系统(3) 合适的框架,用于对收集到的大规模数据进行分析架构:Chukwa中主要有3种角色,分别为:adaptor,agent,collector。
(1) Adaptor 数据源可封装其他数据源,如file,unix命令行工具等目前可用的数据源有:hadoop logs,应用程序度量数据,系统参数数据(如linux cpu使用流率)。
(2) HDFS 存储系统Chukwa采用了HDFS作为存储系统。
HDFS的设计初衷是支持大文件存储和小并发高速写的应用场景,而日志系统的特点恰好相反,它需支持高并发低速率的写和大量小文件的存储。
需要注意的是,直接写到HDFS上的小文件是不可见的,直到关闭文件,另外,HDFS不支持文件重新打开。
(3) Collector和Agent为了克服(2)中的问题,增加了agent和collector阶段。
Agent的作用:给adaptor提供各种服务,包括:启动和关闭adaptor,将数据通过HTTP传递给Collector;定期记录adaptor状态,以便crash后恢复。
Collector的作用:对多个数据源发过来的数据进行合并,然后加载到HDFS中;隐藏HDFS实现的细节,如,HDFS版本更换后,只需修改collector即可。
(4) Demux和achieving直接支持利用MapReduce处理数据。
它内置了两个mapreduce作业,分别用于获取data和将data转化为结构化的log。
存储到data store(可以是数据库或者HDFS等)中。
C. LinkedIn的KafkaKafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群。
设计目标:(1) 数据在磁盘上的存取代价为O(1)(2) 高吞吐率,在普通的服务器上每秒也能处理几十万条消息(3) 分布式架构,能够对消息分区(4) 支持将数据并行的加载到hadoop架构:Kafka实际上是一个消息发布订阅系统。
producer向某个topic发布消息,而consumer订阅某个topic的消息,进而一旦有新的关于某个topic的消息,broker会传递给订阅它的所有consumer。
在kafka中,消息是按topic组织的,而每个topic又会分为多个partition,这样便于管理数据和进行负载均衡。
同时,它也使用了zookeeper进行负载均衡。
Kafka中主要有三种角色,分别为producer,broker和consumer。
(1) ProducerProducer的任务是向broker发送数据。
Kafka提供了两种producer接口,一种是low_level接口,使用该接口会向特定的broker的某个topic下的某个partition发送数据;另一种那个是high level接口,该接口支持同步/异步发送数据,基于zookeeper的broker自动识别和负载均衡(基于Partitioner)。
其中,基于zookeeper的broker自动识别值得一说。
producer可以通过zookeeper获取可用的broker列表,也可以在zookeeper中注册listener,该listener在以下情况下会被唤醒:a.添加一个brokerb.删除一个brokerc.注册新的topicd.broker注册已存在的topic当producer得知以上时间时,可根据需要采取一定的行动。
(2) BrokerBroker采取了多种策略提高数据处理效率,包括sendfile和zero copy等技术。
(3) Consumerconsumer的作用是将日志信息加载到中央存储系统上。
kafka提供了两种consumer接口,一种是low level的,它维护到某一个broker的连接,并且这个连接是无状态的,即,每次从broker上pull数据时,都要告诉broker数据的偏移量。
另一种是high-level 接口,它隐藏了broker的细节,允许consumer 从broker上push数据而不必关心网络拓扑结构。
更重要的是,对于大部分日志系统而言,consumer已经获取的数据信息都由broker保存,而在kafka中,由consumer自己维护所取数据信息。
D. Cloudera的FlumeFlume是cloudera于2009年7月开源的日志系统。
它内置的各种组件非常齐全,用户几乎不必进行任何额外开发即可使用。
设计目标:(1) 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。
Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。
),Store on failure(这也是scribe采用的策略,当数据接收方crash 时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。
(2) 可扩展性Flume采用了三层架构,分别问agent,collector和storage,每一层均可以水平扩展。
其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。
(3) 可管理性所有agent和colletor由master统一管理,这使得系统便于维护。
用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。
Flume提供了web 和shell script command两种形式对数据流进行管理。
(4) 功能可扩展性用户可以根据需要添加自己的agent,colletor或者storage。
此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage (file,HDFS等)。
架构:正如前面提到的,Flume采用了分层架构,由三层组成,分别为agent,collector和storage。
其中,agent和collector均由两部分组成:source和sink,source 是数据来源,sink是数据去向。
(1) agentagent的作用是将数据源的数据发送给collector,Flume自带了很多直接可用的数据源(source)(2) collectorcollector的作用是将多个agent的数据汇总后,加载到storage中。