JPProject.IdentityServer4.AdminUI 监控与日志:使用 Serilog 和 Application Insights 的最佳实践
2026/7/15 14:15:59 网站建设 项目流程

JPProject.IdentityServer4.AdminUI 监控与日志:使用 Serilog 和 Application Insights 的最佳实践

【免费下载链接】JPProject.IdentityServer4.AdminUI:wrench: ASP.NET Core 3 & Angular 8 Administration Panel for :revolving_hearts:IdentityServer4 and ASP.NET Core Identity项目地址: https://gitcode.com/gh_mirrors/jp/JPProject.IdentityServer4.AdminUI

JPProject.IdentityServer4.AdminUI 是一个基于 ASP.NET Core 3 和 Angular 8 的 IdentityServer4 管理面板,提供了完整的身份认证和授权管理功能。在生产环境中,有效的监控与日志系统是确保应用稳定运行的关键。本文将介绍如何利用 Serilog 和 Application Insights 为该项目构建强大的监控与日志解决方案。

为什么监控与日志对身份管理系统至关重要

身份管理系统是应用安全的核心,任何故障或异常都可能导致严重的安全风险。通过实时监控和详细日志,管理员可以:

  • 及时发现认证失败、授权异常等安全事件
  • 追踪用户操作行为,满足合规审计要求
  • 分析系统性能瓶颈,优化用户体验
  • 快速定位并解决系统故障

图:服务器监控示意图,展示了身份管理系统的监控架构

Serilog:强大的结构化日志解决方案

Serilog 是 .NET 生态中最受欢迎的日志框架之一,以其结构化日志功能和丰富的输出目标而闻名。在 JPProject.IdentityServer4.AdminUI 中,Serilog 已被集成到项目中,提供全面的日志记录能力。

Serilog 的核心配置

项目的 Serilog 配置位于 src/Backend/JPProject.Admin.Api/Program.cs 文件中,主要包括以下关键设置:

  • 日志级别配置:默认 Debug 级别,对 Microsoft 和 System 命名空间提升至 Information 级别
  • 日志输出目标:同时输出到控制台、文件和 Application Insights
  • 日志滚动策略:按天滚动,保留最近 5 天的日志文件

最佳实践:日志内容设计

  1. 包含关键上下文信息:用户 ID、客户端 ID、请求 ID 等
  2. 结构化日志格式:使用 Serilog 的结构化日志功能,便于后续分析
  3. 敏感信息过滤:确保日志中不包含密码、令牌等敏感数据
  4. 适当的日志级别:错误使用 Error 级别,警告使用 Warning,正常操作使用 Information

Application Insights:云端应用性能监控

Application Insights 是微软提供的云端应用性能管理服务,能够收集应用的性能数据、异常信息和用户行为,帮助开发人员持续改进应用质量。

集成 Application Insights

在 JPProject.IdentityServer4.AdminUI 中,Application Insights 通过以下方式集成:

  1. 添加 NuGet 包:Microsoft.ApplicationInsights.AspNetCore
  2. 配置 Telemetry:在 Program.cs 中设置 Application Insights 遥测
  3. 日志集成:通过 Serilog 的 ApplicationInsights 接收器将日志发送到 Application Insights

监控关键指标

建议在 Application Insights 中重点监控以下指标:

  • 请求性能:API 响应时间、吞吐量、错误率
  • 身份认证指标:登录成功率、令牌颁发数量、刷新令牌使用情况
  • 异常追踪:未处理异常的数量和类型,按客户端或用户分组
  • 依赖项性能:数据库查询时间、外部 API 调用性能

实施步骤:从零开始配置监控与日志

1. 准备工作

确保已安装以下工具和依赖:

  • .NET Core 3.1 SDK 或更高版本
  • Visual Studio 2019 或更高版本(可选)
  • Azure 账户(用于 Application Insights)

2. 配置 Serilog

Serilog 的配置已在项目中完成,主要配置文件为 src/Backend/JPProject.Admin.Api/Program.cs。如需自定义日志输出,可以修改以下代码段:

Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.ApplicationInsights(TelemetryConfiguration.Active, TelemetryConverter.Traces) .WriteTo.File(@"jpProject_sso_log-.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 5) .WriteTo.Console() .CreateLogger();

3. 设置 Application Insights

  1. 在 Azure 门户中创建 Application Insights 资源
  2. 获取 instrumentation key
  3. 在 appsettings.json 中添加 Application Insights 配置:
"ApplicationInsights": { "InstrumentationKey": "your-instrumentation-key" }

4. 验证监控与日志系统

启动应用程序,执行以下操作验证监控与日志是否正常工作:

  1. 访问管理面板并完成登录
  2. 执行一些基本操作,如创建客户端、添加 API 资源等
  3. 检查日志文件是否生成(默认路径:jpProject_sso_log-.txt)
  4. 在 Azure 门户中查看 Application Insights 数据

高级技巧:日志分析与告警

使用 Kusto 查询语言分析日志

Application Insights 提供强大的 Kusto 查询语言,可以帮助你深入分析日志数据。例如,查询最近 24 小时内的失败登录:

traces | where timestamp > ago(24h) | where message contains "Login failed" | project timestamp, message, customDimensions.UserId | order by timestamp desc

设置智能告警

在 Application Insights 中设置以下关键告警:

  • 登录失败率超过阈值
  • API 响应时间异常增加
  • 异常数量突增
  • 系统资源使用率过高

总结

通过 Serilog 和 Application Insights 的结合使用,JPProject.IdentityServer4.AdminUI 可以构建一个全面的监控与日志系统,帮助管理员实时掌握系统状态,及时发现并解决问题。正确配置和使用这些工具不仅能提高系统的可靠性和安全性,还能为持续优化提供宝贵的数据支持。

希望本文提供的最佳实践能帮助你更好地管理和维护 JPProject.IdentityServer4.AdminUI 应用,确保身份管理系统的稳定运行和安全防护。

【免费下载链接】JPProject.IdentityServer4.AdminUI:wrench: ASP.NET Core 3 & Angular 8 Administration Panel for :revolving_hearts:IdentityServer4 and ASP.NET Core Identity项目地址: https://gitcode.com/gh_mirrors/jp/JPProject.IdentityServer4.AdminUI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询