听说,你的Loki还是单体?(下篇)

2024-03-17 00:38
文章标签 下篇 单体 听说 loki

本文主要是介绍听说,你的Loki还是单体?(下篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

正文共729字
预计阅读时间:2分钟????

相信大家看过《听说,你的Loki还是单体?(上篇)》之后对Loki的分布式架构有了一定的认识,那么本篇主要就是对上篇内容的实践。小白主要提供docker-composehelm两种方式将部署Loki集群的Demo版本。

在正式部署之前,我们还是先来看下Loki整体架构如下图:

我们本次部署清单里面主要涉及到的组件如下:

组件副本数说明
Cassandra1Loki Index存储
Minio1Loki S3存储
Consul1Loki 组件状态和哈希环存储
Redis1Loki 缓存
Gateway2Loki 网关
Distributor3Loki 组件
Ingester3Loki 组件
Querier3Loki 组件
Query-Frontend2Loki 组件
Table-Manager1Loki 组件

下载部署代码

$ git clone https://github.com/CloudXiaobai/loki-cluster-deploy.git

声明:以下部署均适用于demo环境,大家切勿直接用于生产环境
对于生产环境,请务必先解决Cassandra和Consul服务的高可用

通过docker-compose部署
  • 启动服务

$ cd loki-cluster-deploy/demo/docker-compose
$ docker-compose up -d
  • 服务清理

如果部署过程中遇到问题要清理环境的话,需要执行两个步骤

1. 停止容器
$ docker-compose down
2. 删除本地卷
$ docker volume rm 
<docker-compose_cassandra_data> 
<docker-compose_consul_data>
<docker-compose_minio_data>
通过helm部署
  • 进入helm 目录

$ cd loki-cluster-deploy/demo/helm/loki-cluster-demo
  • 声明StorageClass

$ cat values.yaml...
loki-minio:persistence:- name: datastorageClass: "<your-StorageClass>"size: 10GiaccessMode: ReadWriteOncemount_path: /data
loki-consul:persistence:- name: datastorageClass: "<your-StorageClass>"size: 1GiaccessMode: ReadWriteOncemount_path: /consul/data
loki-cassandra:persistence:- name: datastorageClass: "<your-StorageClass>"size: 5GiaccessMode: ReadWriteOncemount_path: /bitnami
...
  • 启动服务

$ kubectl create ns <your_namespace>
$ helm template --name stable --namespaces <your_namespace> . - | kubectl apply -f -
  • 服务清理

如果部署过程中遇到问题要清理环境的话,执行如下命令:

$ helm template --name stable --namespaces <your_namespace> . - | kubectl delete -f -

提示:部署完成后Minio S3的默认认证信息如下:
ACCESS_KEY: key123456
SECRET_KEY: password123456

部署之后

按照如上完成配置后,我们需要将日志采集的客户端指向到Loki Gateway上

对于Gateway多实例部署在k8s的,需要在前端挂载一个负载均衡器做分流。
小白之前考虑用ingress做代理,考虑到现实意义不大,所以放弃。建议大家在外部的LoadBlance直接转发给loki-gateway的NodePort上

同理,Grafana的数据源,我们也要切换到Loki Gateway的地址,然后在Explor上查询日志验证是否正常

最后我们可以再看下Minio上的Bucket是否已经有日志块,如果有数据的话说明你的Loki Ingester已经工作正常。

往期推荐

听说,你的Loki还是单体?(上篇)

Loki和Fluentd的那点事儿

巧用缓存加速Loki查询

今日实践:Loki丝滑般的数据切换

今日实践:利用Grafana为你的Loki添加告警

关于云原生小白

云原生小白的创号目的是将平日里离大家较远云原生应用以实用的角度展现出来,站在小白的角度来看待和使用云原生,并以每篇文章解决一个实际问题的出发点带领大家走进云原生。

扫描二维码

获取更多精彩

云原生小白

这篇关于听说,你的Loki还是单体?(下篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

文件上传漏洞-下篇

一、白名单绕过 目录路径检测绕过 00截断 简介: 0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。 饶过条件 利用操作:Pass-12 要求:上传路径可控步骤:切换版本,修改配置,正常上传服务器需要的文件类型,在点击上传按钮时,抓包并修改其路径信息,再发送到服务器中。 原始包信息

手写方法实现整型例如:123与字符串例如:“123“相互转化(下篇)

目录 一、前言 二、整型转化为字符串 1. 初始化变量 2.数字1转字符'1' 3.取出value中的每一项数字 4.将字符放入字符数组中 5.最终代码    三、最后 一、前言         本篇文章紧跟上篇文章,本片内容为整型转化为字符串类型。至于我为什么要分两篇文章,主要是考虑这篇内容量的大小,同时还有方便用户阅读的好处。         这篇文章整体思想和上篇文

从单体到微服务:Java架构演进之路

从单体到微服务:Java架构演进之路 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 随着互联网行业的不断发展,软件架构也在不断演进,从最初的单体应用到如今的微服务架构,Java作为一种流行的编程语言,在这个演进过程中扮演着重要的角色。本文将探讨在Java生态系统中,从单体架构向微服务架构的演进之路。 单体架构的特点 在单

SQL注入-下篇

HTTP注入 一、Referer注入 概述 当你访问一个网站的时候,你的浏览器需要告诉服务器你是从哪个地方访问服务器的。如直接在浏览器器的URL栏输入网址访问网站是没有referer的,需要在一个打开的网站中,点击链接跳转到另一个页面。 Less-19 判断也是是否存在注入 尝试注入 使用单引号判断 闭合SQL http://10.196.93.67/sq

细说正则表达式下篇

说明:细说正则表达式下篇本文为任鹏原创,每一个例子都是任鹏亲自设计并且通过调试的。本文主要讲解正则表达式的一些特殊用法,并不涉及正则的基础知识,基础知识部分请参考《细说php》一书和老师的课件由于篇幅关系本文分为上下篇,上篇主要讲解后向引用,模式修正符,以及贪婪模式和非贪婪模式,下篇主要讲解特殊字符的转义,欢迎大家挑错^_^1.在正则表达式中匹配特殊字符1.1匹配正则表达式的元字符 ^ $ ( )

听说分享笔记会奖励粮票的,我也发一篇

由于咱们兄弟连限制下载,所以内容直接写下去了,复制粘贴吧 所有内容都是写在PHP文件的,新建一个PHP复制到里面吧,有充分的注释,都是自己写的例子,名称都是$a $b之类的,凑合看吧 /*------------------------------------数组函数开始------------------------------------*/ echo "<br/><font c

alzet微量渗透泵说明书(下篇)

上篇和中篇我们对alzet微量渗透泵进行了部分内容的共享,接下来请看其余的内容。 七、验证alzet微量渗透泵的准确性 为了验证实验结果是否来自持续给药,DURECT建议alzet微量渗透泵使用者在实验过程中的几个时间点检测血液药物水平。注意不能将最后胶囊中剩余空间作为泵出的药物量,因为在实验过程中,胶囊会吸收水分,同样,切开一个用完的胶囊来验证其性能也是不可靠的。 A.确定平均泵送率 a

【Hive下篇: 一篇文章带你了解表的静态分区,动态分区! 分桶!Hive sql的内置函数!复杂数据类型!hive的简单查询语句!】

前言: 💞💞大家好,我是书生♡,本篇文章主要分享的是大数据开发中hive的相关技术。连接查询!正则表达式! 虚拟列!爆炸函数!行列转换! Hive的数据压缩和数据存储!希望大家看完这篇文章会有所帮助。也希望大家能够多多关注博主。博主会持续更新更多的优质好文!!! 💥💥下一篇博客会为大家讲解hive中的优化以及原理性的知识点。 💞💞前路漫漫,希望大家坚持下去,不忘初心,成为一名优秀的程

为什么说静态工厂方法可能会比构造器更好?听说读完就会有一个女朋友?

文章目录 什么是静态工厂方法静态工厂方法比构造器好在哪里静态工厂方法有名称而构造器没有(前者可读性更好)不必每次调用它们的时候都创建一个新对象可以返回原返回类型的任何子类对象创建泛型对象可以更加简洁 静态工厂的局限之处总结 前言:相信读过《Effective Java》(第二版)的小伙伴知道我在说什么,作者在书中总结了78条黄金建议,其中建议的第一条就是:考虑用静态工厂方法替代构造

java单体服务自定义锁名称工具类

需求: 操作员能够对自己权限下的用户数据进行数据填充,但是不同操作员之间可能会有重复的用户数据,为了避免操作员覆盖数据或者重复操作数据,应该在操作用户数据时加锁,要求加的这一把锁必须是细粒度的锁,不能锁住所有用户的操作 ,只锁当前操作用户,锁的名字为用户id,在获取到锁之后执行业务操作,否则阻塞等待, 这个单体服务锁工具如何设计? 思路: 思路: 1、锁工具类:首先创建一个Concurre