Filebeat ➕ Logstash 将日志文件输出到 Elasticsearch 或 Amazon S3

这篇具有很好参考价值的文章主要介绍了Filebeat ➕ Logstash 将日志文件输出到 Elasticsearch 或 Amazon S3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

filebeat是什么

Filebeat 是一个开源的轻量级日志数据收集器,由 Elastic
公司开发。它主要用于实时收集、解析和传输日志数据,将日志数据从不同的源头(如文件、日志文件、系统日志等)传输到目标位置(如
Elasticsearch、Logstash 等),以便进行存储、分析和监控。

Filebeat 的主要特点包括:

  • 轻量级:Filebeat 非常轻量,占用系统资源少,适合在资源有限的环境中运行。
  • 实时性:Filebeat 可以实时监控日志文件的变化,一旦有新的日志产生,就会立即收集和传输。
  • 多源头支持:Filebeat 支持从多种来源收集数据,包括文件、日志文件、系统日志、网络流量等。
  • 数据解析:Filebeat 可以解析日志数据,支持多种输入格式,如 JSON、CSV 等,还可以根据需要添加标签、字段等。
  • 灵活配置:Filebeat 的配置灵活,可以根据需求配置多个输入、多个输出,还可以使用模块来简化特定类型数据的收集和处理。
  • 安全性:Filebeat 支持数据的加密传输,可以确保数据在传输过程中的安全性。
  • 集成性:Filebeat 可以和 Elasticsearch、Logstash、Kibana 等 Elastic Stack
    组件集成,方便进行数据的存储、分析和展示。

总之,Filebeat 是一个非常有用的工具,适用于从各种不同来源收集和传输日志数据,帮助用户更好地进行日志管理、监控和分析。

每一台生产日志数据的服务器都需要安装Filebeat

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/test-server/test-iot.log
  json.keys_under_root: true
  fields:
    index: 'iot_data_log'
- type: log
  enabled: true
  paths:
    - /var/log/aws-files/log/*/*.log
  fields:
    index: 'aws_s3'
- type: log
  enabled: true
  paths:
    - /var/log/test-server/test-data-statistics-device.log
  json.keys_under_root: true
  fields:
    index: 'data_statistics_device_log'
- type: log
  enabled: true
  paths:
    - /var/log/test-server/test-data-statistics-consumer.log
  json.keys_under_root: true
  fields:
    index: 'data_statistics_consumer_log'
- type: log
  enabled: true
  paths:
    - /var/log/test-server/test-data-statistics-warning.log
  json.keys_under_root: true
  fields:
    index: 'data_statistics_warning_log'
- type: log
  enabled: true
  paths:
    - /var/log/test-server/test-data-statistics-message.log
  json.keys_under_root: true
  fields:
    index: 'data_statistics_message_log'

#filebeat.config.modules:
#  path: ${path.config}/modules.d/*.yml
#  reload.enabled: false
#setup.template.settings:
#  index.number_of_shards: 5
#setup.kibana:

output.logstash:
  hosts: ["172.31.37.123:5044"]
  loadbalance: false

#processors:
#  - drop_fields:
#      fields: ["log","input","host","agent","ecs"]

logging.level: info
logging.to_files: true
logging.files:
  path: /var/log/filebeat
  name: filebeat.log
  keepfiles: 7
  permissions: 0644                                

这个配置文件指定了多个输入路径,每个输入路径都对应一个不同类型的日志。例如,第一个输入路径 /var/log/test-server/test-iot.log 表示从这个日志文件收集日志,并将其解析为 JSON 格式,然后添加一个字段 index,值为 ‘iot_data_log’。类似地,其他输入路径也有类似的配置。

最后,配置文件中的 output.logstash 部分指定了输出目标为 Logstash 服务器,主机地址为
172.31.37.123,端口为 5044。

这个配置文件的作用是,根据不同的输入路径和类型的日志,Filebeat 将日志数据收集并发送到 Logstash 进行进一步的处理和分发。

Logstash是什么

Logstash 是一个开源的数据收集、处理和传输工具,由 Elastic
公司开发。它主要用于从不同的数据源(如日志文件、数据库、消息队列等)收集数据,然后进行处理、转换和传输到目标位置(如
Elasticsearch、其他存储系统等),以便进行存储、分析和可视化

Logstash 的主要特点包括:

  • 多数据源支持:Logstash 支持从多种数据源收集数据,包括文件、日志文件、数据库、消息队列、网络流量等。
  • 数据处理:Logstash 提供强大的数据处理能力,可以对数据进行过滤、解析、转换和丰富,使数据更具有结构和可用性。
  • 插件系统:Logstash 支持丰富的插件系统,用户可以根据需要添加不同类型的输入、过滤器和输出插件,以适应不同的数据源和目标。
  • 灵活配置:Logstash 的配置文件使用简单的配置语言,可以灵活地定义数据流的输入、过程和输出。
  • 实时性:Logstash 可以实时监控数据源的变化,一旦有新的数据产生,就会立即进行处理和传输。
  • 数据传输:Logstash 可以将处理后的数据传输到多种目标,包括 Elasticsearch、其他存储系统、消息队列等。
  • 数据清洗:Logstash 可以清洗原始数据,去除噪音、重复和不必要的字段,以减小数据体积并提高数据质量。
  • 集成性:Logstash 可以和其他 Elastic Stack 组件(如 Elasticsearch、Kibana、Beats
    等)无缝集成,构建端到端的数据流解决方案。

总之,Logstash
是一个非常强大的数据收集和处理工具,适用于将各种类型的数据从不同的来源收集、处理和传输到目标位置,以支持数据分析、监控和可视化。

Logstash一般安装到中间件服务器

input { 
    beats {
        port => "5044"
    } 
}   
filter {
    ruby {
        code => "
            path = event.get('log')['file']['path']
            puts format('path = %<path>s', path: path)
            if (!path.nil?) && (!path.empty?)
                array = path.split('/')
                if array[-2] == 'User'
                    event.set('folder', array[-2] + '/' + event.get('@timestamp').time.strftime('%Y-%m-%d'))
                else
                    event.set('folder', array[-2] + '/' + array[-1].split('.')[0] + '/' + event.get('@timestamp').time.strftime('%Y-%m-%d'))
                end
            end
        "
    }
}
output {
    if [fields][index] == 'iot_data_log' {
        elasticsearch {
            action => "index"
            hosts => ["172.31.37.123:9200"]
            index => "iot_data_log"
        }
    }
    if [fields][index] == 'aws_s3' {
        s3 {
            access_key_id => "AKIATP4H2K"
            secret_access_key => "qB9KNwYPpl494UQ8yLhrh2ByAiCb6"
            region => "ap-northeast-1"
            bucket => "knt.private.test"
            size_file => 102400000
            time_file => 1440
            codec => line { format => "%{message}" }
            canned_acl => "private"
            prefix => "uat/%{folder}/"
            temporary_directory => "/var/log/logstash/tmp"
        }
    }
    if [fields][index] == 'data_statistics_consumer_log' {
        elasticsearch {
        action => "index"
        hosts => ["172.31.37.123:9200"]
        index => "data_statistics_consumer_log"
      }
    }
    if [fields][index] == 'data_statistics_device_log' {
      elasticsearch {
        action => "index"
        hosts => ["172.31.37.123:9200"]
        index => "data_statistics_device_log"
      }
    }
    if [fields][index] == 'data_statistics_message_log' {
      elasticsearch {
        action => "index"
        hosts => ["172.31.37.123:9200"]
        index => "data_statistics_message_log"
      }
    }
    if [fields][index] == 'data_statistics_warning_log' {
       elasticsearch {
        action => "index"
        hosts => ["172.31.37.123:9200"]
		        index => "data_statistics_warning_log"
      }
    }

}

这段代码是一个 Logstash 配置文件,用于处理日志数据并将其发送到不同的输出目的地。Logstash
是一个开源的数据收集和处理工具,常用于将不同来源的日志数据整合、转换和传输到各种目标系统。

这个配置文件的主要功能是:

  1. 从 Beats 输入插件接收数据,该插件监听在 5044 端口上的数据流。
  2. 使用 Ruby 过滤器插件来根据日志路径设置一个名为 ‘folder’ 的字段,用于确定日志应该存储在哪个目录中。
  3. 使用条件语句根据 [fields][index] 字段的值,将数据发送到不同的输出目标。根据 [fields][index]
    的值,可以确定数据是发送到 Elasticsearch 还是 Amazon S3 存储桶。
  4. 对于 Amazon S3 输出,配置了 S3 输出插件以将数据发送到指定的 S3 存储桶中。这里还设置了文件大小、文件时间和其他参数。
  5. 对于 Elasticsearch 输出,配置了 Elasticsearch 输出插件以将数据发送到指定的 Elasticsearch
    主机和索引中。

总之,这段配置文件的目的是根据输入的日志数据进行处理,并将其发送到 Elasticsearch 或 Amazon S3
存储桶中,以便后续的查询、分析和存储。文章来源地址https://www.toymoban.com/news/detail-670239.html

到了这里,关于Filebeat ➕ Logstash 将日志文件输出到 Elasticsearch 或 Amazon S3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

    学习如何从头开始搭建和部署ELKF日志系统,利用Elasticsearch、Logstash、Filebeat和Kibana来实现高效的数据采集、处理和可视化展示。跟随本教程,轻松构建稳定的日志系统。

    2024年02月05日
    浏览(52)
  • 【ELK企业级日志分析系统】部署Filebeat+Kafka+Logstash+Elasticsearch+Kibana集群详解(EFLFK)

    参见安装与部署ELK详解 参见安装与部署EFLK详解 参见安装与部署Zookeeper集群详解 1.1.1 为什么需要消息队列(MQ) MQ(Message Queue)主要原因是由于 在高并发环境下,同步请求来不及处理,请求往往会发生阻塞 。比如大量的并发请求,访问数据库,导致行锁表锁,最后请求线程会

    2024年02月16日
    浏览(49)
  • filebeat采集日志数据到kafka(一)(filebeat->kafka->logstash->es)

    一、filebeat安装 filebeat-kafka版本适配 1、安装包下载 https://www.elastic.co/cn/downloads/past-releases#filebeat 解压 2、新建yml配置文件,如test.yml 3、Filebeat启动和停止 启动:./filebeat -c test.yml 停止:kill -9 PID

    2024年02月16日
    浏览(89)
  • EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1. es安装(单节点部署) 前提 安装 2.es web 查看 浏览器访问 http://esIP:9200 或者本地访问curl ‘http://localhost:9200/?pretty’ 安

    2024年02月10日
    浏览(38)
  • 【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

    日志搜集系统搭建 基于7.17.16版本 ps: 项目是toB的,日志量不大 7.17.16版本。8.x版本需要JDK11 java8 elastic 软件不能以root用户启动,需要创建用户 redis elasticsearch kibana logstash filebeat 下载tar包,解压即可 es部署 配置ES_JAVA_HOME 略 elasticsearch.yml 修改config/elasticsearch.yml中参数 系统参数

    2024年01月16日
    浏览(44)
  • 利用logstash/filebeat/插件,将graylog日志传输到kafka中

    在System-outputs,选择GELF Output,填写如下内容,其它选项默认 在要输出的Stream中,选择Manage Outputs 选择GELF Output,右边选择刚才创建好的test。 下载logstash,最新版就可以。 上传到服务器,编写test.conf配置文件,内容如下 运行logstash,输入以下命令 前提:安装好kafka集群, 创建

    2024年02月13日
    浏览(44)
  • 使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

    书接上回:《ELK中Logstash的基本配置和用法》 默认情况下,Nginx的日志记录的是下面的格式: 在 nginx.conf 中也可以看到相关配置信息: 现在为了方便收集日志,我们把这里的格式改为 json格式,在 nginx.conf 中加入下面的内容: 以上配置是手动组装了一个json格式的配置信息。

    2024年02月11日
    浏览(48)
  • Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse

    一、ELK概述: ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。 Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。 本项目中主要通过Elasticsearch存储所有获取的日志。 Logst

    2024年02月12日
    浏览(56)
  • elasticSearch+kibana+logstash+filebeat集群改成https认证

    ps:主节点操作 切换用户:su es 进入目录:cd /home/es/elasticsearch-7.6.2 创建文件:vi instances.yml 生成证书:/home/es/elasticsearch-7.6.2/bin/elasticsearch-certutil cert ca --pem --in instances.yml --out certs.zip 解压得到各个证书:unzip certs.zip ps:三个节点 切换用户:su es 将解压得到的三个文件夹文件

    2024年02月09日
    浏览(43)
  • 使用Docker安装ELK(Elasticsearch+Logstash+Kibana)+filebeat____基于CentOS7.9

    目录 一、安装JDK 二、部署Elasticsearch 三、部署kibana 四、部署Logstash 五、部署filebeat 六、filebeat采集数据,logstash过滤,在kibana中显示 七、kibana增加索引 1、更新系统 2、安装Java 下面是安装OpenJDK的命令: 3、验证安装 1、查看是否安装docker 安装最新版的docker可能导致部分系统不

    2024年02月04日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包