ABP VNext + Grafana Loki:集中式日志聚合

📝 ABP VNext + Grafana Loki:集中式日志聚合



一、引言

✨ TL;DR

  • Serilog 将 ABP 应用日志推送到 Grafana Loki,实现结构化、标签化存储,便于查询和追踪。
  • Grafana 中配置日志面板、查询模板与告警规则,支持多服务多环境的统一日志聚合。
  • 实现高可用、可扩展的日志管理体系,轻松定位问题并提高运维效率。

📚 背景与动机
在 ABP 微服务架构下,日志分散在多个服务实例中,排查问题时需要登录多个实例查看日志,运维成本高且不便实时监控。Grafana Loki 通过仅索引日志的标签,结合 Grafana 原生支持,能够实现零运维的集中式日志解决方案,极大提升查询性能与可用性。本教程展示了如何在 ABP VNext 应用中,结合 Serilog 和 Grafana Loki 构建高效、可复现的日志管理系统。


二、环境与依赖

🛠️ 平台版本

  • .NET 6 + ABP VNext 6.x
  • Grafana ≥ 9.xLoki ≥ 2.x

🔗 NuGet 包

  • Serilog.AspNetCore
  • Serilog.Sinks.Grafana.Loki(支持 /loki/api/v1/push 接口)
  • Serilog.Formatting.Compact(结构化 JSON 格式)

⚙️ 基础服务

  • Loki ▶ HTTP 接收器(<loki_host>:3100
  • Grafana ▶ 配置 Data Source 指向 Loki

三、Serilog + Loki 集成

3.1 安装与配置

首先在项目中安装必需的 NuGet 包:

dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Sinks.Grafana.Loki
dotnet add package Serilog.Formatting.Compact

Program.cs 中进行 Serilog 配置:

using Serilog;
using Serilog.Formatting.Compact;

Log.Logger = new LoggerConfiguration()
  .Enrich.FromLogContext()
  .Enrich.WithProperty("Application", "OrderService")
  .Enrich.WithProperty("Environment", builder.Environment.EnvironmentName)
  .Enrich.WithProperty("TraceId", Activity.Current?.TraceId.ToString() ?? "unknown")
  .Enrich.WithProperty("TenantId", "Tenant123")
  .WriteTo.Console(new RenderedCompactJsonFormatter())
  .WriteTo.GrafanaLoki("http://loki:3100", labels: new Dictionary<string, string>
  {
   
   
      {
   
    "Application", "OrderService" },
      {
   
    "Environment", builder.Environment.EnvironmentName }
  })
  .CreateLogger();

builder.Host.UseSerilog();

3.2 添加标签

为了进一步增强日志的可查询性,可以在日志中加入更多的标签,如 TraceIdTenantId,使得日志查询更加精确。

Log.Logger = new LoggerConfiguration()
  .Enrich.FromLogContext()
  .Enrich.WithProperty("Application", "OrderService")
  .Enrich.WithProperty("Environment", builder.Environment
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kookoos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值