跳到主要内容
版本:Next

输出配置指南

output 段定义 Agent 在本地出站队列落盘后将批次发往何处。生产环境使用 type: transport(EdgeSocket TCP);本地调试可使用 type: console。

全部键名、类型与默认值见 配置说明 — output。本文说明 与 Engine 的对齐、RAW 与 PACKET,以及 场景 YAML。

transport 与 console

output.type场景
transport经 EdgeSocket 发往运行中作业(endpoint、token 等)。
console在 log/edge-agent.log 中以 EDGE_CONSOLE_OUTPUT 记录序列化结果(非业务 stdout)。省略 type 时默认为 console。

Engine endpoint 与 Agent output.endpoint

endpoint 易混淆

勿将 Engine 作业里 EdgeSocket Source 的 endpoint 与 Agent 的 output.endpoint 混为一谈,二者含义不同。

配置必填含义
EdgeSocket Source portEngine 监听端口(通常绑定所有网卡)。
EdgeSocket Source endpoint仅用于观测/日志,不改变绑定地址。
Agent output.endpoint边缘机 TCP 拨号目标:可达的 host:port。

反例:将 Engine Source endpoint 设为 0.0.0.0:9876,并在 Agent output.endpoint 使用相同值。Agent 须使用边缘机可路由到的地址。

地址与认证

关注点Agent(agent.yaml)Engine(EdgeSocket Source 作业)
拨号 / 监听output.endpoint: "<host>:<port>" — 须为边缘机可达地址port — Source 监听端口
共享密钥output.tokentoken(或作业中的等价配置)

Agent 首先发送 __AUTH__:<token>。常见响应:

响应含义Agent 行为
ACK认证成功开始发送批次
REJECTED重复采集端或策略冲突快速失败,不自动重连 — 检查是否多个 Agent 连同一监听
AUTH_FAILED密钥不一致对齐 YAML 与作业配置后重启
ACK 与 RECEIVED

ACK 仅表示认证成功。WAL 行在收到批次响应 RECEIVED 前保持 SENDING;只有 RECEIVED 会将该 WAL 行标记为 ACKED。

线路细节见 EdgeSocket Source

RAW 与 PACKET

模式默认行为
RAW事件序列化后的载荷作为批次 body 发送,快速开始与多数日志管道适用。
PACKET分帧包;支持 compression、encryption,须与 Engine 侧 EdgeSocket Source 一致。
压缩与加密

compression、encryption 仅在 packet-mode: PACKET 时生效。RAW 模式下 YAML 中的相关项会被忽略。配置表中 compression 默认值 gzip 仅针对 PACKET。

批次响应

认证通过后,批次为 __BATCH__:<batchId>:<payload>。Engine 常见回复:

响应Agent 处理
RECEIVED将出站队列行标记为 ACKED
RETRY重发同一批次
QUEUE_FULL:<ms>等待后重试
DECRYPT_FAILED致命错误 — 检查 PACKET/加密与 Engine 是否一致
备注

Agent 不发送 __COMMIT__,耐久性以本地 WAL 出站队列直至收到 RECEIVED 为准。

场景配置示例

以下仅展示 output;请与 input 及 queue、retry 配置一并使用。

1. 生产 — RAW + token

output:
type: transport
endpoint: "10.0.1.50:9876"
auth-type: token
token: "<与-engine-token-一致>"
packet-mode: RAW
connect-timeout-ms: 5000
read-timeout-ms: 30000

2. 本地调试 — console

output:
type: console
提示

启动 Agent 后在 log/edge-agent.log 中搜索 EDGE_CONSOLE_OUTPUT,无需 Engine 作业。见快速开始 — Console 本地验证

3. PACKET + gzip

output:
type: transport
endpoint: "10.0.1.50:9876"
auth-type: token
token: "<共享密钥>"
packet-mode: PACKET
compression: gzip
encryption: none

压缩与分帧须与 EdgeSocket Source 作业配置一致。

4. PACKET + AES-GCM

output:
type: transport
endpoint: "10.0.1.50:9876"
auth-type: token
token: "<共享密钥>"
packet-mode: PACKET
compression: none
encryption: aes_gcm
aes-secret-key-base64: "<与-engine-一致的-base64-密钥>"
警告

encryption: aes_gcm 时必须配置 aes-secret-key-base64,且须与 Engine 侧一致。

5. 网络不稳定 — 加大超时与重连

output:
type: transport
endpoint: "10.0.1.50:9876"
auth-type: token
token: "<共享密钥>"
packet-mode: RAW
connect-timeout-ms: 10000
read-timeout-ms: 60000
initial-backoff-ms: 500
max-backoff-ms: 60000
max-reconnect-cycles: 32
max-batch-send-attempts: 128
备注

传输层重连与 WAL 的 retry.*(调度/出站行重试)相互独立。

output.id 与迁移

output.id 用于出站侧日志与迁移标识(不写入线协议)。见 身份文件。迁移时请一并拷贝 edge-agent.id、WAL 及 config/agent.yaml。