.NET Core 基于 Grafana Loki 日志初体验

介绍

Loki: like Prometheus, but for logs.

Loki是一个轻量级的日志系统,受到Prometheus项目的启发,由Grafana团队设计和开发,所以在Grafana中是原生支持的,具有可水平扩展,高度可用等特性,通过存储压缩的、非结构化的日志以及仅索引元数据,更加易于操作并且运行成本更低。

github: https://github.com/grafana/loki

组件

•promtail 是代理,负责收集日志并将其发送给Loki。•loki 是主服务器,负责存储日志和处理查询。•Grafana 用于查询和显示日志。

安装

官方安装文档:https://grafana.com/docs/loki/latest/installation/

官网支持了几种常见的安装方式,我这里主要使用 Docker Compose 安装。

docker-compose.yaml

version: "3"networks:loki:services:loki:image: grafana/loki:2.2.1ports:- "3100:3100"command: -config.file=/etc/loki/local-config.yamlnetworks:- lokipromtail:image: grafana/promtail:2.2.1volumes:- /var/log:/var/logcommand: -config.file=/etc/promtail/config.ymlnetworks:- lokigrafana:image: grafana/grafana:latestports:- "3000:3000"networks:- loki

执行下边命令,下载docker-compose.yaml

wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml -O docker-compose.yaml

启动容器

docker-compose up -d

启动成功后,运行 docker ps,可以看到启动了3个服务,端口为3100的Grafana,端口为3000的loki服务,还有promtail代理。

接下来,访问 http://localhost:3000 到Grafana的页面,首次登录需要初始化账号和密码,然后找到左边菜单的 Configuration -> Data Sources -> Add Data Source -> Loki,配置数据源,在url里填写loki服务的地址即可,然后保存,然后可以到 Explore 页面,查看数据。

在 .NET Core 中配置

这里主要用到了 Serilog 的Loki扩展,我新建了一个 webapi项目,名字叫LogDemo,然后需要通过Nuget安装以下几个组件。

•Serilog•Serilog.AspNetCore•Serilog.Sinks.Grafana.Loki

安装完成以后,接着修改Program.cs 配置 Serilog。

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).UseSerilog((context, config) =>{config.Enrich.FromLogContext().Enrich.WithProperty("app", context.HostingEnvironment.ApplicationName).WriteTo.GrafanaLoki("http://localhost:3100").WriteTo.Console();});

启动项目后,刷新几次页面,再回到 Grafana 的Explore 页面,输出查询条件 {app="LogDemo"},然后就可以查询到webapi的日志。

总结

Grafana 原生支持,体验也很好,和其他日志系统ELK相比,具有轻量级,高可用,高效率等特点,是一个非常优秀的日志组件,本文简单尝试使用 Loki 日志系统,更多的介绍和配置请参照官方文档。

https://grafana.com/oss/loki/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql80重置密码_MySQL8.0修改密码问题

MySQL5.7和之前的用户修改密码方式&#xff1a;mysql -uroot -e "Set passwordpassword(‘123’);"mysql -uroot -p123.com -e "use mysql;update user set authentication_stringpassword(456) where userroot;"update mysql.user set authentication_str…

基于开源流程引擎Activiti5的工作流开发平台BPMX3

2019独角兽企业重金招聘Python工程师标准>>> BPMX3平台是宏天软件在ESTBPM2的基础上&#xff0c;追随开源工作流平台Activiti5&#xff0c;由原班开发团队&#xff0c;历时一年&#xff0c;现重新推出一套解决中国政府及企业的业务流程的开发平台。 相对商业的工作流…

通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定...

如果说Actor是dapr有状态服务的内部体现的话&#xff0c;那绑定应该是dapr对serverless这部分的体现了。我们可以通过绑定极大的扩展应用的能力&#xff0c;甚至未来会成为serverless的基础。最开始接触dapr的时候&#xff0c;会在其官方首页看到这么一句话“Dapr is a portabl…

三位一体,用游戏打通孩子记忆力、认知和双语启蒙的学前神器

对于孩子学习知识&#xff0c;现在父母多表现有2个极端&#xff0c;一种完全不让小小孩学硬知识&#xff0c;一种又希望孩子从很小开始就学硬知识。小木比较反对在孩子6岁前就给他们生硬地灌输知识&#xff0c;一定得认识多少个字&#xff0c;背多少个单词&#xff0c;但只要做…

mysql在线快速修改密码_MySQL修改密码的几种方式

这篇文章主要介绍了MySQL修改密码的几种方式&#xff0c;帮助大家更好的理解和使用MySQL&#xff0c;感兴趣的朋友可以了解下前言&#xff1a;在日常使用数据库的过程中&#xff0c;难免会遇到需要修改账号密码的情景&#xff0c;比如密码太简单需要修改、密码过期需要修改、忘…

分享一个CSS3的网格系统架构 - ResponsiveAeon

日期&#xff1a;2012-7-30 来源&#xff1a;GBin1.com 在线演示 本地下载 曾经介绍过其它类型的CSS3网格系统&#xff0c;今天我们介绍一款能够帮助你快速创建基于HTML5/CSS3的响应式布局框架 - ResponsiveAeon。 它拥有一个宽度为1104px并且基于12个列的网格框架系统&#…

网络协议,没有想象中那么难

十个人程序员里面&#xff0c;有十个都会说自己学过网络协议&#xff0c;九个人都会说自己懂网络协议。但是面试的时候&#xff0c;问几个问题&#xff0c;能回答的可能只有两三个。不信&#xff1f;来&#xff0c;我问你几道。1、TCP 协议跟 UDP 协议有什么区别&#xff1f;你…

Mysql实现幂等_阿里面试官:接口的幂等性怎么设计?

大家好&#xff0c;我是狂聊。自己最近负责的几个接口&#xff0c;都涉及到了幂等性的操作&#xff0c;抽空总结了一下&#xff0c;这也是面试官比较爱问的问题。一、什么是幂等?看一下维基百科怎么说的&#xff1a;幂等性&#xff1a;多次调用方法或者接口不会改变业务状态&a…

谷歌搜索揭示人性最黑暗的秘密

全世界只有3.14 % 的人关注了数据与算法之美《卫报》网站发布文章指出&#xff0c;我们能够从我们在网上问的问题获得对自己更多的了解呢。美国数据科学家塞斯斯蒂芬斯-大卫多维茨&#xff08;Seth Stephens-Davidowitz&#xff09;通过分析谷歌的匿名搜索数据&#xff0c;揭示…

杂集

为什么80%的码农都做不了架构师&#xff1f;>>> 符号相关快捷键: 千分符号&#xff1a;alt 0137 (小键盘) 回车符号&#xff1a;alt 10&#xff08;小键盘&#xff09; 查看目录结构&#xff1a;进入windows concole&#xff0c;执行命令tree 转载于:https://my.o…

接口管理平台YApi

介绍YApi 是高效、易用、功能强大的 api 管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API&#xff0c;YApi 还为用户提供了优秀的交互体验&#xff0c;开发人员只需利用平台提供的接口数据写入工具以及简单的…

saiku 连接 MySQL_Saiku连接mysql数据库(二)

Saiku连接Mysql数据库展示数据参考链接&#xff1a;https://www.cnblogs.com/shirui/p/8573491.html前提&#xff1a;Saiku已安装好&#xff0c;mysql已安装好1.添加Saiku的数据库驱动&#xff1a; mysql-connect-java-5.1.17.jar下载相应的数据库驱动放到 saiku-server\tomcat…

TreeView控件应用--访问文件或文件夹(一)

C#用TreeView访问文件或文件夹&#xff0c;通过递归&#xff0c;展开所有文件夹&#xff08;类似资源管理器的树形窗体&#xff09; 首先&#xff0c;算法是用递归算法&#xff0c;不断的递归文件。以此来遍历整个电脑的磁盘内容&#xff0c;过程也很简单。这种算法的时间复杂度…

凭自己本事单的身是一种怎样的体验?你根本配不上如此优秀的我!

全世界只有3.14 % 的人关注了数据与算法之美8月12号&#xff0c;微博网友烂剧斗士发了这么一条微博&#xff0c;称“看脱口秀大会这个哥没把我给笑死”。一位从事IT&#xff08;黑客&#xff09;的小哥哥&#xff0c;是这样回忆自己的求爱经历的↓↓#她根本配不上我这么聪明的男…

gather torch_浅谈Pytorch中的torch.gather函数的含义

pytorch中的gather函数pytorch比tensorflow更加编程友好&#xff0c;所以准备用pytorch试着做最近要做的一些实验。立个flag开始学习pytorch&#xff0c;新开一个分类整理学习pytorch中的一些踩到的泥坑。今天刚开始接触&#xff0c;读了一下documentation&#xff0c;写一个一…

WPF 右下角弹窗的简单实现

软件中经常出现右下角弹窗&#xff0c;从下面缓缓弹出的&#xff0c;这次就做个简陋的实现&#xff0c;思路就是在窗口加载和关闭时执行动画DoubleAnimation今天懒得做界面了&#xff0c;只实现了功能。看看效果&#xff1a;下面看看代码&#xff1a;主窗口添加一个按钮 &#…

你周围需要这6种人(文摘)

几乎没有什么不可思议的产品是一个人就能完成的。你需要其他人来帮助你&#xff0c;你也需要去帮助别人。在一个好的团队中&#xff0c;都需要哪种类型的人进驻&#xff1f;来自Forbes的Jessica Hagy告诉我们&#xff0c;你的周围需要这6种人&#xff1a;1. “怂恿者”&#xf…

今年不容易,要懂得爱护自己

冬天到了&#xff0c;衣服逐层加厚&#xff0c;脖子老是皱巴巴的&#xff0c;坐在位置上老是觉得周身不舒服&#xff0c;小木提醒下大家该爱护一下自己的颈椎。这个像缩成一团的东西&#xff0c;是什么&#xff1f;打开以后&#xff0c;它就变成个旅行枕啦&#xff0c;就是我们…

实现多租户系统的一点思考

2020年突发的新冠疫情&#xff0c;让在线协同办公在疫情期间成为了刚需。我们也从 2020 年的 2月3 日开始在家远程办公&#xff0c;直到四月份。协同办公软件一下子火爆了起来&#xff0c;钉钉、企业微信、特别是腾讯会议等都在疫情期间表现突出&#xff0c;呈现出井喷式的发展…

mysql cast 四舍五入_MySQL数据库中CAST与CONVERT函数实现类型转换的讲解

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值&#xff0c;并产生另一个类型的值。两者具体的语法如下&#xff1a; CAST(value as type);CONVERT(value, type);就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个&…