3

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

 1 year ago
source link: https://www.cnblogs.com/weskynet/p/16759677.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【.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

1995789-20221007134158442-249670103.png

2、然后下载Loki环境。我选择的2.6.0版本(最新版是2.6.1,但是还没有提供Windows安装版本。大佬们感兴趣也可以下载Loki源码自行编译为安装包)

下载地址:https://github.com/grafana/loki/releases

1995789-20221007134210145-471254439.png

3、安装grafana

1995789-20221007134219507-15586712.png

4、安装完毕以后,浏览器输入 http://localhost:3000 即可跳转到登陆页面。初始用户名和密码都是admin

1995789-20221007134229069-1198169755.png

5、登陆以后,就可以看到grafana的主页面了。

1995789-20221007134246364-2097551951.png

6、可选部分:下载promtail环境。该组建用于日志的中转使用,以下文章内容没有使用到该组建,可以自行选择使用。如果要做强大一点的,建议使用。

如果以上三个工具都不好下载,可以进入文章原文:【https://www.cnblogs.com/weskynet/p/16759677.html】,通过公众号回复关键字进行领取我本地下载好的安装包等内容,包括该文章的源码。

1995789-20221007134256497-1043816818.png

7、把下载好的Loki解压出来备用

1995789-20221007134318757-1523280813.png

8、进入到解压后的Loki文件夹下,可以看到Loki的运行程序,此处我们在该目录下,新家一个配置文件。大概内容,如图所示。

备注:retention_period如果是小时数,必须是24小时的整数倍。

详情有关Loki配置文件的配置内容,可以参考Loki的官方文档:https://grafana.com/docs/loki/latest/configuration/

1995789-20221007134327566-1910341412.png

9、启动Loki服务。建议在控制台下进行启动,否则可能一闪而过。启动命令: xxx.exe --config.file=配置文件.yaml

如果启动都没有问题,也可以挂载到Windows服务。如何挂载到Windows服务(.bat文件、exe文件、带有服务启动信息的dll等都可以挂载为Windows服务),可以参考另一篇文章,关于挂载Elasticsearch等到Windows服务的方法:https://www.cnblogs.com/weskynet/p/14961565.html

1995789-20221007134344551-385475741.png

10、接下来创建一个简单的测试案例,来试一下Loki日志的效果。创建一个基于.NET6的webapi服务。

1995789-20221007134354032-98874728.png

11、引用serilog包,有关引用的包详情,可以参考下图所示。

1995789-20221007134408291-762220703.png

12、然后在appsetrtings配置文件内,添加有关配置信息。此处把日志分别输出到控制台和Loki上。并且在Loki上,配置对应日志标签,标签用于做查询和日志一些规则匹配使用.

1995789-20221007134416454-890201587.png

13、在启动项内,添加对serilog日志的服务注册,注册服务的有关配置,通过获取配置文件自动关联。

如果需要了解serilog日志开发的其他方面的教程,可以参考我以前写的专题文章:https://www.cnblogs.com/weskynet/p/14829299.html

1995789-20221007134424890-1313299925.png

14、新增一个控制器,用来做日志写入测试。构造函数注入日志服务,并进行输出三个不同类型的日志。

1995789-20221007134432741-1107317826.png

15、运行程序,在swagger内调用一下。访问成功以后,可以看到控制台已有日志输出。

1995789-20221007134440392-120868154.png

16、打开grafana,左下角选择 数据源(Data sources)

1995789-20221007134449237-89556422.png

17、选择Loki数据源,并输入Loki部署的地址(此处是本地地址,如果需要修改部署地址和端口,可以Loki配置文件内修改)。

1995789-20221007134457557-1955938894.png

18、配置地址完毕以后,选择保持和测试,提示成功即可。

1995789-20221007134505835-621508778.png

19、然后转到Explore菜单栏,可以对查询功能进行预设。区间如图所示。

1995789-20221007134516547-1277511471.png

20、在搜索栏里面,选择标签信息。

1995789-20221007134525537-1702802246.png

21、然后选择标签值信息

1995789-20221007134532866-73301702.png

22、根据选择时间区间查询,即可查到对应日志。

1995789-20221007134540491-1043111457.png

23、也可以通过Json形式进行查看。

1995789-20221007134548562-1902256719.png

24、也可以做关键字查询。具体查询套路,也可以参考grafana的有关文档进行了解。

1995789-20221007134556262-2026111696.png

25、如果需要文章内配套的安装包以及源码,可以微信扫描下方二维码,或者搜索公众号【Dotnet Dancer】,在公众号聊天窗口回复【Loki】即可获取以上所有内容:包括grafana安装包、Loki程序以及对应配置文件、promtail程序以及预设配置文件、LokiDemo源码。

1995789-20221007134611739-1892757963.jpg

以上就是该文章的全部内容,如果有帮助,欢迎转发、点赞和评论。谢谢大家围观~如果对.NET开发感兴趣,也可以转到原文【https://www.cnblogs.com/weskynet/p/16759677.html】,到最下方点击QQ群链接,即可申请入群。再次感谢大佬们围观~~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK