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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用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

 

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
Wesky
+关注
目录
打赏
0
0
0
0
13
分享
相关文章
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
567 69
Grafana Loki,轻量级日志系统
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
36 10
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
255 1
Tauri 开发实践 — Tauri 日志记录功能开发
除了实时性能监控,Hyper-V还支持日志记录和警报功能你知道吗?
Hyper-V不仅支持实时性能监控,还具备强大的日志记录和警报功能。通过事件查看器可访问详细的日志文件,涵盖虚拟机管理、配置及Hypervisor事件,帮助故障排查和性能分析。警报功能支持预定义和自定义规则,可通过多种方式通知管理员,确保及时响应问题,保障虚拟化环境的稳定运行。
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
本文为 iLogtail 开源两周年的实践案例分享,讨论了 iLogtail 作为日志采集工具的优势,包括它在性能上超越 Filebeat 的能力,并通过一系列优化解决了在生产环境中替换 Filebeat 和 Logstash 时遇到的挑战。
184 19
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
74 1
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
561 3
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
217 20

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等