You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Vector记录空行日志时出现崩溃的问题?

Vector监控Docker日志遇空行崩溃的问题解决

问题现象

用Vector的docker_logs源收集Docker容器日志,再通过aws_cloudwatch_logs sink输出时,只要容器输出空行(比如单独执行echo命令),Vector就会直接崩溃,报错信息如下:

thread 'vector-worker' panicked at src/sinks/aws_cloudwatch_logs/request_builder.rs:111:52:
payload should never be zero length

配置文件

sources:
    dummy_logs:
        type: "docker_logs"
        docker_host: "/path_to/docker.sock"

sinks:
    print:
        type: "aws_cloudwatch_logs"
        inputs: ["dummy_logs"]
        group_name: "/my/group"
        stream_name: "%Y/%m/%d/my-stream"
        encoding:
            codec: "text"

复现步骤

  1. 启动Vector:
vector --config my_config.yaml
  1. 新开窗口启动测试容器:
docker run -it --rm alpine /bin/sh
  1. 在容器shell中执行:
    • ls:正常运行,Vector无异常
    • 单独执行echo:Vector直接退出

解决办法

方法1:添加过滤转换拦截空行

在配置中新增transforms阶段,过滤掉内容为空的日志事件,避免空payload进入CloudWatch sink:

sources:
    dummy_logs:
        type: "docker_logs"
        docker_host: "/path_to/docker.sock"

transforms:
    filter_empty_lines:
        type: "filter"
        inputs: ["dummy_logs"]
        condition: '!is_empty(.message)'

sinks:
    print:
        type: "aws_cloudwatch_logs"
        inputs: ["filter_empty_lines"]
        group_name: "/my/group"
        stream_name: "%Y/%m/%d/my-stream"
        encoding:
            codec: "text"

该配置会检查每条日志的message字段,仅保留非空事件,从根源上避免空内容触发panic。

方法2:升级Vector到最新版本

这个panic属于Vector的已知bug,后续版本大概率已修复。直接升级到最新稳定版,问题可能会自动解决。

内容的提问来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:43:13