fluent-bit日志上传到s3-efs

在线 JSON 工具,JSON 校验/格式化/压缩/工具 - 在线工具-wetools.com微工具

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite"
            ],
            "Resource": "arn:aws:elasticfilesystem:REGION:ACCOUNT_ID:file-system/fs-xxxxxx",
            "Condition": {
                "StringEquals": {
                    "elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:REGION:ACCOUNT_ID:access-point/fsap-xxxxxxxxxxxxx"
                }
            }
        }
    ]
}

s3存储桶设置权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Principal": "*",
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*", 
            "Resource": [
                "arn:aws:s3:::firelens-access-log/*", 
                "arn:aws:s3:::firelens-access-log" 
            ]
        }
       
    ]
}
 

{
    "family": "firelens-sample-s3-ec2-demo",
    "taskRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "executionRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "containerDefinitions": [
        {
            "essential": true,
            "name": "log_router",
            "image": "402097323/fluent-bit-s3:v2",
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-create-group": "true",
                    "awslogs-group": "/ecs/firelens-sample",
                    "awslogs-region": "us-east-1",
                    "awslogs-stream-prefix": "ecs"
                }
            },
            "mountPoints": [
                {
                    "sourceVolume": "data",
                    "containerPath": "/data",
                    "readOnly": false
                }
            ],
            "firelensConfiguration": {
                "type": "fluentbit",
                "options": {
                    "config-file-type": "file",
                    "config-file-value": "/extra.conf",
                    "enable-ecs-log-metadata": "false"
                }
            },
            "user": "0"
        },
        {
            "essential": true,
            "name": "myapp",
            "image": "402097323/applog:v2",
            "logConfiguration": {
                "logDriver": "awsfirelens"
            },
            "mountPoints": [
                {
                    "sourceVolume": "data",
                    "containerPath": "/data",
                    "readOnly": false
                }
            ],
            "dependsOn": [
                {
                    "containerName": "log_router",
                    "condition": "START"
                }
            ]
        }
    ],
    "cpu": "256",
    "memory": "512",
    "volumes": [
        {
            "name": "data",
            "host": {}
        }
    ],
    "compatibilities": [
    "EXTERNAL",
    "EC2"
  ],
     "networkMode": "awsvpc"
}

在老版本中设置:

{
    "family": "firelens-sample-s3-ec2-demo-cre",
    "taskRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "executionRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "containerDefinitions": [{
        "essential": true,
        "name": "log_router",
        "image": "402097323/fluent-bit-s3:v2",
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-create-group": "true",
                "awslogs-group": "/ecs/firelens-sample",
                "awslogs-region": "us-east-1",
                "awslogs-stream-prefix": "ecs"
            }
        },
        "mountPoints": [{
            "sourceVolume": "data",
            "containerPath": "/data",
            "readOnly": false
        }],
        "firelensConfiguration": {
            "type": "fluentbit",
            "options": {
                "config-file-type": "file",
                "config-file-value": "/extra.conf",
                "enable-ecs-log-metadata": "false"
            }
        },
        "user": "0"
    }, {
        "essential": true,
        "name": "myapp",
        "image": "402097323/applog:v2",
        "logConfiguration": {
            "logDriver": "awsfirelens"
        },
        "mountPoints": [{
            "sourceVolume": "data",
            "containerPath": "/data",
            "readOnly": false
        }],
        "dependsOn": [{
            "containerName": "log_router",
            "condition": "START"
        }]
    }],
    "cpu": "256",
    "memory": "512",
    "volumes": [{
        "name": "data",
        "host": {}
    }],
    "networkMode": "awsvpc"
}

/extra.conf根据实际情况监控路径,402097323/fluent-bit-s3:v2 这个镜像要启动容器,然后把extra.conf文件复制到根路径下

docker run -itd --name ffff1 402097323/fluent-bit-s3:v2

docker cp 75bb7ae358a1:/extra.conf   extra.conf

docker commit 容器实例id  镜像名称

网络部署成桥接模式,否则可能会网络不通,在加上s3权限设置;任务类型别设置fargate

[SERVICE]
    Parsers_File /fluent-bit/parsers/parsers.conf
    Flush 1
    Grace 30

[INPUT]
    Name tail
    Path /data/logs/access.log
    Tag access

[INPUT]
    Name tail
    Path /data/logs/error.log
    Tag error

[OUTPUT]
    Name s3
    Match *
    bucket firelens-access-log
    region us-east-1
    upload_timeout  1m
    total_file_size 10M

json数据要参看firelen配置  filter   部分,否则json中会有\错误

docker logs 088fc8999f35 -f

[2023/05/09 12:09:50] [ info] [output:s3:s3.0] Successfully uploaded object /fluent-bit-logs/access/2023/05/09/12/08/40-objectfDHCcciD
[2023/05/09 12:09:50] [ info] [output:s3:s3.0] Successfully uploaded object /fluent-bit-logs/error/2023/05/09/12/08/40-objectBwI4KFtG
[2023/05/09 12:11:00] [ info] [output:s3:s3.0] Successfully uploaded object /fluent-bit-logs/access/2023/05/09/12/09/50-objectMQrxDKaJ

sudo /opt/fluent-bit/bin/fluent-bit -i cpu -o s3 -p bucket=firelens-access-log -p region=us-east-1 -p -m '*' -f 1

sudo  bin/fluent-bit -i tail -p '/var/log/messages' -F grep -p 'regex=log aa' -m '*' -o stdout

Fluent Bit v2.1 Documentation - Fluent Bit: Official Manual

<think>好的,用户想了解Fluent Bit的使用指南、配置和示例。首先,我需要回忆一下Fluent Bit的基本信息,它是一个轻量级的日志收集和转发工具,常用于处理数据管道。接下来,用户可能关注安装步骤,不同操作系统的安装方法。比如在Ubuntu上使用apt,CentOS用yum,或者从源码编译。然后配置部分,要解释配置文件的结构,比如输入、过滤、输出插件的配置,可能需要举例说明,比如收集CPU数据并输出到标准输出的示例。 用户提供的引用中有提到运行示例的命令,应该包含这个例子,比如./bin/fluent-bit -i cpu -o stdout -f 1。另外,配置详解部分需要分输入、过滤、输出三个部分来讲解,每个部分给出具体的配置块,并说明参数的作用。例如,输入插件可以是cpu、mem,输出到stdout或者Elasticsearch等。 还要注意生成相关问题,比如如何监控日志、性能优化方法、与Fluentd的区别,以及Docker中的使用案例。需要确保回答结构清晰,分步骤说明安装、配置、示例,并且引用正确,在适当的位置添加引用标识,比如[^1]和[^2]。 需要检查LaTeX格式是否正确,但用户的问题可能不涉及数学公式,所以可能不需要使用。但根据系统指令,如果有行内公式需要用$...$,独立公式用$$...$$,但Fluent Bit的配置可能不涉及数学,这部分可能用不上,不过要确保其他部分符合要求,比如代码块用反引号包裹,语言标识正确。 最后,确保使用中文回答,引用标记自然添加,比如在提到运行示例时引用,在配置架构部分引用[^2]。可能还需要验证提供的引用链接是否与内容对应,确保示例命令和配置片段正确无误。</think>### Fluent Bit 使用指南与配置示例 #### 一、安装指南 1. **Ubuntu/Debian** ```bash wget https://repos.fluentbit.io/fluentbit.key | sudo apt-key add - echo "deb https://repos.fluentbit.io/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/fluent-bit.list sudo apt update && sudo apt install fluent-bit ``` 2. **CentOS/RHEL** ```bash cat <<EOF | sudo tee /etc/yum.repos.d/fluent-bit.repo [fluent-bit] name=Fluent Bit baseurl=https://repos.fluentbit.io/centos/7/\$basearch/ gpgcheck=1 gpgkey=https://repos.fluentbit.io/fluentbit.key EOF sudo yum install fluent-bit ``` 3. **源码编译** 参考官方文档下载源码并编译。 --- #### 二、核心配置解析 Fluent Bit 配置文件通常包含以下模块: - **输入插件(Input)**:定义数据来源(如日志文件、系统指标)。 - **过滤插件(Filter)**:对数据进行处理(如格式转换、字段提取)。 - **输出插件(Output)**:指定数据目的地(如远程服务器、数据库)。 ##### 示例配置:收集CPU数据并输出到标准输出 ```conf # 输入插件配置(收集CPU指标) [INPUT] Name cpu Tag cpu_metrics Interval_Sec 1 # 输出插件配置(打印到终端) [OUTPUT] Name stdout Match * ``` 运行命令: ```bash ./bin/fluent-bit -i cpu -o stdout -f 1 # 运行示例 ``` --- #### 三、进阶配置示例 1. **日志文件收集与转发到Elasticsearch** ```conf [INPUT] Name tail Path /var/log/app.log Tag app_logs [FILTER] Name parser Match app_logs Parser json # 假设日志为JSON格式 [OUTPUT] Name es Match app_logs Host 192.168.1.100 Port 9200 Index app_logs_index ``` 2. **过滤数据(提取特定字段)** ```conf [FILTER] Name modify Match * Rename level severity # 重命名字段 ``` --- #### 四、调试与验证 - **查看运行状态**: ```bash systemctl status fluent-bit ``` - **日志排查**: Fluent Bit 默认日志路径为`/var/log/fluent-bit/fluent-bit.log`。 --- §§ 1. 如何通过Fluent Bit监控Docker容器日志? 2. Fluent Bit的性能优化有哪些常见方法? 3. Fluent BitFluentd的主要区别是什么? 4. 如何配置Fluent Bit实现日志数据压缩传输? --- : Fluent Bit 官方示例中通过 `-i cpu -o stdout` 快速验证数据采集流程。 : 配置架构与插件功能详见轻量级日志收集转发系列教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值