--- title: OpenTelemetry Collector日志指标追踪管道实践 keywords: - OpenTelemetry Collector - OTLP - Loki - Prometheus - Tempo - pipeline description: 配置OTel Collector接收OTLP并分别导出日志/指标/追踪到Loki/Prometheus/Tempo,提供可验证的YAML与检查命令。 date: 2025-11-26 categories: - 文章资讯 - 编程技术 --- 概述 - 目标:统一收集应用的日志/指标/追踪并路由到后端系统,实现端到端可观测。 - 适用:多语言服务、集中采集、跨环境观测。 核心与实战 - Collector配置(使用contrib Loki exporter): ``` receivers: otlp: protocols: grpc: http: exporters: prometheus: endpoint: 0.0.0.0:9464 loki: endpoint: http://loki:3100/loki/api/v1/push default_labels_enabled: exporter: true resource: true otlphttp/tempo: endpoint: http://tempo:4318 processors: batch: attributes/log_labels: actions: - key: service.name action: upsert service: pipelines: logs: receivers: [otlp] processors: [attributes/log_labels, batch] exporters: [loki] metrics: receivers: [otlp] processors: [batch] exporters: [prometheus] traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/tempo] ``` 示例 - 运行与端点: ``` otelcol-contrib --config collector.yaml curl -s http://localhost:9464/metrics | head ``` - 应用侧OTLP导出: ``` OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 OTEL_RESOURCE_ATTRIBUTES=service.name=api,service.namespace=prod ``` 验证与监控 - 后端命中: - Loki中查看日志标签;Prometheus中观察指标;Tempo中查询trace。 - Collector健康: - 观察Collector自暴露指标(otelcol_*)与处理队列;查看错误日志。 - 路由正确性: - 确保各pipeline只向指定后端导出,避免混乱。 常见误区 - 未使用contrib版本导致缺少Loki exporter;需使用`otelcol-contrib`。 - 资源标签缺失导致后端难以查询;应在`attributes`处理器补充关键标签。 - 混用Prometheus exporter与remote_write;本示例为本地暴露,由Prometheus抓取。 结语 - 通过Collector统一管道,将日志/指标/追踪分别导出至对应后端,实现一致的可观测体系与易于维护的配置。

发表评论 取消回复