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

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

Distributor


1、

promtail收集日志并将其发送给loki



Distributor就是第一个接收日志的组件


Loki通过构建压缩数据块来实现批处理和压缩数据


2、


组件ingester是一个有状态的组件


负责构建和刷新chunck


当chunk达到一定的数量或者时间后


刷新到存储中去


3、


每个流的日志对应一个ingester



当日志到达Distributor后


根据元数据和hash算法计算出应该到哪个ingester上面


image.png


4、为了冗余和弹性,我们将其复制n(默认情况下为3)次


Ingester


ingester接收到日志并开始构建chunk


image.png


将日志进行压缩并附加到chunk上面


一旦chunk“填满”(数据达到一定数量或者过了一定期限)


ingester将其刷新到数据库


我们对块和索引使用单独的数据库


因为它们存储的数据类型不同


image.png


刷新一个chunk之后


ingester然后创建一个新的空chunk并将新条目添加到该chunk中


Querier


1、 由Querier负责给定一个时间范围和标签选择器


Querier查看索引以确定哪些块匹配


并通过greps将结果显示出来


它还从Ingester获取尚未刷新的最新数据


2、


对于每个查询


一个查询器将为您显示所有相关日志


实现了查询并行化


提供分布式grep




即使是大型查询也是足够的


拓展性


  • Loki的索引存储可以是cassandra/bigtable/dynamodb


  • chuncks可以是各种对象存储


  • Querier和Distributor都是无状态的组件


  • 对于ingester他虽然是有状态的 但当新的节点加入或者减少整节点间的chunk会重新


  • 分配,以适应新的散列环


环境搭建(使用docker编排来实现)


安装loki、promtail、grafana


  • 编写docker编排配置文件


vim docker-compose.yaml
version: "3"
networks:
  loki:
services:
  loki:
    image: grafana/loki:1.5.0
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki
  promtail:
    image: grafana/promtail:1.5.0
    volumes:
      - /var/log:/var/log
    command: -config.file=/etc/promtail/docker-config.yaml
    networks:
      - loki
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    networks:
      - loki


  • 启动安装


docker-compose up -d


image.png


image.png


image.png

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