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

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

3、安装grafana

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

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

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

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

8、进入到解压后的Loki文件夹下,可以看到Loki的运行程序,此处我们在该目录下,新家一个配置文件。大概内容,如图所示。
备注:retention_period如果是小时数,必须是24小时的整数倍。
详情有关Loki配置文件的配置内容,可以参考Loki的官方文档:https://grafana.com/docs/loki/latest/configuration/

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

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

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

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

13、在启动项内,添加对serilog日志的服务注册,注册服务的有关配置,通过获取配置文件自动关联。
如果需要了解serilog日志开发的其他方面的教程,可以参考我以前写的专题文章:https://www.cnblogs.com/weskynet/p/14829299.html

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

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

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

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

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

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

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

21、然后选择标签值信息

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

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

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

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

以上就是该文章的全部内容,如果有帮助,欢迎转发、点赞和评论。谢谢大家围观~如果对.NET开发感兴趣,也可以转到原文【https://www.cnblogs.com/weskynet/p/16759677.html】,到最下方点击QQ群链接,即可申请入群。再次感谢大佬们围观~~
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能的更多相关文章
- 搭建Loki、Promtail、Grafana轻量级日志系统(centos7)
搭建Loki.Promtail.Grafana轻量级日志系统(centos7)--简称PLG 需求 公司项目采用微服务的架构,服务很多,每个服务都有自己的日志,分别存放在不同的服务器上.当查找日志时需 ...
- 轻量级日志收集方案Loki
先看看结果有多轻量吧 官方文档:https://grafana.com/docs/loki/latest/ 简介 Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心. Loki ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...
- C#轻量级日志监控器EasyLogMonitor
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...
- REST服务中的日志可视化(关键技术实现)
引言 在系统构建完成之后,我们通常会使用REST API对外提供服务,在REST API的处理过程中经常会出现一些异想不到的问题(用户权限不足.参数不全.数据库访问异常等),导致请求失败,很多时候用户 ...
- 10min系列之二日志可视化进阶
10min系列之二日志可视化进阶(作者原创,同步发布在github) 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 本文所有的demo,都是浏览器下展示的 原创 ...
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...
- Android轻量级日志管理框架
代码地址如下:http://www.demodashi.com/demo/12134.html ViseLog Android 轻量级日志框架,使用森林对象维护不同的日志树进行日志输出,可以是Logc ...
- SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控
无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...
随机推荐
- 面试突击68:为什么 TCP 需要 3 次握手?
TCP 三次握手是一道经典的面试题,它是指 TCP 在传递数据之前,需要进行 3 次交互才能正式建立起连接,并进行数据传递. TCP 之所以需要 3 次握手是因为 TCP 双方都是全双工的.所谓全双工 ...
- zabbix监控添加学习笔记
在实际生产环境中,除了CPU.内存等一些系统信息可以挂载zabbix的自带模板Template OS Linux:但是一些公司开发的定制服务需要自己写模板或者监控项去监控: 一.监控公司的java服务 ...
- SpringBoot使用CORS的addCorsMappings中会遇到的问题
跨域需要后端需要设置响应的跨域头 如下 public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/ ...
- Azure Devops(十五) 使用Azure的私有Maven仓库
上一篇文章中,我们介绍了如何使用Azure的nuget仓库,今天我们来研究一下如何使用azure给我们提供的maven仓库. 首先,我们打开azureDevops,点击到制品界面,然后选择maven. ...
- axios&spring前后端分离传参规范总结
前后端分离开发的场景下,开发人员的工作内容更加专注与专业,但是也产生了一些额外的沟通成本.比如:本文中为大家说明的前后端参数传递与接受方法.本文主要是面对前端使用axios,后端使用Spring进行参 ...
- Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163 首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Ce ...
- 解决前端向后端请求静态资源的问题(基于express框架)
请求js,css,image资源: 前端 <script src='后端url/assets/js/xxx.js'>,<link href='后端url/assets/css/xxx ...
- .NET WebAPI 采用 IDistributedCache 实现分布式缓存过滤器 Redis 模式
分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护. 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时. 与其 ...
- Canvas 非线性图形(一):文本
基础 画布除了绘制图形以外还可以绘制文本,画布中的文本可以设置字体大小.字体格式.对齐方式(横向和纵向对齐方式),并且还可以制作很炫酷的文本,比如渐变文字. 文本有以下三个属性,控制文本的字体大小.字 ...
- 人人都能看懂的卡西欧fx991cnx玩机指南,手把手教你如何利用计算器的漏洞爆机
专业术语说明 你是VerB还是VerC 别人问你这个问题的时候不要慌,帮你看你的计算器是Ver几: 同时按住shift.7.开机键 9 5次shift 第一行后半句即是 紧接着可以顺便看看计算器的序列 ...