如何在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组件:
- 安装NuGet包:
AspNetCore.HealthChecks.UI和AspNetCore.HealthChecks.UI.Client - 在
Program.cs中注册服务:builder.Services.AddHealthChecksUI() .AddInMemoryStorage(); // 生产环境可替换为数据库存储 - 映射UI端点:
app.MapHealthChecksUI();
访问/healthchecks-ui即可查看所有健康检查项的实时状态与历史记录
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

