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

Azure App Service Linux自定义OTel容器未响应HTTP ping求助

解决Azure App Service Linux部署OTel Collector容器的健康检查错误

问题核心

你遇到的Container 0 didn't respond to HTTP pings on port: 8080错误,根源是两个关键误解:

  • 启动命令里的-p 4318:4318是Docker CLI的端口映射参数,App Service运行容器时不需要这个(平台会自动处理端口转发);
  • Azure默认健康检查会访问容器的8080端口,但你的Collector监听在4318,且OTel Collector本身没有默认的根路径健康检查端点。

分步解决

  • 移除错误的启动命令
    删掉启动命令中的-p 4318:4318,如果自定义容器的默认启动命令(比如otelcol-contrib --config=/etc/otelcol-contrib/config.yaml)符合你的配置路径,启动命令可以直接留空;如果配置文件路径自定义,直接写Collector的启动参数,比如otelcol-contrib --config=/app/my-custom-config.yaml。

  • 确保Collector监听正确地址
    检查你的OTel Collector配置文件,确保接收端(比如OTLP HTTP协议)监听在0.0.0.0:4318(不能是localhost,否则容器外无法访问),同时保留你的CORS配置:

    receivers:
      otlp:
        protocols:
          http:
            endpoint: "0.0.0.0:4318"
            cors:
              allowed_origins: ["https://your-target-domain.com"] # 替换为实际允许的源
    
  • 配置健康检查端点
    OTel Collector默认没有根路径的健康响应,需要添加health_check扩展暴露健康端点,同时告知Azure健康检查的路径:

    1. 在Collector配置中添加扩展:
      extensions:
        health_check:
          endpoint: "0.0.0.0:4318/healthz"
      service:
        extensions: [health_check] # 加载该健康检查扩展
      
    2. 在Azure App Service的应用设置中配置:
      • WEBSITES_PORT:设置为4318
      • WEBSITES_HEALTH_CHECK_PATH:设置为/healthz
  • 验证启动状态
    部署完成后查看App Service的容器日志,确认Collector正常启动,日志中应出现类似Listening on 0.0.0.0:4318的绑定成功提示。

内容的提问来源于stack exchange,提问作者Farid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:42:21