首页 > 其他分享 >Filebeat采集AWS S3作为输入源实战

Filebeat采集AWS S3作为输入源实战

时间:2023-11-13 10:02:55浏览次数:29  
标签:Filebeat S3 aws AWS filebeat 日志 root

一 背景

在现代应用程序和系统中,日志数据的收集和分析是至关重要的。AWS S3(Amazon Simple Storage Service)是一种高度可扩展的对象存储服务,许多组织选择将其用作存储和备份日志文件的中心存储库。Filebeat是一款轻量级的日志数据传输工具,它可以收集、解析和传输日志数据到其他系统进行进一步的处理和分析。

二 实战配置

2.1 用户配置

在AWS 中创建IAM用户,用于后续Filebeat与AWS S3进行认证

Filebeat采集AWS S3作为输入源实战_运维

分配权限,在此为了简单直接赋予用户S3全部权限,生成环境仅配置GETBUCKET/GETObject权限;

Filebeat采集AWS S3作为输入源实战_运维_02

配置密钥信息

Filebeat采集AWS S3作为输入源实战_数据_03

# 记录AK信息及ARN
ARN:arn:aws-cn:iam::357174605294:user/xuelxxxxxxxxxss3

2.2 S3bucket

创建bucket,用于存放日志

Filebeat采集AWS S3作为输入源实战_日志文件_04

存储桶利用ak访问,无需额外配置

Filebeat采集AWS S3作为输入源实战_日志文件_05

获取S3信息,后续用于存储对象存储日志

cn-north-1
Arn:arn:aws-cn:s3:::xuelxxxxxxource

2.3 AWS CLI配置

为了方便测试在filebeat主机上配置ak是否异常,在linux主机安装aws cli

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

配置密钥文件,测试credentials是否正确

aws confiureate
#输入相关信息即可,生成文件存储在 /root/.aws/
[root@elk-host credential_file]# ll /root/.aws/
total 12
-rw------- 1 root root  30 Oct  9 18:24 config
-rw------- 1 root root 202 Oct  9 18:36 credentials
[root@elk-host credential_file]# cat /root/.aws/config
[default]
region = cn-north-1
[root@elk-host credential_file]# cat /root/.aws/credentials
[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = T3xxxxxxxxx
#role_arn = arn:aws-cn:iam::357174605294:user/xuel-fixxxxxxss3
region = cn-north-1

测试cli配置是否正常,在此可以看出可以正常访问S3 Bucket

[root@elk-host credential_file]# aws s3 ls
2023-06-29 17:48:58 codepipeline-cn-north-1-841843736060
2023-06-13 15:09:46 sagemaker-studio-357174605294-b4y9e2pbw4c
2023-06-13 14:06:47 sagemaker-studio-a4y9fizpc06
2023-06-21 16:53:25 xuel-codebuild-target
2023-06-29 17:42:44 xuel-codepipeline-cloudformation
# 如果多个可以配置profile

2.4 Filebeat配置

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

Filebeat采集AWS S3作为输入源实战_日志文件_06

[root@elk-host credential_file]# cd /etc/filebeat/
[root@elk-host filebeat]# ll
total 3868
drwxr-xr-x 2 root root    4096 Oct 10 09:44 credential_file
-rw-r--r-- 1 root root 3745699 Sep 19 02:08 fields.yml
-rw-r--r-- 1 root root  178706 Sep 19 02:08 filebeat.reference.yml
-rw------- 1 root root    8869 Oct  9 18:12 filebeat.yml
-rw------- 1 root root    8620 Oct  9 16:39 filebeat.yml.bak
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

将credentials放在filebeat目录下

# mkdir /etc/filebeat/credential_file
# cp /root/.aws/credentials /etc/filebeat/credential_file
[root@elk-host filebeat]# egrep -v "^#|^[[:space:]].*#|^$" filebeat.yml
filebeat.inputs:
- type: filestream
  id: my-filestream-id
  enabled: true
  paths:
    - /var/log/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
output.logstash:
  hosts: ["127.0.0.1:5044"]
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~
[root@elk-host filebeat]# egrep -v "^#|^[[:space:]].*#|^$" modules.d/aws.yml
- module: aws
  cloudtrail:
    enabled: false
  cloudwatch:
    enabled: false
  ec2:
    enabled: false
  elb:
    enabled: false
  s3access:
    enabled: true
    var.bucket_arn: 'arn:aws-cn:s3:::xuel-exxxxxurce'
    var.bucket_list_interval: 300s
    var.number_of_workers: 5
    var.shared_credential_file: /etc/filebeat/credential_file/credentials
  vpcflow:
    enabled: false

创建完成后启动filebeat进行测试。

三 测试

测试上传日志文件到bucket中,

Filebeat采集AWS S3作为输入源实战_数据_07

重启filebeat查看日志。

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

在kibana中查看

Filebeat采集AWS S3作为输入源实战_AWS_08

虽然社区给出了filebeat支持基于S3协议的通用解决方案,但是测试mino可以正常,云厂商由于封装了对象存储接口,部分认证功能异常,目前正在debug filebeat源码,希望能找出合理的解决方案。

四 其他注意事项

  1. 安全性:确保您的AWS凭证(访问密钥和密钥ID)妥善保管,并遵循AWS的最佳安全实践。不要将凭证明文保存在Filebeat配置文件中,而是使用安全的配置管理机制,如环境变量或密钥管理服务。
  2. 访问权限:确保您的AWS账户具有足够的权限来访问和管理目标S3存储桶中的日志文件。根据需要,调整S3存储桶的访问策略和IAM用户/角色的权限。
  3. 日志文件的结构和格式:Filebeat假定日志文件具有特定的结构和格式。确保您的日志文件按照Filebeat所期望的格式进行编写。如果需要,可以使用Filebeat的日志解析规则(如grok模式)来自定义日志解析过程。
  4. 监控和错误处理:定期监控Filebeat的运行状态,包括日志文件的收集和传输情况。注意观察任何错误或异常情况,并及时采取适当的措施进行故障排除和修复。
  5. 性能和扩展性:根据实际需求和预期的日志数据量,调整Filebeat的性能参数,如事件队列大小、工作线程数等。确保Filebeat能够处理您的目标负载,并具备足够的扩展性来应对未来的增长。
  6. 目标系统的配置:在Filebeat将日志数据传输到目标系统(如Elasticsearch、Logstash等)之前,确保目标系统已正确配置和准备好接收和处理Filebeat传输的日志数据。根据需要,配置目标系统的索引模式、过滤器、仪表板等。

五 总结

在本文主要介绍了filebeat采集AWS S3作为输入源。通过将Filebeat与AWS S3集成,您可以方便地收集和传输存储在S3存储桶中的日志数据,为后续的处理和分析打下了坚实的基础。使用Filebeat作为轻量级的日志传输工具,您可以轻松配置和管理日志数据的收集和传输过程。通过配置Filebeat的输入源为AWS S3存储桶,并指定适当的访问凭证,Filebeat能够自动监视S3存储桶中的日志文件,并将其传输到目标系统进行进一步处理和分析。

集成AWS S3作为输入源具有许多优势。首先,S3是高度可扩展的对象存储服务,能够容纳大规模的日志数据。其次,S3提供了高可靠性和持久性,确保您的日志数据安全存储。此外,使用AWS S3还可以利用其生态系统中的其他服务和工具,如AWS Glue、Athena等,进行更深入的数据分析和挖掘。

通过本文所介绍的步骤,您可以轻松地配置和启动Filebeat,开始采集AWS S3存储桶中的日志数据。随后,您可以将日志数据传输到目标系统,如Elasticsearch、Logstash等,以进行搜索、分析和可视化。使用Filebeat采集AWS S3作为输入源,可以帮助您实现日志的集中化管理和分析,为您的应用程序和系统提供更好的可视化和监控能力,从而提升运维效率和故障排除能力。希望本文对您有所帮助,并能够成功实施ELFK部署,实现高效的日志管理和分析。

参考链接

  • www.elastic.co/guide/en/be…

标签:Filebeat,S3,aws,AWS,filebeat,日志,root
From: https://blog.51cto.com/kaliarch/8337155

相关文章

  • Filebeat采集通用基于S3协议的对象存储作为输入源
    一背景随着云计算和大数据技术的快速发展,越来越多的组织和企业选择将数据存储在云端的对象存储服务中。对象存储服务提供了高可靠性、可扩展性和低成本的存储解决方案,因此成为了许多应用场景的首选。S3(SimpleStorageService)是亚马逊AWS提供的一种对象存储服务,许多云厂商也提供了......
  • 容器日志采集的三种方式实战操作讲解(Filebeat)
    目录一、概述二、K8s集群部署三、ElasticSearch和kibana环境部署1)部署docker2)部署docker-compose3)创建网络4)修改Linux句柄数和最大线程数5)下载部署包开始部署四、容器日志采集的三种方式实战操作1)【第一种方式】:Filebeat与应用运行在同一容器(不推荐)1、下载Trinoonk8s......
  • 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-......
  • CSS3学习笔记-盒模型
    CSS盒模型是指包含内容(content)、填充(padding)、边框(border)和外边距(margin)几个方面的一个矩形框模型。内容区(content):指元素中显示内容的区域,它的大小由width和height属性决定。填充区(padding):用于控制内容区周围的空白区域或边距,padding属性可以控制填充区的大小。边框(border):位于......