一、操作场景
| 算法 | 压缩率 | 速度 | CPU 开销 | 适用场景 |
| lz4(默认) | 约2:1 | 极快 | 低 | 高吞吐、CPU 敏感场景 |
| zstd | 约3:1 – 5:1 | 快 | 中 | 带宽受限场景(如专线、跨地域传输) |
该任务指导你通过 配置文件、环境变量或 K8s DaemonSet 三种方式,将 LogListener 的压缩算法从默认的 lz4 切换为 zstd,以获得更高的压缩率和更低的带宽消耗。
二、前提条件
·已安装并部署 LogListener,具体操作请参见 LogListener 新架构安装指南。
·LogListener 新架构(版本≥3.4.0)支持 lz4和 zstd。旧架构仅支持 lz4,不支持切换为 zstd。
三、注意事项
·默认值:不配置时默认使用 lz4压缩算法。
·服务端兼容:CLS 后端已支持 zstd 解压,可直接开启,无需额外配置。
·降级机制:压缩失败时,LogListener 会自动发送未压缩的原始数据,不会丢失日志。
·性能影响:zstd 相比 lz4 约多消耗30% – 50%的 CPU 资源,相应的可节省40% – 60%的网络带宽。建议在带宽瓶颈场景(专线、跨地域传输)使用。
四、方式一:通过配置文件修改
1. 登录 LogListener 所在的服务器。
2. 打开 LogListener 的配置文件 /opt/loglistener/conf/loglistener.yaml,在 plugin.output_cls 下添加或修改 compress 字段:
plugin: output_cls: compress: zstd
注意:该参数不支持热更新,调整后请执行 systemctl restart loglistener 重启采集器。
五、方式二:通过环境变量修改
export OUTPUT_CLS_COMPRESS=zstd
注意:说明:
注意:环境变量优先级高于配置文件。当同时配置了环境变量和配置文件时,以环境变量的值为准。
六、方式三:通过 K8s DaemonSet 修改
apiVersion: apps/v1kind: DaemonSetmetadata: name: loglistenerspec: template: spec: containers: – name: loglistener env: – name: OUTPUT_CLS_COMPRESS value: "zstd"