首页 > 其他分享 >Filebeat采集通用基于S3协议的对象存储作为输入源

Filebeat采集通用基于S3协议的对象存储作为输入源

时间:2023-11-13 10:01:32浏览次数:26  
标签:Filebeat 存储 S3 COS filebeat 日志

一 背景

随着云计算和大数据技术的快速发展,越来越多的组织和企业选择将数据存储在云端的对象存储服务中。对象存储服务提供了高可靠性、可扩展性和低成本的存储解决方案,因此成为了许多应用场景的首选。

S3(Simple Storage Service)是亚马逊AWS提供的一种对象存储服务,许多云厂商也提供了与S3类似的存储服务。S3协议定义了一套用于访问和管理存储在对象存储中的数据的API接口,使得开发者可以方便地存储、检索和管理大规模数据。

Filebeat是Elasticsearch家族中的一员,是一款轻量级的日志数据收集器。它可以监控指定的日志文件、日志目录或者标准输入,并将日志数据发送到指定的输出目的地,如Elasticsearch、Logstash等。Filebeat的设计目标是简单易用、占用资源少且高效。

结合Filebeat和S3协议,可以实现从基于S3协议的对象存储中采集数据作为Filebeat的输入源。这种架构具有很高的灵活性和可扩展性,可以满足各种场景下的数据采集需求。

通过配置Filebeat,可以指定要监控的S3桶和对象的位置信息,Filebeat将定期轮询S3桶,获取新的或更新的对象,并将其作为日志数据发送到指定的输出目的地。这样,我们就可以将存储在S3中的数据集成到日志分析和监控系统中,进行实时的数据分析和可视化展示,以及其他相关的数据处理和应用。通过利用Filebeat和S3协议,我们可以轻松地实现从基于S3协议的对象存储中采集数据作为输入源的方案,为日志数据的收集和处理提供了一种简单而灵活的解决方案。这种集成架构可以支持大规模的数据采集和处理,并且具有高可靠性和高性能的特点。 腾讯COS是腾讯云提供的分布式对象存储服务,可以存储和访问海量的非结构化数据。它提供了全球部署的存储桶(Bucket)机制,用户可以在不同的地域创建存储桶,将数据存储在离用户最近的地方,提供更低的访问延迟和更好的用户体验。腾讯COS还提供了数据冗余机制,确保数据的可靠性和持久性。华为云OBS是华为云提供的分布式对象存储服务,具有高可靠性和高扩展性。它采用多副本数据冗余和自动容灾机制,保证数据的安全和可靠性。华为云OBS还提供了全球统一的命名空间,用户可以通过统一的API接口访问全球各地的数据,实现跨地域、跨区域的数据复制和迁移。对于Filebeat来说,无论是腾讯COS还是华为云OBS,都可以作为其输入源。通过配置Filebeat,可以指定要监控的COS桶或OBS桶以及对象的位置信息,Filebeat会定期轮询桶,获取新的或更新的对象,并将其作为日志数据发送到指定的输出目的地。 通过将Filebeat与腾讯COS或华为云OBS集成,可以方便地将存储在对象存储中的数据采集到日志分析和监控系统中,进行实时的数据处理和应用。这种集成架构具有高可靠性、高扩展性和低成本的特点,适用于各种规模和类型的应用场景。

二 腾讯云配置

2.1 用户配置

腾讯云自用户创建并记录其AK信息,注意腾讯云子用户需具备对象存储权限

2.2 COS

创建bucket,用于存放日志

Filebeat采集通用基于S3协议的对象存储作为输入源_对象存储

腾讯云对象存储配置

请求:xuel-filebeat-source-1314364771.cos.ap-beijing.myqcloud.com
bucketname:xuel-filebeat-source-1314364771

三 Filebeat配置

利用filebeat module管理,开启aws,开启后也是在module.d 下将aws.yml 文件名改为正常,在filebeat.yml 配置中有加载modules.d/*.yml 配置

Filebeat采集通用基于S3协议的对象存储作为输入源_腾讯云_02

该filebeat 配置腾讯云对象存储需要在主filebeat.yml配置

[root@elk-host credential_file]# cd /etc/filebeat/
[root@elk-host filebeat]# ll
total 3868
-rw-r--r-- 1 root root 3745699 Sep 19 02:08 fields.yml
drwxr-xr-x 2 root root    4096 Oct 10 09:28 modules.d
[root@elk-host filebeat]# filebeat modules enable aws
Module aws is already enabled

配置对象存储信息

# cat filebeat.yml
- type: aws-s3
  path_style: true
  non_aws_bucket_name: "xuel-filebeat-source-1314364771"
  number_of_workers: 5
  bucket_list_interval: "300s"
  access_key_id: "AKIDxxxxxxxxxxxxxxS7pLpC"
  secret_access_key: "ITXXO3VxxxxxxxxxppgVBi"
  endpoint: "https://cos.ap-beijing.myqcloud.com"
  expand_event_list_from_field: Records
  default_region: "ap-beijing"

同理华为云obs也相同

filebeat.inputs:
- type: aws-s3
  path_style: true
  non_aws_bucket_name: "xuel-filebeat-source-obs"
  number_of_workers: 5
  bucket_list_interval: "300s"
  access_key_id: "0xxxxxxxxxxxxxxxxxxE"
  secret_access_key: "wGxxxxxxxxxxxxrhONCl"
  endpoint: "https://obs.cn-north-4.myhuaweicloud.com"
  expand_event_list_from_field: Records
  default_region: "cn-north-4"

四 测试

上次日志到bucket中

Filebeat采集通用基于S3协议的对象存储作为输入源_对象存储_03

重启filebeat

# 查看日志
[root@elk-host filebeat]# journalctl -fu filebeat

在kibana中查看,腾讯云cos中的日志已经正常投递到es中。

Filebeat采集通用基于S3协议的对象存储作为输入源_腾讯云_04

五 注意事项

  1. 访问权限:确保Filebeat具有足够的权限来访问腾讯云COS桶中的日志文件。您需要为Filebeat提供适当的访问密钥或角色,并确保其具有读取COS桶的权限。
  2. 安全性:当配置Filebeat与腾讯云COS集成时,务必采取安全措施,以防止未经授权的访问。确保仅允许受信任的IP地址或网络访问Filebeat实例和COS桶,并加密传输通道以保护数据的机密性。
  3. 文件过滤和解析:COS可能包含多种文件类型和格式的日志文件。在配置Filebeat时,要确保正确配置文件过滤规则和解析器,以确保仅收集和处理所需的日志文件,并正确解析其内容。
  4. 监控和容错:定期监控Filebeat与COS的连接和数据收集情况,以确保系统正常工作。同时,考虑实施容错机制,例如使用备份输入源或实现数据重试机制,以应对可能的故障或中断。
  5. 性能和可扩展性:腾讯云COS可能包含大量的日志文件,因此在配置Filebeat时要考虑性能和可扩展性。根据需求调整Filebeat的配置参数,如批量大小、并发连接数等,以确保高效地处理大规模的日志数据。
  6. 日志数据的保留和归档:考虑设置适当的日志数据保留策略,以避免数据过时或占用过多的存储空间。您可以配置Filebeat将日志数据发送到其他目标,例如Elasticsearch或Logstash,以进行进一步的处理、分析和长期存储。

其他

腾讯云COS 的对象存储可以正常通过filebeat 1.10正常使用参数:non_aws_bucket_name,但是阿里云部分其云厂商可能不行,使用filebeat 8.10最新版本,将对象存储作为filebeat输入源,配置相同,腾讯/阿里均可以,在阿里这边出错,利用aws cli 测试这边阿里云oss也是成功的,ak信息权限也够,查看帮助文档:

  • help.aliyun.com/zh/oss/how-…
  • 中反馈错误二:Please use virtual hosted style to access,但是测试了几次带上bucket,也异常。 查看debug 调试Filebeat 8.10源码定位到在getRegionForBucket出错,host配置异常,测试带上bucket完成的FQDN则出现404,如果不带则403,修改源码跳过Region参数后,在Filebeat拉取文件子进程任然报403,目前怀疑阿里对OSS接口进行部分封装,后续还待进一步测试验证。

Filebeat采集通用基于S3协议的对象存储作为输入源_腾讯云_05

总结

Filebeat是一款轻量级的日志数据收集器,可以将基于S3协议的对象存储作为输入源。通过配置Filebeat,指定要监控的S3桶和对象的位置信息,Filebeat会定期轮询S3桶,获取新的或更新的对象,并将其作为日志数据发送到指定的输出目的地。这种集成架构具有高灵活性和可扩展性,使得我们可以方便地将存储在S3中的数据集成到日志分析和监控系统中。通过实时的数据分析和可视化展示,以及其他相关的数据处理和应用,我们可以充分利用S3协议的对象存储的优势,实现有效的数据采集和处理。这种方案适用于各种场景,提供了简单而灵活的解决方案,满足了日志数据收集和分析的需求。

参考链接

标签:Filebeat,存储,S3,COS,filebeat,日志
From: https://blog.51cto.com/kaliarch/8337377

相关文章

  • 数据存储和检索:B-tree 和 LSM-tree
     本文主要介绍数据库的核心数据结构索引的实现方式:B+tree和LSM-tree。实际上,数据库是可以不存在索引结构的,遍历数据库总归可以实现数据库的查询,但是,如果数据量很大,这种低效的做法是不可接受的,那么自然而然,牺牲部分空间换取时间被提出和接受,即保留额外的元数据,实现数据......
  • 容器日志采集的三种方式实战操作讲解(Filebeat)
    目录一、概述二、K8s集群部署三、ElasticSearch和kibana环境部署1)部署docker2)部署docker-compose3)创建网络4)修改Linux句柄数和最大线程数5)下载部署包开始部署四、容器日志采集的三种方式实战操作1)【第一种方式】:Filebeat与应用运行在同一容器(不推荐)1、下载Trinoonk8s......
  • innodb存储引擎了解
    mysql常用的存储引擎分为innodb和myisam其中innodb具有支持事务,执行行级锁,支持MVCC,外键,自动增长列,崩溃恢复等特性。并且mysql在5.5.5之后是数据的默认存储引擎文件:mysql的数据都存放的data文件中,其中日志文件包括错误日志,慢查询日志,查询日志还有二进制日志慢查询日志默认时间......
  • css3 弹性盒子
    flex属性详解juejin.cn溪阳网页布局最早的时候,网页排版通常是通过table元素实现的,在table的单元格里使用align、valign来实现水平和垂直方向的对齐后来随着html语义化和CSS的发展,浮动布局和定位布局也出现了,还有text-align:center、verticle-align:center......
  • CSS3学习笔记-动画
    CSS3中提供了许多有趣和实用的动画效果,可以使页面更加生动有趣,下面介绍一些常用的动画效果。@keyframes规则使用@keyframes规则可以创建一系列动画帧,并定义它们的状态和样式,在页面中应用该动画后,浏览器会自动处理中间帧的变化。语法如下:@keyframesanimation-name{from......
  • CSS3学习笔记-过渡
    学习CSS3过渡(Transitions)是为了在元素状态之间创建平滑的动画效果。下面是一些关于CSS3过渡的学习笔记:过渡基础语法:使用transition属性来定义过渡效果。通过指定过渡的属性、持续时间、延迟和过渡速度来设置过渡。可以使用逗号分隔多个属性,为每个属性设置不同的过渡效果。过......
  • CSS3学习笔记-句子排版效果
    CSS3提供了丰富的排版效果,可以通过样式属性来控制文本的排列方式、字体样式、行高、字间距等。以下是一些常用的句子排版效果示例:文本对齐方式:.text-center{text-align:center;}.text-right{text-align:right;}.text-justify{text-align:justify;}字......
  • CSS3学习笔记引言
    开始我们要来介绍css:CSS(全称为CascadingStyleSheets)是一种用于描述HTML、XML等文档样式的样式语言,它能够定义元素的显示方式,如字体、颜色、布局等。CSS可以把HTML文档的呈现样式和内容分离,使得网页的结构和表现更加清晰明了,并且可以减少重复的代码。有了CSS,我们可以轻松地......
  • CSS3学习笔记-选择器
    在CSS中,选择器是一种指定一个或多个元素的方法。可以根据元素的类型、类、ID、属性等特征来选择元素。CSS3引入了很多新的选择器,让我们可以更加灵活和精准地选择元素。下面介绍一些常用的CSS3选择器:1.元素选择器元素选择器指定元素的标签名称,例如p、h1、ul。p{color:......
  • CSS3学习笔记-字体属性
    在CSS3中,可以使用字体属性来控制网页中文本的样式和排版。以下是常用的字体属性:font-family该属性用于指定网页中的文本所使用的字体。我们可以通过使用通用的字体名称,或者直接使用字体名称,在多个字体之间进行设置。例如:```cssbody{font-family:Arial,Helvetica,sans-......