1.ELFK架构设计
1.1 filebeta
Filebeat是一个开源的轻量级日志收集器,它能够收集并解析各种日志数据。Filebeat在系统日志、Web服务器日志、应用程序日志等方面有着广泛的应用。Filebeat具有高可用性、可扩展性、高效性等特点,能够满足大规模的日志收集需求。将filebeta作为日志收集工具的原因是logshtash是一个重量级日志收集工具,他对日志的处理非常消耗内存和cpu,使用filebeta来分担一些压力
1.2 kafka
随着 Beats 收集的每秒数据量越来越大,Logstash 可能无法承载这么大量日志的处理。所以引入kafka让Logstash 根据自身处理能力获取kafka消息日志处理,同时可以利用kafka消费组,同一消费组内消费者消费消息是轮询模式搭建Logstash 的伪集群,分担每台Logstash 的处理压力
1.3 logshtash
Logstash是一个开源的数据收集引擎,具有实时管道能力。它能够动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地进行存储。Logstash可以接收和转发日志或任何事件数据,这使其成为一个强大的数据管道,可以将不同的数据源进行整合并将它们发送到不同的目标。
Logstash的架构主要包含三个组件:Collect(数据输入)、Enrich(数据加工)和Transport(数据输出)。输入插件负责从数据源接收数据,数据加工插件负责处理和转换数据,输出插件负责将数据发送到目标位置。通过这三个组件的组合使用,Logstash可以实现复杂的数据处理和传输任务。
Logstash支持各种类型的输入和输出插件,可以轻松地从不同的数据源中捕获事件,例如文件、网络、数据库等。同时,Logstash还提供了丰富的过滤插件,如Grok、Date、Json等,用于解析、转换和丰富数据。通过这些插件的组合使用,Logstash可以轻松地处理各种类型的数据,并将其转换成所需的格式。
Logstash还具有可扩展性强的特点。它可以与其他开源技术配合使用,如Elasticsearch和Kibana,形成一个完整的日志分析系统。通过将Logstash与Elasticsearch结合使用,可以轻松地搜索、分析和可视化日志数据。此外,Logstash还可以与其他消息队列系统集成,如Kafka、RabbitMQ等,用于实现更高效的数据传输和处理。
1.4 es
ES日志存储具有以下优点:
- 高效性:ES日志存储使用分布式架构,可以高效地处理大量日志数据。它支持实时搜索和分析,并具有强大的聚合和过滤功能,可以快速地找到需要的信息。
- 可扩展性:ES日志存储具有高度的可扩展性,可以根据需要添加或减少节点,以适应不同规模的数据存储需求。
- 可靠性:ES日志存储具有数据备份和恢复功能,可以保证数据的可靠性和完整性。
- 灵活性:ES日志存储支持多种数据源和格式,可以轻松地与不同的应用程序和系统集成。
- 可视化能力:ES日志存储可以与Kibana等可视化工具集成,提供强大的数据可视化能力,可以帮助用户更好地理解和分析日志数据。
1.5 kabana
Kibana是一个开源的数据可视化平台,可以用于展示和分析日志数据。通过Kibana,用户可以轻松地创建自定义的仪表盘和报告,以展示日志数据的不同方面。
Kibana的工作原理是接收来自Elasticsearch的数据,并将其转换成图形和图表等形式,以便用户更好地理解和分析。Kibana支持多种类型的图表和可视化形式,包括柱状图、饼图、折线图、地理地图等,可以满足用户不同的需求。
使用Kibana展示日志数据需要先在Elasticsearch中存储日志数据,然后通过Kibana界面访问和分析这些数据。在Kibana中,用户可以通过简单的拖放操作来创建自定义的仪表盘和报告,并可以添加过滤器和其他查询条件来进一步限制和筛选数据。
2.ELFK和ELK区别
ELK和ELFK在架构上存在一些区别。总体来说,ELK是一个基于Elasticsearch、Logstash和Kibana的日志分析系统,而ELFK在ELK的基础上增加了filebeat,可以更好地收集资源日志。
- 数据收集方式:ELK和ELFK都支持从各种数据源收集日志,但ELFK加入了filebeat,可以更好地收集到资源日志。Filebeat是一个轻量级的数据收集器,可以用于收集各种类型的数据,如系统日志、应用程序日志、网络流量日志等。它通过读取文件或监听网络端口来收集数据,并支持将数据发送到kafka,Elasticsearch或Logstash进行处理。
- 数据处理方式:ELK和ELFK都支持对收集到的日志进行过滤、分析、丰富、统一格式等操作。ELK中的Logstash担当这个角色,而ELFK中的Logstash和filebeat共同完成这个任务,极大减轻了Logstash的压力。Filebeat将收集到的资源日志发送给kafka,Logstash根据自身处理能力从kafka拉取日志进行处理,然后将这些日志进行过滤、分析、丰富等操作后,存储到用户指定的位置。
- 数据存储方式:ELK和ELFK都支持将处理后的日志存储到Elasticsearch中进行搜索和分析。ELK中的Elasticsearch用于存储和分析日志数据,而ELFK中的Elasticsearch同样也担当这个角色。
- 数据展示方式:ELK和ELFK都支持通过Kibana对存储在Elasticsearch中的日志进行搜索和分析,并以统计图表的方式展示结果。ELK和ELFK在这方面的功能是一致的。