AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1162871
Accepted
Umair
Umair
Asked: 2024-07-22 18:35:11 +0800 CST2024-07-22 18:35:11 +0800 CST 2024-07-22 18:35:11 +0800 CST

Fluent-bit Match 除 * 外不起作用

  • 772

Match 仅适用于 *,我不明白为什么会发生这种情况。这是我的配置。

鲁阿

function process_record(tag, timestamp, record)
    print("Input tag: ", tag)
    print("Record: ", record["tag"])
    local s3_log = {}
    local cw_log = {}

    for k, v in pairs(record) do
        cw_log[k] = v
        cw_log["tag"] = "cw"

        s3_log[k] = v
        s3_log["tag"] = "s3"
    end
    print("S3 tag: ", s3_log["tag"])
    print("CW tag: ", cw_log["tag"])
    print("S3 Log: ", s3_log["log"])
    print("CW Log: ", cw_log["log"])
    return 2, timestamp, {s3_log, cw_log}
end

配置

[SERVICE]
    flush 1
    daemon off
    log_level debug

[FILTER]
    Name          lua
    Match         *
    script        /append_tag.lua
    call          process_record

[FILTER]
    Name          lua
    Match         $tag cw
    script        /print.lua
    call          process_record


[FILTER]
    Name          rewrite_tag
    Match         cw
    Rule          $tag .* cw true
    Emitter_Name  cw_emitted
[OUTPUT]
    Name                cloudwatch_logs
    Match               *cw*
#    Match               *
#    Match_regex         ^(cw)$
    log_key             log
    region              af-south-1
    log_group_name      /ecs/log
    log_stream_prefix   fluent-bit-
    auto_create_group   On
    log_format          json/emf

附加信息:

Fluent Bit 版本:AWS_FOR_FLUENT_BIT_VERSION 2.32.2.20240627

AWS Fargate 设置

使用 log_router 容器

amazon-ecs
  • 1 1 个回答
  • 23 Views

1 个回答

  • Voted
  1. Best Answer
    Umair
    2024-07-29T16:38:03+08:002024-07-29T16:38:03+08:00

    经过一番努力,我终于找到了解决方案。这是我的工作配置,它将数据推送到 cw 和 s3,并删除 cw 的一些日志

    日志目的地配置文件

    [FILTER]
        Name          lua
        Match         *
        script        /script.lua
        call          process_record
    
    [FILTER]
        Name          rewrite_tag
        Match_regex   .*demo.*
        Rule          $tag "^(cw)$" cw.$container_id true
        Emitter_Name  re_emitted_cw
    
    [FILTER]
        Name    grep
        Match_regex   .*cw.*
        Exclude tag s3
    
    [FILTER]
        Name    grep
        Match_regex   .*cw.*
        Exclude log /.*message\":\"remove.*/
    
    [FILTER]
        Name    grep
        Match_regex   .*demo.*
        Exclude tag cw
    
    [OUTPUT]
        Name                cloudwatch_logs
        Match_regex         .*cw.*
        log_key             log
        region              af-south-1
        log_group_name      /ecs/demo
        log_stream_prefix   fluent-bit-
        auto_create_group   On
        log_format          json/emf
    
    
    [OUTPUT]                   
        bucket     s3_bucket
        total_file_size    200M
        log_key    log
        Match_regex   .*demo.*
        s3_key_format    /demo/%Y-%m-%d/$TAG/
        use_put_object    on
        upload_timeout    1M
        region    af-south-1
        Name    s3
    

    脚本.lua

    function process_record(tag, timestamp, record)
        
        local s3_log = {}
        local cw_log = {}
    
        if record["log"] == nil then
            record["log"] = record["message"] or "default_log_message"
        end
    
        for k, v in pairs(record) do
            cw_log[k] = v
            cw_log["tag"] = "cw"
    
            s3_log[k] = v
            s3_log["tag"] = "s3"
        end
        
        return 2, timestamp, {s3_log, cw_log}
    end
    

    Dockerfile

    FROM cr.fluentbit.io/fluent/fluent-bit
    ADD logDestinations.conf /logDestinations.conf
    ADD script.lua /script.lua
    
    • 0

相关问题

  • 对于在 EC2 ECS 上运行的任务,memory 和 memoryReservation 如何工作?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve