搞定Loki+Promtail轻量级日志系统

Promtail 是 Loki 的日志收集客户端,它的主要功能是从各种来源收集日志并将其发送到 Loki 进行存储和查询。Promtail 的设计使其能够高效地收集和处理日志数据。
在这里插入图片描述

  • promtail-config.yaml(配置):
    Promtail 读取配置文件(例如 promtail-config.yaml),配置文件中定义了日志文件路径、标签、以及 Loki 服务器的地址等。

  • 文件监控:
    Promtail 监控指定的日志文件或目录,当日志文件有新的条目时,Promtail 通过 inotify 或类似机制接收通知。

  • 读取日志:
    Promtail 使用 tailing 机制读取新的日志条目,并使用位置文件记录已读取的位置,以便在重启时从正确的位置继续读取。

  • 添加标签:
    Promtail 将预定义的标签添加到每条日志记录中,这些标签在后续查询中非常重要。

  • 批量和缓冲:
    Promtail 将日志条目进行批量处理和缓冲,以提高发送效率并减少网络开销。

  • 发送到 Loki:
    Promtail 将处理后的日志数据批量发送到 Loki 服务器,通过 HTTP 或 gRPC 协议进行通信。

Promtail 与 Loki 通信
Promtail 与 Loki 之间的通信通过 HTTP API 实现。Promtail 会使用 Loki 的 /loki/api/v1/push 接口将日志数据发送到 Loki。每条日志数据包含日志内容和相关的标签信息,Loki 接收到日志后会根据标签进行存储和索引。

如下配置文件 promtail-config.yaml 中定义了 scrape_configs 来指定要收集的日志文件路径和标签。

server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /tmp/positions.yamlclients:- url: http://127.0.0.1:3100/loki/api/v1/pushscrape_configs:- job_name: service_logsstatic_configs:- targets:- localhostlabels:job: servicelogs__path__: /path/services/logs/node1/output.log- targets:- localhostlabels:job: servicelogs__path__: /path/services/logs/node2/output.log- targets:- localhostlabels:job: servicelogs__path__: /path/services/logs/node3/output.log

Promtail 的性能优化

Tailing 机制:

  • Promtail 使用 tailing 机制读取新的日志条目,只读取新增的部分,而不是整个文件。这种机制减少了 I/O 操作,从而降低了系统的负载。

批量处理:

  • Promtail 将日志条目批量处理和发送,减少了与 Loki 的通信次数,提高了网络和 CPU 的利用效率。
  • 通过配置文件调整批量大小和发送间隔。

资源配置:

  • 调整 Promtail 的资源配置,如内存限制和 CPU 配额,确保它能稳定运行。
  • 确保 Promtail 所在的服务器有足够的 I/O
    性能,以处理高频率的日志写入和读取操作。

Promtail 配置优化

server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /var/log/positions.yamlclients:- url: http://localhost:3100/loki/api/v1/pushscrape_configs:- job_name: systemstatic_configs:- targets:- localhostlabels:job: varlogs__path__: /var/log/*.log# 批处理和发送配置client:backoff_config:min_period: 500msmax_period: 5smax_retries: 10batch_size: 1048576 # 1MBbatch_wait: 1s

其他优化策略

日志轮转(Log Rotation):

  • 使用日志轮转机制定期(例如每天)切割日志文件,确保日志文件不会过大,影响读取性能。
  • 确保 Promtail 配置正确处理轮转后的日志文件。

多线程和并发处理:

  • 确保 Promtail 使用多线程和并发处理来提高日志处理的吞吐量。
  • 通过配置文件调整 Promtail 的并发处理参数。

硬件和系统优化:

  • 使用 SSD 代替 HDD 以提高 I/O 性能。
  • 增加系统内存和 CPU 资源,确保 Promtail 能够高效运行。

监控和调试

监控 Promtail 性能:

  • 使用 Prometheus 和 Grafana 监控 Promtail 的性能指标,如 CPU 使用率、内存使用率、日志处理速率等。
  • 根据监控数据及时调整 Promtail 的配置。

调试和日志:

  • 启用 Promtail 的调试日志,查看其运行状态和性能问题。
  • 定期检查 Promtail 的日志文件,确保其正常工作。

配置 Promtail 以发送自身的性能指标到 Prometheus:

server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /var/log/positions.yamlclients:- url: http://localhost:3100/loki/api/v1/pushmetrics:enabled: truelisten_address: 0.0.0.0:9095scrape_configs:- job_name: systemstatic_configs:- targets:- localhostlabels:job: varlogs__path__: /var/log/*.log

通过这些优化和监控手段,Promtail 可以高效地处理日志文件,并保持系统稳定性和性能。

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

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

相关文章

初阶数据结构二叉树练习系列(1)

这个系列的文章将带大家一起刷题,并且总结思路 温馨提示:本篇文章里的练习题仅适合刚学完二叉树的小白使用 相同的树 思路 情况分析:第一种情况:两棵树都为空 → 返回true 第二种情况&am…

C++ 引用——引用的基本语法

引用的基本使用 作用:给变量起别名 语法:数据类型 &别名 原名 示例: 运行结果:

如何利用Kimi解读Kimi的KVCache技术细节

最近Kimi公布了一篇Mooncake: Kimis KVCache-centric Architecture for LLM Serving的文章,详细介绍了Kimi背后的推理架构,因此笔者想到用Kimi解读Kimi,梳理相关技术要点如下,供大家参考: 文章 "Mooncake: A KVCa…

JVM原理(三):JVM对象回收判定机制与回收算法

如何判断一个对象是否存活(即是否还分配在堆中),那看他是否还在用。 1. 引用计数算法 这是一种判断方式,相应的方法就是:如果一个对象被引用,那将被引用的对象中的一个计数器加一,引用失效就减一。在任何时刻引用计数…

STM32自己从零开始实操07:电机电路原理图

一、LC滤波电路 其实以下的滤波都可以叫低通滤波器。 1.1倒 “L” 型 LC 滤波电路 1.1.1定性分析 1.1.2仿真实验 电感:通低频阻高频的。仿真中高频信号通过电感,因为电感会阻止电流发生变化,故说阻止高频信号 电容:隔直通交。…

免费分享:中国三级及以上河流(附下载方法)

河流分级法的分级方法是从源头最小河流开始,称为一级河流;两条一级河流汇合成二级河流;以此类推,三级河流等等;最后是干流。本文将介绍中国三级及以上河流数据。 数据简介 1:100万中国三级及以上河流矢量数据是涵盖了全国范围内三级及以上级别河流的详细地理信息和空间分布。这…

App Store迎来了重磅更新,ASO冲榜优化或将成为不可或缺的一部分

近日App Store搜索页面迎来了重磅更新,苹果应用商店中搜索页面原有的热搜关键词消失了取而代之的是直接将排行榜放在了搜索顶部,分别是APP排行和游戏排行两部分。如下图: 很多人应该都是参考排行榜来下载APP的,这次更新之后用户在…

基于工业互联网的智能制造:未来制造业的新引擎

随着科技的飞速发展,工业互联网通过提供强大的数据支撑和通信基础,成为智能制造的重要基石。智能制造的引入,不仅显著提升了制造业的生产效率、降低了成本,而且提高了产品质量,满足了市场的多样化、个性化需求。 智能制…

解决问题:使用PageHelper.startPage和PageInfo实现分页,但是得到的total和传入的页面大小pageSize一样

我们需要的是total得到的数值是数据库里所有数据的条数。 1、包别引错 <!--PageHelper开始--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</…

kafka 生产者

生产者 生产者负责创建消息&#xff0c;然后将其投递到Kafka中。 负载均衡 轮询策略。随机策略。按照 key 进行hash。 Kafka 的默认分区策略&#xff1a;如果指定了 key&#xff0c;key 相同的消息会发送到同一个分区&#xff08;分区有序&#xff09;&#xff1b;如果没有…

光伏储能电厂设备连接iec61850平台解决方案

在当今日益发展的电力系统中&#xff0c;光伏储能技术以其独特的优势逐渐崭露头角&#xff0c;成为可再生能源领域的重要组成部分。而在光伏储能系统的运行与监控中&#xff0c;通信协议的选择与实现则显得至关重要。本文将重点介绍光伏储能系统中的Modbus协议、电力IEC 61850平…

reids一主多从配置

-----------------跳过了安装redis的过程--------------------------- 主192.168.25.129从 192.168.25.130从 192.168.25.133 redis主从复制环境&#xff0c;基本上都是在从服务器上修改相关的配置 1、在俩台从服务器分别给 reids.conf文件添加master…

【深度学习练习】心脏病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、什么是RNN RNN与传统神经网络最大的区别在于&#xff0c;每次都会将前一次的输出结果&#xff0c;带到下一隐藏层中一起训练。如下图所示&#xff1a; …

Docker 运行Nacos无法访问地址解决方法

参考我的上一篇文章去配置好镜像加速器&#xff0c;镜像加速器不是配置越多越好&#xff0c;重试次数多了会失败 Dockerhub无法拉取镜像配置阿里镜像加速器-CSDN博客 错误的尝试 最开始按照网上的方式去配了一大堆&#xff0c;发现下不下来。 镜像源地址&#xff1a;https:…

Oracle 解决4031错误

一、问题描述 什么是4031错误和4031错误产生的原因: 简单一个句话概括: 由于服务器一直在执行大量的硬解析,导致Oracle 的shared pool Free空间碎片过多,大的chunk不足, 当又一条复杂的sql语句要硬解析时, 缺少1个足够大的Free chunk, 通常就会报4031错误. 二、解决方法 临…

模拟退火算法4—应用

TSP&#xff08;旅行商&#xff09;问题是最有代表性的优化组合问题之一&#xff0c;其应用已逐步渗透到各个技术领域和我们的日常生活中.它一开始是为交通运输而提出的&#xff0c;比如飞机航线安排、送邮件、快递服务、设计校车行进路线等等.实际上其应用范围扩展到了许多其他…

揭秘数据之美:【Seaborn】在现代【数学建模】中的革命性应用

目录 已知数据集 tips 生成数据集并保存为CSV文件 数据预览&#xff1a; 导入和预览数据 步骤1&#xff1a;绘制散点图&#xff08;Scatter Plot&#xff09; 步骤2&#xff1a;添加回归线&#xff08;Regression Analysis&#xff09; 步骤3&#xff1a;分类变量分析&…

如何查看MCU编译生成的elf(out)文件内容

一般地&#xff0c;我们想要知道单片机程序编译完后的结构我们可以查看map文件或者是elf/out文件&#xff0c;map文件不能看函数的汇编格式&#xff0c;只能查看编译完成后变量、代码的地址和占用空间大小&#xff0c;而elf文件里面更加详细&#xff0c;还包含了函数的汇编&…

MAS马氏数控制榫机控制面板维修显示屏MDK3113B

马氏数控榫头机触摸屏/显示面板维修型号&#xff1a;MX3810A&#xff1b;MDK3113B&#xff1b;MXK2815B MAS马氏数控开榫机触摸屏/显示面板维修型号&#xff1a; MX2108B&#xff1b;MD2108A&#xff1b;MJ105А 数控面板维修包括&#xff1a;马氏数控榫头机、开榫机、制榫机…