昨天完成k8s log的来源设定,但是查找log如果都要到vector查说实在有点麻烦,因此今天就来完成最後一哩路,把log收到网页介面上,log集中的专案非常的多,为了统一管理,就用grafana loki来统一。
grafana loki架构复杂度相当的高,机制上会运用到以下元件
依据元件,可以得到以下的架构图
但是这样的架构中要考虑到loki的分散运算性质,所以无状态的Distributor、frontend、Querier会有很多个,负责读写资料的Ingester也可以有好多个,要能够驾驭这样的分布式运算就要有良好的load balnce管理读写的流量,然後藉由高可用又轻量的管理服务(like key-valueDB)管理loki元件的资讯,以及高可用的储存空间和database,看起来难度高又复杂。
因此我简化了大部分的元件,调整成下图
不将元件拆开全部放在loki之中,由member list处理loki状态,储存放在minio以及boltdb-shipper,同样透过gateway入口以及redis做cache。
我这边在内部元件上参考了git文章https://github.com/CloudXiaobai/loki-cluster-deploy 做部署,运用其中的installation.sh并配置足够的pv即可轻松安装完成,因为我储存空间使用minio所以s3的部分要改写为minio的,sed就直接mark起来,调整於loki-system/loki-system/configmap.yaml内的s3: s3://minioadmin:minioadmin@minio_ip:9000/logchunks ,loki完成後就可以在grafana的datasource上选择loki加入,之後再调整vector使用loki为sink的目标,范例如下
[sinks.out]
type = "loki"
inputs = ["in"]
endpoint = "http://localhost:3100"
labels.key = "value"
labels.key = "{{ event_field }}"
就可以正常丢到loki并且开始查询log罗。
<<: Chapter1-DJ最爱的音频动感图像(I)基本流程图 & 操作DOM介面
>>: 【Day 6】BERT由Transformer模型构建而成
-CMM 和 CMMI 成熟度水平比较 成熟度模型“可以”(而不是应该或必须)定义五个成熟度级别,...
Q1. 什麽是 Leetcode ? Leetcode 是一个线上练程序网站,收集了许多软件工程师面...
Mikrotik RouterOS从入门到实战系列-Mikrotik入门第五课 课程大纲: 1.In...
昨天介绍了API,今天要介绍一个postman的应用程序,它是一个可以让我们检查和实作API的app...
今天要介绍一下工作上有使用的到的另一项工具 - Cube.js。 Cube.js 是一个开源的API...