10 分钟在K8s 中部署轻量级日志系统 Loki

news2024/9/24 5:26:44

转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南

Loki 是什么?

Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中,处理海量日志的问题。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。该项目受 Prometheus 启发

  • Promtail是代理,负责收集日志并将其发送给 Loki 。
  • Loki 是主服务器,负责存储日志和处理查询。
  • Grafana则 用于 UI 展示。

与ELK相比优势在哪里?

ELK是大规模日志解决方案中的佼佼者说到Loki,免不了要拿来跟ELK做个对比

  1. 架构简单:Loki 则采用分布式架构、可以将日志存储在多个节点上,也可以存储在一个节点上,其中Promtail进行日志收集、Loki 负责存储查询、Grafana用于展现
  2. 存储更小:Loki使用了紧凑的索引和压缩算法,相比ES 可以减少不少存储空间
  3. 没有采集日志格式要求:提供了更大的灵活性以及在查询时格式化的选项
  4. 与 Prometheus、Grafana 和 K8s 原生集成:可以在单个用户界面中无缝切换查询指标、日志等数据
  5. 轻量级:相比ELK,Loki更加轻量级,因为它不需要一个单独的Elasticsearch集群来存储和索引日志数据

如何采集数据?

k8s 集群不提供日志收集的解决方案,一般来说有3 种方案来做日志收集:

  1. 在Node节点上运行一个 agent 来收集日志(DaemonSet 采集方式)
  2. 在 Pod 中包含一个 sidecar 容器来收集应用日志(sidecar 采集方式)
  3. 由应用程序将日志信息推送到采集后端(主动采集方式)
节点采集方式

日志系统会以DaemonSet 方式是在每个node 节点上部署一个agent,来采集这个节点上所有的日志,默认会收集k8s 下/var/log/pod/var/lib/docker/containers下的日志,对应用程序的要求就是开启控制台打印,否则会收集不到日志,比较适用于功能单一或业务不是很多的集群;

Sidecar采集方式

Sidecar 方式会在每一个Pod中部署一个 sidecar 容器,来进行当前容器的日志采集,有多少个 pod,就会有多少个Sidecar容器,因此Sidecar相对资源占用较多,但灵活性以及多租户隔离性较强,适合大型的 K8s 集群使用,因为除了占用资源多点,采集性能不会有影响

Loki的Pormtail同时支持以上两种方式,默认为节点采集方式,下面我们演示如何在k8s 中快速部署一个Loki日志分析系统

Loki 部署

添加仓库
helm repo add grafana https://grafana.github.io/helm-charts
下载仓库
helm pull grafana/loki-stack
解压包

解压完成以后,可以查看相关参数的使用

tar -xvf loki-stack-2.10.0.tgz
配置概览

此Chart不止包含了Loki 、promtail、grafana,还包括其他组件,但是默认未开启,只开启了Loki 、promtail,这里为了演示,也开启grafana配置,通过grafana.enabled=true指定,同时如果要指定相关子 chart 参数,根据子 chart 名称.参数进行指定,比如要指定的grafana 的admin 密码,可以用grafana.adminPassword=admin指定

启动

注意:启动示例没有对日志数据进行持久化处理,正式部署要进行持久化配置

loki-stack中Grafana 的密码获取比较复杂,所以直接通过参数指定

helm install loki ./loki-stack -n loki-stack \
--set grafana.enabled=true \
--set grafana.adminPassword=admin \
--create-namespace  

以上启动完成以后,会收集/var/log/pod/var/lib/docker/containers日志信息,

查看启动pod,由于本人k8s 集群有 6 个node节点,所以部署了6 个promtail

Grafana访问

修改 Grafana 为 nodeport 访问方式

 kubectl edit svc loki-grafana -n loki-stack

登录成功以后,访问Explore 功能,并点击Log browser按钮,会看到已经采集相关数据,并自动创建

appcomponentcontainernamepsacepod等多个维度的 labels

比如要查看 ingress 的日志,选择命名空间为ingress-nginx并点击 show logs

同时查询结果可以支持换行、日期排序等功能


以上默认的查询界面,使用起来可能没那么顺手,那么可以根据需求去定制不同的查询界面,在https://grafana.com/grafana/dashboards中输入 loki,可以下载感兴趣的Dashboard

loki卸载

helm uninstall loki -n loki-stack

总结

以上我们快速演示了如何在 k8s 中部署一个Loki,可以看到非常简单,由于Loki 对k8s友好支持,默认就可以采集到pod、namespace 等标签数据,不需要额外配置,但是要达到生产级可用,还需要对 Loki的数据进行持久化配置、同时要根据采集日志数据的大小做好采集速率调整、以及日志过期策略设置

又到过年了,龙年红包封面是必备的,大家不要花钱购买了,我制作一款封面红包,数量4千个,效果如下

图片

领取方法,关注公众号架构成长指南,回复「封面」领取

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

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

相关文章

WebGL+Three.js入门与实战——绘制水平移动的点、通过鼠标控制绘制(点击绘制、移动绘制、模拟画笔)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中,矩阵的创建方法主要有三种,分别是:直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号,矩阵的所有元素必须都在中括号内。 矩阵的同行元…

IEC104 S帧超时判定客户与服务端不匹配造成的异常链接问题分析

2、通过ss命令发现确有链接端口变化,与设备约一天一次的重连,通过抓包(tcpdump -vvv -nn port 1001 -w 0926.cap)分析得以下现象 2.1、异常情况时未对设备的I帧均匀的回S帧进行确认,正常情况时均匀的回S帧进行确认 2.…

数据在内存中的存储(上)

1. 整数在内存中的存储 整数的2进制表示方法有三种:即原码、反码和补码 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最 高位的一位是被当做符号位,剩余的都是数值位。 正…

深度学习水论文怎么缝模块?搭积木永不过时!(附80个即插即用模型)

深度学习如何创新?如何水模型?总结来说就八个字:排列组合,会讲故事。说直白点,就是缝模块。 先看看别人怎么做,然后根据自己的实际情况将这些模块来一波随机组合,这样效率会高很多。我这边已经…

冰冻天气恰逢春运,“观冰精灵”化身电力供应守护者

据中国路网,截至2月1日14时,受降雪及路面结冰影响,河北、山西、内蒙古、黑龙江、江苏、安徽、河南、山东、西藏、陕西、宁夏、甘肃、新疆共封闭路段66个(涉及44条高速公路、5条普通国道、5条普通省道),关闭…

Pandas.Series.clip() 修剪数值范围 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门&…

前端JavaScript篇之map和Object的区别、map和weakMap的区别

目录 map和Object的区别map和weakMap的区别 map和Object的区别 Object是JavaScript的内置对象,用于存储键值对。Object的键必须是字符串或符号,值可以是任意类型。Map是ES6引入的新数据结构,用于存储键值对。Map的键可以是任意类型&#xff…

高中数学两面角习题练习1

用到的定理 2 第1问证明: 第2问用到的知识和例子: 二面角锐角钝角判断的快速技巧 https://www.bilibili.com/video/BV13P41157K1/?spm_id_from333.788.recommend_more_video.0&vd_source91b03ee59c462b7b3cfbd57346cf1001 叉乘的几何意义及应用 …

day39 不同路径 不同路径Ⅱ

题目1:62 不同路径 题目链接:62 不同路径 题意 机器人位于m*n网格的左上角每次只能向下或向右移动一步,到达网格的右下角,返回不同路径的数量 动态规划 动规五部曲 1)dp数组及下标i的含义 dp[i][j]:到达(i,j)有…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

代码随想录算法训练营29期Day41|LeetCode 343,96

文档讲解&#xff1a;整数拆分 不同的二叉搜索树 343.整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/description/ 思路&#xff1a; 题目要求我们拆分n&#xff0c;拆成k个数使其乘积和最大&#xff0c;然而题目中并没有给出k&#xff0c;所以…

[python]基于opencv实现的车道线检测

【检测原理】 一、首先进行canny边缘检测&#xff0c;为获取车道线边缘做准备 二、进行ROI提取获取确切的车道线边缘&#xff08;红色线内部&#xff09; 三、利用概率霍夫变换获取直线&#xff0c;并将斜率正数和复数的线段给分割开来 四、离群值过滤&#xff0c;剔除斜率…

uniapp 高德地图显示

1. uniapp 高德地图显示 使用前需到**高德开放平台&#xff08;https://lbs.amap.com/&#xff09;**创建应用并申请Key   登录 高德开放平台&#xff0c;进入“控制台”&#xff0c;如果没有注册账号请先根据页面提示注册账号   打开 “应用管理” -> “我的应用”页面…

Springboot集成Camunda并完成一条流程实例

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;设计流程定…

028 方法的重载

方法重载的定义 使用案例 public static void main(String[] args) {// 匹配到max(int a, int b)System.out.println(max(1, 3));// 匹配到max(double a, double b)System.out.println(max(1L, 3L));// 匹配到max(double a, double b, double c, double d)&#xff0c;int自动…

SQL 函数(十二)

SQL 函数&#xff08;十二&#xff09; 一、函数分类 1.1 单行函数 单行函数仅对单个行进行运算&#xff0c;并且每行返回一个结果。 常见的函数类型&#xff1a; 字符、数字、日期、转换 1.2 多行函数 多行函数能够操纵成组的行&#xff0c;每个行组给出一个结果&#x…

【拜年神器】AI写真保姆级教程

1. 介绍 废话不说&#xff0c;先上图看效果 功能简介 上传几张自己的照片&#xff0c;训练之后&#xff0c;就能生成各种风格的AI写真照&#xff0c;主要有无限风格写真、固定模板写真、AI虚拟试衣、人物说话视频四个类别 无限风格写真 固定模板写真 证件照 工作照 婚纱…

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…

萝卜视频源码前后端带视频演示

萝卜影视源码前端是用JAVA开发的全原生APP源码&#xff0c;后端用的是二次开发的苹果CMS&#xff0c;支持局域网投屏&#xff0c;视频软解硬解&#xff0c;播放器自带弹幕功能。支持解析官方视频&#xff0c;支持M3U8&#xff0c;MP4。 开屏广告&#xff0c;全局广告&#xff0…