现代化日志解决方案 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

相关文章

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

kkFileView在线预览office的常见问题以及解决方案

《kkFileView在线预览office的常见问题以及解决方案》kkFileView在线预览Office常见问题包括base64编码配置、Office组件安装、乱码处理及水印添加,解决方案涉及版本适... 目录kkFileView在线预览office的常见问题1.base642.提示找不到OFFICE组件

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

Spring Security常见问题及解决方案

《SpringSecurity常见问题及解决方案》SpringSecurity是Spring生态的安全框架,提供认证、授权及攻击防护,支持JWT、OAuth2集成,适用于保护Spring应用,需配置... 目录Spring Security 简介Spring Security 核心概念1. ​Securit

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字