Grafana+Loki+Alloy构建企业级日志平台

1.日志系统介绍

日志系统:

GLA、ELK、数仓

⽇志处理流程:采集 ==> 存储 ==> 检索 ==> 可视化
日志系统工作流程:
日志平台的目的:统一聚合分散的日志
日志平台搭建方案:
ELK:ElasticSearch:存储日志(日志内容进行分词,日志所有数据都可以被检索)
Loki:轻量级日志聚合平台

LAG工作逻辑:

注:检索日志时向Loki发送查询请求,Loki从MinIo中读取日志

2.Loki

2.1 介绍

Loki 是⼀个可⽔平扩展、⾼可⽤性、多租户⽇志聚合系统,其灵感来⾃Prometheus。Loki 与 Prometheus 的不同之处在于,它专注于⽇志⽽不是指标,并通过推送⽽不是拉取来收集⽇志。
Loki 的设计⾮常经济⾼效,并且具有⾼度可扩展性。与其他⽇志系统不同,Loki不会对⽇志内容进⾏索引,⽽只会对⽇志的元数据进⾏索引,将其作为每个⽇志流的⼀组标签。
⽇志流是⼀组共享相同标签的⽇志。标签帮助Loki在您的数据存储中找到⽇志流,因此拥有⼀组⾼质量的标签是⾼效查询执⾏的关键。
然后,⽇志数据被压缩并以块的形式存储在对象存储中,如亚⻢逊简单存储服务(S3)或⾕歌云存储(GCS),甚⾄为了开发或概念验证,存储在⽂件系统上。⼩索引和⾼度压缩的块简化了操作,显著降低了Loki的成本。

2.2 日志结构

Loki数据存储格式:

index:索引;存储Loki标签,如⽇志级别、来源、分组
chunk:块;存储⽇志条⽬本身
Agent:
代理或客户端,例如Grafana Alloy或Promtail,随Loki⼀起分发。代理抓取⽇志,通过添加标签将⽇志转换为流,并通过HTTP API将流推送到Loki。
Loki主服务器:
负责摄取和存储⽇志以及处理查询。它可以部署在三种不同的配置中,有关更
多信息,请参阅部署模式。
Grafana:
⽤于查询和显示⽇志数据。您还可以使⽤LogCLI或直接使⽤Loki API从命令⾏ 查询⽇志。

3.系统架构

3.1 Loki架构:

写流程:
1. distributor 接收带有流和⽇志⾏的HTTP POST请求。
2. distributor 会 hash 计算请求中包含的每个流,决定发给 ⼀致性 hash 环 中的哪个 ingester
3. distributor 把每个流 发给合适处理它的 ingester 和其副本
4. ingester 接收带有⽇志⾏的流,并为流的数据创建⼀个块或附加到现有块。每个租户和每个标
签集,块都是唯⼀的
5. ingester 回复写操作结果
6. distributor 等待⼤多数 ingester 确认写⼊完成。
7. distributor 在收到⾄少法定数量的确认写⼊时响应成功(2xx状态码)。或者在写⼊操作失败
时响应错误(4xx或5xx状态码)。
读流程:
1. 查询前端(query frontend) 接受到 携带 LogQL 的 HTTP GET 请求
2. 查询前端 将查询拆分为⼦查询并将它们传递给查询调度程序(query scheduler)。
3. querier (查询器)从调度程序(scheduler)中提取⼦查询。
4. querier 将查询传递给 所有保存数据的 ingester
5. ingester 返回与查询匹配的 记忆数据(如果有)。
6. 如果 ingester 没有返回或返回的数据不⾜,querier 会延迟从后备存储加载数据并对其运⾏查
询。
7. querier 遍历所有接收到的数据并进⾏重复数据删除,将⼦查询的结果返回到查询前端。
8. 查询前端 等待 查询的所有⼦查询完成 并由 querier 返回。
9. 查询前端将两个结果合并为最终结果并将其返回给客户端。

3.2 Alloy架构

Grafana Alloy是⼀个多功能的可观测性收集器,可以摄取各种格式的⽇志并将其 发送到Loki。我们推荐Alloy作为向Loki发送⽇志的主要⽅法,因为它为构建⾼度可扩展和可靠的可观测性流⽔线提供了更强⼤和特征丰富的解决⽅案。

4.系统部署实践

创建项目目录,在项目目录下下载默认配置文件:

# 1、准备⽬录
mkdir evaluate-loki
cd evaluate-loki
# 2、下载默认配置⽂件
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-s
tarted/loki-config.yaml -O loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-s
tarted/alloy-local-config.yaml -O alloy-local-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-s
tarted/docker-compose.yaml -O docker-compose.yaml

dockercompose文件执行效果架构:

执行docker compose up -d 启动服务

Alloy日志收集:

5.Grafana

添加Loki数据源:

查看⽇志:可以使⽤LogCli或者Grafana可视化界⾯查看⽇志
1. 使⽤ Grafana 查询 Loki 数据源的数据
a. 访问Grafana:http://101.126.16.42:3000/
b. 已经整合了Loki数据源
c. 点击 Explore 查看
d. 使⽤Code模式,编写 LogQL 查询
查询示例:
标签检索:
# 查看 container 标签值 为 evaluate-loki-flog-1 的⽇志
{container="evaluate-loki-flog-1"}
{container="evaluate-loki-grafana-1"}
包含值:
# 查看 container 标签值 为 evaluate-loki-flog-1 ,且 json 格式中 status字段值为4
04
{container="evaluate-loki-flog-1"} | json | status=`404`
计算:
sum by(container) (rate({container="evaluate-loki-flog-1"} | json | status=
`404` [$__auto]))
其他:
{container="evaluate-loki-flog-1"}
{container="evaluate-loki-flog-1"} |= "GET"
{container="evaluate-loki-flog-1"} |= "POST"
{container="evaluate-loki-flog-1"} | json | status="401"
{container="evaluate-loki-flog-1"} != "401"
更多:https://grafana.com/docs/loki/latest/query/query_examples/

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

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

相关文章

老梁聊全栈系列:(阶段一)现代全栈的「角色边界」与「能力雷达图」

JAVA Vue/React 双栈工程师的「T 型→E 型」进化指南 接上篇《从单体到云原生的演进脉络》 大家好,我是技术老梁,这是系列文章的第五篇。欢迎大家讨论,分享经验。如果知识对你有用,关注我,多多支持老梁,鼓…

使用 C# 设置 Excel 单元格格式

在实际报表开发中,Excel 的可读性和美观性与数据本身同样重要。合理的单元格格式设置不仅能让数据一目了然,还能让报表显得更专业。通过使用 C#,开发者可以精确控制 Excel 文件的单元格样式,无需依赖 Microsoft Office。 本文演示…

Redis篇章3:Redis 企业级缓存难题全解--预热、雪崩、击穿、穿透一网打尽

在企业级应用场景中,Redis 作为高性能缓存利器,极大提升了系统响应速度,但随着业务复杂度和并发量的攀升,缓存相关的各类挑战也接踵而至。比如系统启动时缓存缺失导致的数据库压力、大量缓存同时失效引发的连锁故障、热点数据过期…

【数值分析】02-绪论-误差

参考资料: 书籍: 数值分析简明教程/王兵团,张作泉,张平福编著. --北京:清华大学出版社;北京交通大学出版社,2012.8 视频:学堂在线APP中北京交通大学“数值分析I” 前期回顾 【数值分…

P3918 [国家集训队] 特技飞行

P3918 [国家集训队] 特技飞行 - 洛谷 思路: 因为如果连续进行相同的动作,乘客会感到厌倦,所以定义某次动作的价值为(距上次该动作的时间) ci​,若为第一次进行该动作,价值为 0。同一个动作,价值为ci*(最后一…

Python爬虫实战:研究Pandas,构建期货数据采集和分析系统

1. 引言 1.1 研究背景 期货市场作为金融市场的重要组成部分,具有价格发现、风险管理和资源配置的重要功能。上海期货交易所(Shanghai Futures Exchange, SHFE)作为中国四大期货交易所之一,上市交易的品种包括铜、铝、锌、黄金、白银等多种大宗商品期货,其交易数据反映了…

Linux第十七讲:应用层自定义协议与序列化

Linux第十七讲:应用层自定义协议与序列化1.什么是序列化和反序列化2.重新理解read、write为什么支持全双工3.网络版计算器的实现3.1socket的封装 -- 模板方法模式引入3.2序列化和反序列化 && json3.3协议的实现3.4 服务端整体看 -- 所有代码3.5七层协议&…

附录:Tomcat下载及启动

一、打开Tomcat官网windows下载第四个压缩包,下载完成后解压缩。(安装路径不要带有中文和特殊符号)二、启动Tomcat进入bin文件夹:\Tomcat\apache-tomcat-11.0.11\bin,找到startup.bat文件点击,黑窗口常驻即…

【CTF-WEB】表单提交(特殊参数:?url=%80和?url=@)(通过GBK编码绕过实现文件包含读取flag)

题目 寻找这个单纯的网站的flag 前端代码&#xff1a; <!DOCTYPE html> <head><title>CAT</title> </head><body> <h1>Cloud Automated Testing</h1> <p>输入你的域名&#xff0c;例如&#xff1a;loli.club</p>…

(k8s)Kubernetes 资源控制器关系图

Kubernetes 资源控制器关系图 #mermaid-svg-da6tzgmJn70StNQM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-da6tzgmJn70StNQM .error-icon{fill:#552222;}#mermaid-svg-da6tzgmJn70StNQM .error-text{fill:#55222…

模电基础:场效应管

目录 一、场效应管概述 二、结型场效应管&#xff1a;基础场效应管 &#xff08;1&#xff09;基本结构&#xff1a;PN结导电沟道 &#xff08;2&#xff09;工作原理&#xff1a;耗尽区挤压沟道从而控制电流 &#xff08;3&#xff09;特性曲线 1.转移特性 2.输出特性 …

开发安全利器:detect-secrets 敏感信息扫描工具实战指南

在现代软件开发流程中&#xff0c;代码安全已成为不可忽视的重要环节。尤其是在 DevSecOps 的理念逐渐普及的今天&#xff0c;如何在开发早期就发现并消除潜在的安全隐患&#xff0c;成为每一个开发者和安全工程师必须面对的问题。其中&#xff0c;敏感信息泄露&#xff08;Sec…

数字经济专业核心课程解析与职业发展指南

在数字经济高速发展的时代&#xff0c;选择一门与未来趋势紧密关联的专业至关重要。数字经济专业作为新兴交叉学科&#xff0c;既涵盖传统经济理论&#xff0c;又融合了大数据、人工智能等前沿技术。想要在这一领域脱颖而出&#xff0c;考取权威证书是提升竞争力的有效途径。其…

使用yolo11训练航拍图片微小目标AI-TOD检测数据集无损压缩版YOLO格式14018张8类别已划分好训练验证集步骤和流程

【数据集介绍】我们基于公开的大规模航空图像数据集构建了AI-TOD&#xff0c;这些数据集包括&#xff1a;DOTA-v1.5的训练验证集[1]、xView的训练集[19]、VisDrone2018-Det的训练验证集[20]、Airbus Ship的训练验证集1以及DIOR的训练验证测试集[3]。这些数据集的详细信息如下&a…

sward V2.0.6版本发布,支持OnlyOffice集成、文档权限控制及归档等功能

1、版本更新日志新增新增目录文档权限控制新增新增知识库、文档归档功能集成OnlyOffice支持word文档预览、编辑新增MarkDown代码块根据语言展示不同样式优化优化富文本在小屏幕操作调整优化部分界面展示效果优化知识库图片展示效果2、目录与文档权限控制默认情况下&#xff0c;…

多因子AI回归揭示通胀-就业背离,黄金价格稳态区间的时序建模

摘要&#xff1a;本文通过构建包含通胀韧性、就业疲软、货币政策预期及跨市场联动的多因子量化模型&#xff0c;结合美国8月CPI超预期上行与初请失业金人数激增的动态数据&#xff0c;分析黄金价格的高位持稳机制&#xff0c;揭示就业市场对美联储降息预期的协同支撑效应。一、…

Java--多线程基础知识(2)

一.多线程的中断1.通过自定义的变量来作为标志位import java.util.Scanner;public class Demo1 {public static boolean flg false;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(()->{while (!flg){System.out.println(&qu…

Qit_计网笔记

第1章 概述1.1 计算机网络在信息时代中的作用一、计算机网络基础概念&#xff08;一&#xff09;计算机网络的定义定义&#xff1a;计算机网络在信息时代中起到核心作用&#xff0c;实现了万物联网和人人用网的目标。&#xff08;二&#xff09;计算机网络的特点信息时代特征&a…

【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等

目录 前言 一、简介一下C11 二、{}列表初始化 三、右值引用和移动语义 四、右值引用和移动语义的使用场景 五、右值引用和移动语义在传参中的提效 六、引用折叠和完美转发 七、可变参数模板 前言 本文主要介绍C11中新增的一些重要语法&#xff1a;包括initializer_list列表初…

MP3 ID3标签中的数字流派代码和文本值翻译成的中文列表

将MP3 ID3标签中的数字流派代码和文本值翻译成的中文列表&#xff1a;■ 数字代码流派:0 布鲁斯 (Blues)1 古典摇滚 (Classic Rock)2 乡村音乐 (Country)3 舞曲 (Dance)4 迪斯科 (Disco)5 放克 (Funk)6 垃圾摇滚 (Grunge)7 嘻哈 (Hip-Hop)8 爵士乐 (Jazz)9 金属乐 (M…