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

如何在Azure App Service中配置健康检查实现自动重启与监控

实现Azure自动实例修复与健康状态历史追踪

1. 暴露健康检查端点(Blazor Server补充配置)

你已完成健康检查服务注册,现在需要将其暴露为HTTP端点,让Azure能够访问并评估实例健康状态。在Program.cs的中间件配置部分添加以下代码:

// 映射健康检查端点,Azure将通过此路径检查实例健康
app.MapHealthChecks("/health", new HealthCheckOptions
{
    // 返回结构化JSON响应,便于Azure解析健康状态
    ResponseWriter = (context, report) => context.Response.WriteAsJsonAsync(report)
});

2. 配置Azure App Service自动修复机制

登录Azure门户,定位到你的Blazor Server所在的App Service,按以下步骤配置:

  • 左侧导航栏选择健康检查,开启健康检查功能
  • 设置路径为/health(与代码中配置的端点保持一致)
  • 配置修复规则:
    • 勾选当实例被标记为不健康时重启
    • 设置失败阈值(例如连续3次健康检查失败后触发修复)
    • 多实例部署场景下,Azure会自动将不健康实例从流量池中移除,创建新实例替代旧实例,保障服务可用性

3. 配置健康状态历史记录追踪

要在Azure仪表板查看健康状态历史,需将健康检查日志接入Azure Monitor:

3.1 启用日志收集

  • 在App Service的诊断设置中,创建新的诊断配置
  • 选择将日志发送到Log Analytics工作区,勾选AppServiceHTTPLogs和AppServicePlatformLogs选项
  • 保存配置,等待日志开始流入工作区

3.2 查看与可视化历史数据

  • 进入Log Analytics工作区,使用Kusto查询语句提取健康检查历史:
    AppServiceHTTPLogs
    | where UriStem == "/health"
    | project 时间戳=TimeGenerated, 状态码=StatusCode, 实例名称=HostName
    | sort by 时间戳 desc
    
  • 将查询结果保存为仪表板图表,添加到你的Azure仪表板中,即可直观查看健康状态的历史变化

4. 可选:增强健康检查可视化(本地/远程查看)

如果需要更直观的健康状态展示,可添加健康检查UI组件:

  1. 安装NuGet包:AspNetCore.HealthChecks.UI和AspNetCore.HealthChecks.UI.Client
  2. 在Program.cs中注册服务:
    builder.Services.AddHealthChecksUI()
        .AddInMemoryStorage(); // 生产环境可替换为数据库存储
    
  3. 映射UI端点:
    app.MapHealthChecksUI();
    

访问/healthchecks-ui即可查看所有健康检查项的实时状态与历史记录


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:53:13