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

OpenTelemetry Collector采集日志时部分主机host.name字段始终为localhost的问题排查求助

OpenTelemetry Collector采集日志时部分主机host.name字段始终为localhost的问题排查求助

各位大佬,我碰到一个OpenTelemetry Collector的棘手问题,想请教下大家怎么排查:

我使用otelcol-contrib(v0.95.0)从多台主机采集系统日志,然后发送到自建的OpenObserve实例。目前的情况是,有2台主机的host.name字段能正确设置为实际的主机名,但其他所有主机的这个字段都一直显示localhost。而且我之前用v0.93.0版本时也是同样的问题。

主机环境列表

HostKindOSArchRetrieved host.name
raspi2Raspberry Pi 2 Model B Rev 1.1Rasbian 11armv7lraspi1
raspi3Raspberry Pi 3 Model B Rev 1.2Debian 11aarch64raspi2
raspi4aRaspberry Pi 4 Model BDebian 12aarch64localhost
raspi4bRaspberry Pi 4 Model BDebian 12aarch64localhost
raspi4cRaspberry Pi 4 Model BDebian 12aarch64localhost
serv1Hetzner VM (CX21)Rocky Linux 9.3x86_64localhost
serv2Hetzner VM (CX21)Rocky Linux 9.3x86_64localhost

统一配置说明

所有主机都是通过Ansible统一配置的,Ansible能正确识别ansible_hostname变量,说明主机本身的主机名配置是没问题的;而且每台主机上执行hostname命令都能返回正确的主机名。

otelcol-contrib配置文件

receivers:
  filelog/std:
    include: [ /var/log/**log ]

processors:
  resourcedetection/system:
    detectors: ["system"]
    system:
      hostname_sources: ["os"]
  memory_limiter:
    check_interval: 1s
    limit_percentage: 75
    spike_limit_percentage: 15
  batch:
    send_batch_size: 10000
    timeout: 10s

extensions:
  zpages: {}
  memory_ballast:
    size_mib: 512

exporters:
  otlphttp/openobserve:
    endpoint: {{ openobserve_url }}
    headers:
      Authorization: "Basic {{ openobserve_api_key }}"

service:
  extensions: [zpages, memory_ballast]
  pipelines:
    logs:
      receivers: [filelog/std]
      processors: [resourcedetection/system, memory_limiter, batch]
      exporters: [otlphttp/openobserve]

我的疑问

我想搞清楚:

  • host.name字段具体是通过什么逻辑获取的?
  • 为什么部分主机能拿到正确值,另一部分却始终是localhost?
  • 是我的otelcol配置有问题,还是需要检查主机的特定系统配置来帮助otelcol获取正确的主机名?

备注:内容来源于stack exchange,提问作者Antwane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:39:53