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

New Relic日志文件夹为空,ASP.NET Core微服务APM事务消失求因

New Relic日志文件夹为空的可能原因

我们的一个微服务的New Relic APM事务完全消失,多日排查仍未找到原因,关键线索是logs文件夹为空。请问哪些原因会导致New Relic日志文件夹为空?

补充信息

  • ASP.NET Core 6部署在Kubernetes集群,基础镜像为mcr.microsoft.com/dotnet/aspnet:6.0-focal
  • 同一Docker镜像在另一集群运行正常
  • 类似Docker镜像在当前集群运行正常
  • 正常情况下,自定义路径/usr/local/newrelic-netcore20-agent/logs文件夹包含以下文件:
    • NewRelic.Profiler.7.log
    • newrelic_agent_MyService.API.log
  • 注:我们使用自定义路径,默认路径为/usr/local/newrelic-dotnet-agent

可能的原因

1. New Relic代理未成功加载

  • 若代理未被正确注入或初始化,不会生成任何日志文件。常见诱因包括:
    • 当前集群Pod的环境变量配置缺失,例如CORECLR_PROFILER、CORECLR_NEWRELIC_HOME等关键变量未正确设置,导致应用进程无法定位代理组件。
    • 集群Pod安全策略(PSP)或容器权限限制,阻止应用进程访问代理相关文件/目录,导致代理初始化失败。

2. 日志目录权限不足

  • 容器内自定义日志路径/usr/local/newrelic-netcore20-agent/logs的读写权限配置错误,应用运行用户(ASP.NET Core 6镜像默认使用app用户)无权限在该目录创建文件,导致日志无法写入,文件夹保持为空。
  • 建议对比正常集群的目录权限(所有者、组、权限位),验证当前集群的权限配置是否一致。

3. 代理配置的日志路径未指向自定义目录

  • 尽管使用了自定义路径,但代理配置文件newrelic.config中log节点的directory属性可能仍指向默认路径/usr/local/newrelic-dotnet-agent/logs,导致日志被写入默认路径而非自定义路径,造成你检查的目录为空。
  • 可进入容器检查默认路径下是否存在日志文件,验证该推测。

4. 日志级别配置过高或日志功能被禁用

  • 若代理配置中日志级别被设置为off,或仅开启了极高优先级的日志(如fatal但未触发致命错误),代理不会生成日志文件。检查newrelic.config中log节点的level属性配置是否正确。

5. Kubernetes存储卷挂载异常

  • 若日志目录挂载了存储卷(如EmptyDir、PVC),当前集群的存储卷可能未正确挂载,或挂载后目录被清空,导致日志无法写入或持久化。
  • 对比正常集群的Pod挂载配置,检查当前集群存储卷的挂载状态、权限及初始化逻辑。

6. 代理文件损坏或镜像拉取异常

  • 尽管同一镜像在其他集群正常,但当前集群拉取的镜像可能存在文件损坏(如传输过程中丢失代理组件),导致代理无法正常运行生成日志。可尝试在当前集群重新拉取镜像,或进入容器检查代理目录下的文件是否完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:55:05