一份可照着做的接入教程:安装 OpenTelemetry Collector,用一条配置把文件日志、OTLP 指标与链路统一上报到炬鲸 OBSERVE,并给出验证方法与常见问题排查。
把日志、指标、链路送到炬鲸 OBSERVE,不需要改业务代码。OpenTelemetry Collector 作为统一接入层:指向你的日志文件,让 SDK 往它上报,一条配置就能把三路数据送进 OBSERVE。本文带你十分钟内从零跑到数据流动。
/var/log/app/*.log。指标和链路需要应用侧挂 OpenTelemetry SDK 或自动埋点;日志则直接从文件采集,零代码改动。
使用 contrib 发行版(内置 filelog 采集器):
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.105.0/otelcol-contrib_0.105.0_linux_amd64.tar.gz
tar -xzf otelcol-contrib_0.105.0_linux_amd64.tar.gz
sudo install otelcol-contrib /usr/local/bin/
ARM64 环境把包名里的 amd64 换成 arm64。
新建 /etc/otelcol/config.yaml:
receivers:
filelog:
include: [/var/log/app/*.log]
start_at: end
operators:
- type: json_parser
otlp:
protocols:
grpc: { endpoint: 0.0.0.0:4317 }
http: { endpoint: 0.0.0.0:4318 }
processors:
batch:
timeout: 5s
send_batch_size: 1024
exporters:
otlphttp:
endpoint: https://ob.jjhub.cn/otel
headers:
Authorization: "Bearer <你的Token>"
service:
pipelines:
logs:
receivers: [filelog]
processors: [batch]
exporters: [otlphttp]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
三条 pipeline(logs、traces、metrics)都路由到同一个指向 OBSERVE 的 otlphttp exporter;filelog 监听日志文件,otlp receiver 在 4317/4318 端口等 SDK 上报。
sudo otelcol-contrib --config /etc/otelcol/config.yaml
到控制台"接入中心"看数据:日志几秒内出现,指标一分钟内出现。链路要先让 SDK 上报——Java 用 -javaagent:path/to/opentelemetry-javaagent.jar 挂 agent,Go 接 otel sdk 和 exporter。
file_storage 扩展,让 filelog 持久化读取 offset。Authorization: Bearer <token>,别漏了 Bearer 前缀。上线前补三件事:file_storage 扩展持久化 offset、exporter 加磁盘队列在网络抖动时缓冲、用 systemd 管理并加 Restart=always。exporter 的磁盘队列在配置里加上 sending_queue 的 storage: file_storage 与 queue_size 即可;采集器建议固定版本号,生产至少跑两个实例挂在负载均衡后面,避免单点。