现代化日志解决方案 PLG (Promtail +Loki + Grafana )

2023-11-30 02:20

本文主要是介绍现代化日志解决方案 PLG (Promtail +Loki + Grafana ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 解决方案 PLG概述
    • Promtail:
    • Loki:
    • Grafana:
  • Loki概述
  • Loki overview
  • 3个组件 (Promtail + Loki + Grafana)
  • 特点
  • 导图

解决方案 PLG概述

Promtail、Loki 和 Grafana 是一组开源工具,通常一起使用,用于帮助监控、收集、存储和可视化日志和指标数据的现代化日志解决方案。

Promtail:

介绍:Promtail 是 Grafana Labs 开发的一个用于日志收集的开源代理。它特别与 Prometheus 和 Loki 集成得非常好,以帮助用户从各种应用程序和服务中轻松收集和标准化日志数据。
功能:Promtail 会监视目标日志文件、目录或系统日志流,并将其发送到 Loki 数据源。它还支持标签化日志以使其更易于查询,类似于 Prometheus 的标签数据模型。
用途:Promtail 可以与容器化环境、Kubernetes 集群和传统主机一起使用,以便实时收集和传输日志数据。

Loki:

介绍:Grafana Loki 是一个开源的日志聚合和存储系统,旨在提供高效的日志存储和查询。它专门用于处理大规模的分布式日志数据。
功能:Loki 提供了一个标签索引系统,类似于 Prometheus,以便高效地存储和查询日志。它支持 LogQL 查询语言,允许用户执行强大的查询以检索和分析日志数据。
用途:Loki 通常与Promtail一起使用,以收集、存储和查询分散的日志数据。它还与 Grafana 集成,使用户可以创建仪表板和可视化,以展示日志数据和监控指标的关系。

Grafana:

介绍:Grafana 是一款开源的数据可视化和监控工具,用于创建仪表板和可视化不同数据源的指标数据和日志数据。

功能:Grafana 支持多种数据源,包括 Prometheus、Loki、Elasticsearch、InfluxDB 等。它允许用户创建交互式仪表板,图表、警报和面板,以实时监控应用程序性能、系统指标和日志数据。

用途:Grafana 通常用于可视化监控指标数据和日志数据,以便在一个集中的仪表板中跟踪应用程序性能和健康状态。它与 Prometheus、Loki 和其他数据源集成得很好,为用户提供一个综合的监控和可视化解决方案。

综合使用 Promtail、Loki 和 Grafana 可以实现从应用程序生成的日志数据的收集、存储、查询和可视化,有助于更好地理解应用程序的行为,识别问题,以及监视性能和可用性。这一组工具通常在现代DevOps和云原生环境中得到广泛使用。


Loki概述

https://grafana.com/docs/loki/latest/

在这里插入图片描述


Loki overview

在这里插入图片描述

Loki 是一个受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。Loki 与 Prometheus 的不同之处在于,它关注日志而不是指标,并通过推送而不是拉取来收集日志。

Loki 的设计非常经济高效且具有高度可扩展性。与其他日志系统不同,Loki 不会对日志内容进行索引,而只会对有关日志的元数据进行索引,作为每个日志流的一组标签。

日志流是一组共享相同标签的日志。标签可帮助 Loki 在数据存储中查找日志流,因此拥有一组高质量的标签是高效执行查询的关键。

然后,日志数据被压缩并以块的形式存储在对象存储中,例如 Amazon Simple Storage Service (S3) 或 Google Cloud Storage (GCS),甚至为了开发或概念验证而存储在文件系统上小索引和高度压缩的块简化了操作并显着降低了 Loki 的成本


3个组件 (Promtail + Loki + Grafana)

  • 代理- 代理或客户端,例如与 Loki 一起分发的 Promtail 或 Grafana 代理。代理抓取日志,通过添加标签将日志转换为流,并通过 HTTP API 将流推送到 Loki。

  • Loki - 主服务器,负责摄取和存储日志以及处理查询。它可以部署在三种不同的配置中,有关详细信息,请参阅部署模式。

  • Grafana用于查询和显示日志数据。您还可以使用LogCLI或直接使用 Loki API从命令行查询日志


特点

  • 可扩展性- Loki 专为可扩展性而设计,可以从小到在 Raspberry Pi 上运行扩展到每天摄取 PB 数据。在其最常见的部署“简单可扩展模式”中,Loki 将请求解耦到单独的读取和写入路径中,以便您可以独立扩展它们,从而实现灵活的大规模安装,可以快速适应在任何给定时间满足您的工作负载。如果需要,Loki 的每个组件也可以作为微服务运行,旨在在 Kubernetes 中本地运行。

  • 多租户- Loki 允许多个租户共享一个 Loki 实例。通过多租户,每个租户的数据和请求与其他租户完全隔离。通过在代理中分配租户 ID 来配置多租户。

  • 第三方集成- 多个第三方代理(客户端)通过插件支持 Loki。这使您可以保留现有的可观察性设置,同时还将日志发送到 Loki。

  • 高效存储- Loki 将日志数据存储在高度压缩的块中。同样,Loki 索引由于只索引标签集,因此明显小于其他日志聚合工具。压缩的块、更小的索引以及低成本对象存储的使用使得 Loki 的运行成本更低。

  • LogQL,Loki 的查询语言- LogQL是 Loki 的查询语言。已经熟悉 Prometheus 查询语言PromQL的用户会发现 LogQL 熟悉且灵活,可以针对日志生成查询。该语言还有助于从日志数据生成指标,这是一个远远超出日志聚合范围的强大功能。

  • 警报- Loki 包含一个称为标尺的组件,它可以持续评估针对日志的查询,并根据结果执行操作。这使您可以监视日志中的异常或事件。Loki 与Prometheus Alertmanager或Grafana 中的警报管理器集成。

  • Grafana 集成- Loki 与 Grafana、Mimir 和 Tempo 集成,提供完整的可观察性堆栈以及日志、指标和跟踪之间的无缝关联。


导图

在这里插入图片描述

这篇关于现代化日志解决方案 PLG (Promtail +Loki + Grafana )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435245

相关文章

Seata之分布式事务问题及解决方案

《Seata之分布式事务问题及解决方案》:本文主要介绍Seata之分布式事务问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Seata–分布式事务解决方案简介同类产品对比环境搭建1.微服务2.SQL3.seata-server4.微服务配置事务模式1

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL