轻量级日志系统Loki原理简介和使用(1)

简介: 轻量级日志系统Loki原理简介和使用(1)

前言


这篇文章应朋友的要求,让写一篇loki日志系统,咱定义不容辞 一定要好好写 开干!


现实中的需求


公司的容器云运行的应用或某一个节点出现了问题,解决的思路


image.png


问题首先被prometheus监控


1、metric是来说明当前或者历史达到了某个值


2、alert设置metric达到某个特定的基数触发了告警


仅仅这些日志是不能够解决问题的 还需要看下应用的日志


k8s的基本单位是pod


pod把日志输出到stdout和stderr


当某个pod的内存变得很大


触发了我们的alert


这个时候管理员


去页面查询确认是哪个pod有问题


然后要确认pod内存变大的原因


我们还需要去查询pod的日志


如果没有日志系统



那么我们就需要到页面或者使用命令进行查询了



image.png


如果这个时候应用挂掉了 那么就没有办法再查询到相关日志了


解决该需求可供选择的方案


ELK


优势:


1、功能丰富,允许复杂的操作


劣势:


1、主流的ELK(全文检索)或者EFK比较重


2、ES复杂的搜索功能很多都用不上 规模复杂,资源占用高,操作苦难


大多数查询只关注一定时间范围和一些简单的参数(如host、service等)


3、Kibana和Grafana之间切换,影响用户体验


4、倒排索引的切分和共享的成本较高


Loki


1、最小化度量和日志的切换成本


有助于减少异常事件的响应时间和提高用户的体验


2、在查询语言的易操作性和复杂性之间可以达到一个权衡


3、更具成本效益



loki组件介绍


Promtail


  • 用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具


  • 该工具主要包括发现采集目标以及给日志流添加上 Label 标签 然后发送给 Loki


  • Promtail 的服务发现是基于 Prometheus 的服务发现机制实现的


Loki


  • 受 Prometheus 启发的可以水平扩展、高可用以及支持多租户的日志聚合系统


  • 使用了和 Prometheus 相同的服务发现机制,将标签添加到日志流中而不是构建全文索引


  • 从 Promtail 接收到的日志和应用的 metrics 指标就具有相同的标签集


  • 不仅提供了更好的日志和指标之间的上下文切换,还避免了对日志进行全文索引


Grafana


  • 一个用于监控和可视化观测的开源平台


  • 支持非常丰富的数据源


  • 在 Loki 技术栈中它专门用来展示来自 Prometheus 和 Loki 等数据源的时间序列数据


  • 可进行查询、可视化、报警等操作


  • 可以用于创建、探索和共享数据 Dashboard


  • 鼓励数据驱动


Loki架构


image.png


1、

Loki使用了和prometheus一样的标签来作为索引

通过标签既可以查询日志的内容也可以查询到监控的数据

不但减少了两种查询之间的切换成本

也极大地降低了日志索引的存储


2、

Loki将使用与prometheus相同的服务发现和标签重新标记库编写了pormtail

在k8s中promtail以daemonset方式运行在每个节点中

通过kubernetes api等到日志的正确元数据

并将它们发送到Loki


日志的存储架构


image.png


相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
585 122
基于docker搭建监控系统&日志收集
|
9月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
6月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
751 2
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
4861 69
Grafana Loki,轻量级日志系统
|
8月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
12月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
536 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
268 10
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
790 7
MySQL事务日志-Undo Log工作原理分析
|
12月前
|
存储 监控 Java
G1原理—7.G1的GC日志分析解读
本文进行了TLAB的GC日志解读、YGC的GC日志解读、模拟YGC(单次GC及多次GC的不同场景)、打开实验选项查看YGC的详情日志信息、Mixed GC日志信息之初始标记过程、Mixed GC日志信息之混合回收过程。