部署于Azure App Service的.Net Core Worker(IHostedService) New Relic日志集成问题
排查Azure Linux App Service上.NET Worker应用New Relic无数据问题
核心配置检查
- 确认NuGet包安装:必须安装NewRelic.Agent.AspNetCore包,Worker服务依赖此包完成监控注入,仅安装基础包无法生效。
- 验证Azure应用设置:在App Service的「配置-应用设置」中,确认以下项配置正确:
NEW_RELIC_LICENSE_KEY:填写有效的New Relic许可证密钥NEW_RELIC_APP_NAME:设置唯一的应用名称(避免与其他应用重名导致数据混淆)CORECLR_ENABLE_PROFILING=1CORECLR_PROFILER={36032161-FFC0-4B61-B559-F6C5D41BAE5A}CORECLR_NEWRELIC_HOME=/home/site/wwwroot/newrelic(Linux环境默认路径)
部署文件与启动验证
- 检查New Relic文件完整性:通过Azure Kudu工具进入
/home/site/wwwroot目录,确认存在newrelic文件夹及其中的newrelic.config文件。若缺失,需检查项目发布配置,确保NuGet包的内容被设置为<CopyToPublishDirectory>Always</CopyToPublishDirectory>。 - 确认启动命令:Linux Worker应用的启动命令需为标准格式(如
dotnet YourWorkerApp.dll),避免自定义启动脚本覆盖New Relic的Agent注入逻辑。
日志与连通性诊断
- 查看New Relic本地日志:在Kudu的
/home/LogFiles/newrelic目录下,检查agent.log和profiler.log,重点排查许可证验证失败、网络连接超时、Agent初始化错误等信息。 - 检查应用启动日志:启用App Service的日志记录功能,查看启动日志中是否存在
New Relic .NET Agent initialized类条目,确认Agent已成功加载。 - 验证网络连通性:在Kudu终端执行
curl collector.newrelic.com,测试App Service能否访问New Relic采集端点。若失败,需检查VNet集成、防火墙规则等网络配置是否限制了出站流量。
Worker服务专属配置
- 确认HostBuilder配置:在
Program.cs中必须添加UseNewRelic()扩展方法,示例代码如下:var host = Host.CreateDefaultBuilder(args) .UseNewRelic() .ConfigureServices(services => { services.AddHostedService<Worker>(); }) .Build(); - 检查Worker生命周期:确保Worker服务正常运行,无启动失败或立即退出的情况——服务未稳定运行时,Agent无法采集有效数据。
内容的提问来源于stack exchange,提问作者Unknown Coder
相关产品推荐
相关产品推荐

