【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

前言:日志功能是几乎所有程序或系统都必备的一个功能 。该文章通过使用Loki+Grafana来实现日志记录与可视化查询,欢迎围观 。
有关环境:
操作系统:WIN 10
.NET环境:.NET 6
开发环境:VS 2022
1、首先下载Grafana安装包 , 此处下载最新的企业版,当前最新的版本是9.1.7 。大佬们可以根据自己需要选择有关版本
下载地址:https://grafana.com/grafana/download?platform=windows

【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
2、然后下载Loki环境 。我选择的2.6.0版本(最新版是2.6.1,但是还没有提供Windows安装版本 。大佬们感兴趣也可以下载Loki源码自行编译为安装包)
下载地址:https://github.com/grafana/loki/releases
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
3、安装grafana
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
4、安装完毕以后,浏览器输入 http://localhost:3000 即可跳转到登陆页面 。初始用户名和密码都是admin
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
5、登陆以后,就可以看到grafana的主页面了 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
6、可选部分:下载promtail环境 。该组建用于日志的中转使用 , 以下文章内容没有使用到该组建 , 可以自行选择使用 。如果要做强大一点的,建议使用 。
如果以上三个工具都不好下载,可以进入文章原文:【https://www.cnblogs.com/weskynet/p/16759677.html】,通过公众号回复关键字进行领取我本地下载好的安装包等内容,包括该文章的源码 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
7、把下载好的Loki解压出来备用
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
8、进入到解压后的Loki文件夹下,可以看到Loki的运行程序 , 此处我们在该目录下,新家一个配置文件 。大概内容,如图所示 。
备注:retention_period如果是小时数,必须是24小时的整数倍 。
详情有关Loki配置文件的配置内容,可以参考Loki的官方文档:https://grafana.com/docs/loki/latest/configuration/
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
9、启动Loki服务 。建议在控制台下进行启动,否则可能一闪而过 。启动命令: xxx.exe --config.file=配置文件.yaml
如果启动都没有问题 , 也可以挂载到Windows服务 。如何挂载到Windows服务(.bat文件、exe文件、带有服务启动信息的dll等都可以挂载为Windows服务),可以参考另一篇文章,关于挂载Elasticsearch等到Windows服务的方法:https://www.cnblogs.com/weskynet/p/14961565.html
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
10、接下来创建一个简单的测试案例,来试一下Loki日志的效果 。创建一个基于.NET6的webapi服务 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
【【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能】11、引用serilog包 , 有关引用的包详情,可以参考下图所示 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
12、然后在appsetrtings配置文件内,添加有关配置信息 。此处把日志分别输出到控制台和Loki上 。并且在Loki上,配置对应日志标签 , 标签用于做查询和日志一些规则匹配使用.
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
13、在启动项内,添加对serilog日志的服务注册,注册服务的有关配置,通过获取配置文件自动关联 。
如果需要了解serilog日志开发的其他方面的教程,可以参考我以前写的专题文章:https://www.cnblogs.com/weskynet/p/14829299.html
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
14、新增一个控制器,用来做日志写入测试 。构造函数注入日志服务,并进行输出三个不同类型的日志 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
15、运行程序,在swagger内调用一下 。访问成功以后,可以看到控制台已有日志输出 。
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

文章插图
16、打开grafana,左下角选择 数据源(Data sources)
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能

推荐阅读