Elasticsearch系列组件:Beats高效的日志收集和传输解决方案

这篇具有很好参考价值的文章主要介绍了Elasticsearch系列组件:Beats高效的日志收集和传输解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。

Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布式的多用户能力,实时的分析,以及对复杂搜索语句的处理能力,使其在众多场景下,如企业搜索,日志和事件数据分析等,都有广泛的应用。

本文将介绍 Elastic Stack 组件 Beats 的介绍、原理、安装与简单使用。



1、Beats介绍
1.1、Beats简介

Beats 是 Elastic Stack 的一部分,它是一系列轻量级的数据采集器。Beats 可以在你的服务器上采集各种类型的数据,并将这些数据发送到 Elasticsearch 或者 Logstash 进行后续处理。

主要功能和用途:

  1. 数据采集:Beats 可以采集各种类型的数据,包括日志文件(Filebeat)、网络数据(Packetbeat)、系统和服务的运行指标(Metricbeat)、Windows 事件日志(Winlogbeat)等。
  2. 数据转发:Beats 可以将采集到的数据发送到 Elasticsearch 进行索引,也可以发送到 Logstash 进行更复杂的处理。
  3. 轻量级:Beats 设计的目标是轻量级和低资源占用,因此它可以在所有类型的服务器上运行,甚至包括在 IoT 设备上。
  4. 易于扩展:Beats 提供了开发者指南,用户可以根据自己的需求编写自定义的 Beats。

总的来说,Beats 是 Elastic Stack 中负责数据采集的组件,它可以帮助用户轻松地从各种源头采集数据,并将数据发送到 Elasticsearch 或 Logstash 进行后续的处理和分析。

Elasticsearch系列组件:Beats高效的日志收集和传输解决方案,数据库,elasticsearch,大数据,搜索引擎

1.2、Beats系列组件

Beats 不是一个单独的软件,而是一系列的数据采集器。每一个 Beat 都是一个独立的组件,负责采集特定类型的数据,并将这些数据发送到 Elasticsearch 或者 Logstash 进行后续处理。例如,Filebeat 专门用于收集和转发日志文件,Metricbeat 用于收集系统和服务的运行指标,Packetbeat 用于收集网络流量数据等。

  1. Filebeat:主要用于收集和转发日志文件。它可以监控指定的日志目录或文件,当日志更新时,Filebeat 就会读取更新的内容并发送到 Elasticsearch 或 Logstash。使用场景包括日志分析、故障排查等。

  2. Metricbeat:用于收集系统和服务的运行指标,如 CPU 使用率、内存使用量、网络流量、磁盘 I/O 等。它可以定期收集这些指标并发送到 Elasticsearch 或 Logstash。使用场景包括系统监控、性能分析等。

  3. Packetbeat:用于收集网络流量数据。它可以实时捕获网络流量,然后解析出各种协议的信息(如 HTTP、MySQL、Redis 等),并将这些信息发送到 Elasticsearch 或 Logstash。使用场景包括网络监控、安全分析等。

  4. Winlogbeat:专门用于收集 Windows 事件日志。它可以读取 Windows 事件日志,然后将日志数据发送到 Elasticsearch 或 Logstash。使用场景包括 Windows 系统监控、安全分析等。

  5. Auditbeat:用于收集 Linux 审计框架的数据,以及文件的改变数据。它可以帮助你了解在系统上发生了什么,包括哪些文件被改变,以及系统调用等。使用场景包括系统审计、文件完整性检查等。

  6. Heartbeat:用于定期检查你的服务是否可用。它可以定期发送请求到你的服务,然后收集响应时间等信息,并将这些信息发送到 Elasticsearch 或 Logstash。使用场景包括服务监控、可用性检查等。

1.3、Beats组件安装

我们这里以安装 Beats 系列组件之一的 Filebeat 为例

Elastic 公司的官方下载页面的链接。在这个页面上,你可以下载 Elastic Stack 的各个组件,包括 Elasticsearch、Kibana、Logstash、Beats 等。这个页面提供了各个组件的最新版本下载链接,以及历史版本的下载链接:Past Releases of Elastic Stack Software | Elastic

在这里,我们将选择 filebeat,并确保所选的 filebeat 版本与我们正在使用的 Elasticsearch 版本一致:

Elasticsearch系列组件:Beats高效的日志收集和传输解决方案,数据库,elasticsearch,大数据,搜索引擎

选择后选择「Download」开始下载,并在下载成功后解压到指定位置即可。


2、使用FileBeat对接ES,监控logback日志
2.1、使用FileBeat对接ES,监控logback日志

使用 Filebeat 对接 Elasticsearch 监控 logback 日志,可以按照以下步骤进行:

  1. 安装 Filebeat:根据你的操作系统,从 Elastic 官网下载并安装 Filebeat;
  2. 配置 Filebeat:在 Filebeat 的配置文件(通常是 filebeat.yml)中,需要配置两个主要部分,一是输入(input),二是输出(output)。

输入:指定 Filebeat 需要收集的日志文件的位置。如果你的 logback 日志文件位于 /var/log/app/*.log,那么可以这样配置:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/app/*.log

输出:指定 Filebeat 将数据发送到哪里。如果你的 Elasticsearch 服务运行在 localhost:9200,那么可以这样配置:

output.elasticsearch:
  hosts: ["localhost:9200"]
  1. 启动 Filebeat:保存并关闭配置文件后,运行 Filebeat。在命令行中,可以使用以下命令启动 Filebeat:
./filebeat -e
  1. 验证数据是否已经发送到 Elasticsearch:你可以查询 Elasticsearch 来验证是否已经接收到来自 Filebeat 的数据。例如,你可以在 Kibana 中查看这些数据,或者直接查询 Elasticsearch 的 API。

以上就是使用 Filebeat 对接 Elasticsearch 监控 logback 日志的基本步骤。在实际操作中,可能还需要根据你的具体需求进行一些额外的配置,例如设置多个输入源、配置日志旋转、添加字段等。

2.2、测试查看效果

我们使用 Python 实现一个生成日志文件的简单脚本

import time
import random
import os

def generate_log():
    log_file = os.path.expanduser('~/test.log')

    # 如果文件不存在,则创建文件
    if not os.path.exists(log_file):
        with open(log_file, 'w') as file:
            pass

    while True:
        current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        operation = random.choice(["操作1", "操作2", "操作3"])  # 随机选择操作信息

        log = f"{current_time} - {operation}\n"

        with open(log_file, 'a') as file:
            file.write(log)

        print(log)  # 在控制台打印日志信息

        time.sleep(60)  # 暂停60秒,即每分钟插入一条日志

if __name__ == '__main__':
    generate_log()

这个脚本使用了timerandom模块。在generate_log函数中,通过time.strftime函数获取当前时间,并使用random.choice函数随机选择操作信息。然后将时间和操作信息拼接成一条日志,并使用with open语句打开/var/log/test.log文件,以追加模式写入日志。最后使用time.sleep函数暂停60秒,即每分钟插入一条日志。

2.3、查看效果

可以通过 kinada 查看效果:

Elasticsearch系列组件:Beats高效的日志收集和传输解决方案,数据库,elasticsearch,大数据,搜索引擎


3、Beats数据处理原理
3.1、Beats数据处理原理

Beats 是 Elastic Stack(以前称为 ELK Stack)的一部分,主要负责数据收集。它包括多种类型的 Beat,如 Filebeat、Metricbeat、Packetbeat、Auditbeat 等,每种 Beat 都负责收集一种特定类型的数据。

以下是 Beats 数据收集的基本原理:

  1. 数据收集:每种 Beat 都会在运行的主机上收集特定类型的数据。例如,Filebeat 会收集日志文件,Metricbeat 会收集系统和服务的指标,Packetbeat 会收集网络流量数据,Auditbeat 会收集审计数据。

  2. 数据处理:在收集数据之后,Beat 可以对数据进行一些处理,如解析、归一化、丰富等。这是通过配置文件中的处理器(processor)来完成的。

  3. 数据输出:处理过的数据会被发送到配置的输出目标。Beat 支持多种类型的输出,如 Elasticsearch、Logstash、Kafka、Redis 等。最常见的配置是将数据发送到 Elasticsearch,以便在 Kibana 中进行搜索和可视化。

  4. 数据转发:在某些情况下,Beat 可以将数据发送到 Logstash 进行更复杂的处理,然后再由 Logstash 将数据发送到 Elasticsearch。

  5. 模块和集成:为了简化配置和使用,Beat 提供了一系列的模块和集成,可以方便地收集、解析和可视化特定服务(如 Nginx、MySQL、Docker 等)的数据。

总的来说,Beats 的工作原理就是在主机上收集数据,处理数据,然后将数据发送到输出目标。

3.2、Beats和Logstash

Beats 和 Logstash 都是 Elastic Stack 的组件,主要负责数据的收集和处理,但它们的功能和使用场景有所不同。

Beats 是一系列轻量级的数据收集器,每种 Beat 都负责收集一种特定类型的数据。例如,Filebeat 用于收集日志文件,Metricbeat 用于收集系统和服务的指标。Beats 的主要优点是轻量级和低资源消耗,可以直接在数据源(如服务器或容器)上运行。

Logstash 是一个强大的数据处理管道工具,可以接收来自多种源的数据,对数据进行复杂的转换和处理,然后将数据发送到多种目标。Logstash 的主要优点是功能强大和灵活,可以处理各种格式的数据,并支持多种输入、过滤器和输出插件。

以下是 Beats 和 Logstash 的一些主要区别:

  • 资源消耗:Beats 是轻量级的,通常在数据源上运行,占用的资源较少。Logstash 功能更强大,但占用的资源也更多,通常在单独的服务器或容器上运行。

  • 数据处理能力:Beats 的数据处理能力较弱,主要进行简单的数据解析和丰富。Logstash 的数据处理能力强,可以进行复杂的数据转换和处理。

  • 使用场景:如果你只需要收集特定类型的数据,并且数据处理需求较简单,那么使用 Beats 可能更合适。如果你需要处理各种格式的数据,或者需要进行复杂的数据处理,那么使用 Logstash 可能更合适。

在实际使用中,Beats 和 Logstash 通常会一起使用。例如,你可以使用 Beats 在服务器上收集数据,然后将数据发送到 Logstash 进行处理,最后由 Logstash 将处理过的数据发送到 Elasticsearch。文章来源地址https://www.toymoban.com/news/detail-713400.html

到了这里,关于Elasticsearch系列组件:Beats高效的日志收集和传输解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 部署Filebeat收集日志并转发到Elasticsearch

    Filebeat用于日志收集和传输,相比Logstash更加轻量级和易部署,对系统资源开销更小,如果对于日志不需要进行过滤分析的,可以直接使用filebeat。 这样就可以实现动态收集日志的功能了,但是这样有一点风险,logstash采集本地log4j产生的日志,然后输入进es里,如果吞吐量太大

    2024年02月16日
    浏览(29)
  • linux安装filebeat并收集日志到elasticsearch

    通过filebeat收集服务器上各个应用的日志到elasticsearch,通过tags区分不同的应用创建不同的索引保存日志。 https://www.elastic.co/cn/downloads/past-releases#filebeat 1:下载并解压(以7.9.3版本为例) 2:修改配置文件filebeat.yml filebeat.inputs: - type: log   enabled: true   paths:     - /logs/app1*.log  

    2024年02月01日
    浏览(38)
  • 搭建EFK(Elasticsearch+Filebeat+Kibana)日志收集系统[windows]

    EFK简介 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。 FileBeats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然

    2024年02月08日
    浏览(44)
  • k8s日志收集组件 Grafana loki --- 理论篇

    当我们在k8s上运行程序时,习惯的会使用ELK来收集和查询程序运行日志。今天我们介绍一款新的专为日志收集而生的神器:Grafana loki。Grafana Loki 是一组组件,可以组合成一个功能齐全的日志堆栈。 与其他日志记录系统不同,Loki 仅构建索引有关日志的元数据:标签(就像 P

    2024年02月10日
    浏览(37)
  • 基于Elasticsearch + Fluentd + Kibana(EFK)搭建日志收集管理系统

    目录 1、EFK简介 2、EFK框架 2.1、Fluentd系统架构 2.2、Elasticsearch系统架构

    2024年02月11日
    浏览(28)
  • filebeat+kafka+logstash+elasticsearch+kibana实现日志收集解决方案

    前言:我们使用nginx来模拟产生日志的服务,通过filebeat收集,交给kafka进行消息队列,再用logstash消费kafka集群中的数据,交给elasticsearch+kibana监控 服务器环境: 192.168.2.1:elasticsearch 192.168.2.2:filebeat+nginx 192.168.2.3:kafka 192.168.2.4:logstash elasticseatch+filebeat+kafka+logsstash(6.60)清

    2024年02月03日
    浏览(41)
  • 基于Elasticsearch+Logstash+Kibana+Filebeat的日志收集分析及可视化

    sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a apt update tail -f /var/log/car.log 海量的业务应用,也带来了海量的日志数据,给业务应用的运维带来了新的挑战。例如,我们常用的网约车应用,单个平台的日订单数量可以达到上亿条,产生各种类型的日志数据,像用户业务方面会产生交

    2024年01月21日
    浏览(48)
  • 5、Elasticsearch7.6.1 filebeat介绍及收集kafka日志到es示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(40)
  • K8s部署轻量级日志收集系统EFK(elasticsearch + filebeat + kibana)

    目录 K8s部署EFK(elasticsear + filebeat + kibana)日志收集 一.准备镜像 二.搭建Elasticsearch + kibana 1.在可执行kubectl命令的服务器准备安装的yml文件 2.在elasticsearch-kibana目录下创建配置文件elasticsearch.yml 3.创建kibana配置文件kibana.yml 4.在k8s中创建elasticsearch和kibana的配置文件configmap 5.检查

    2024年02月08日
    浏览(54)
  • docker搭建最新ELFK分布式日志收集系统(elasticsearch+logstash+filebeats+kibana7.16.1)

    随着分布式项目的集群部署,日志的存储也分散开来,在日后出现问题进行日志定位时就会出现很困难,服务器很多会做负载均衡,这样最终请求所落在的服务器也随机起来,所以好的方式就是集中收集起来,不需要一台一台服务器去查,方便查看。 ELFK是Elasticsearch+Logstash+F

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包