正文共:1923字
预计阅读时间:5分钟
很多时候我们把Loki部署成一个单体应用,这样能够让我们快速的将它在开发、测试环境中应用起来。不过最终大家都还是逃不过真香定律,这个时候大家就在琢磨运维的灵魂三问了,这东西怎么部署到生产环境?高可用稳定吗?分布式怎么样?今天小白起个引子, 在Loki分布式部署上面给大家带来思考。
Loki主要组件
在分布式部署之前,小白还是有必要简单介绍下Loki的几个核心组件。
- Distributor
Distributor
是Loki日志写入的最前端,当它收到日志时会验证其正确性,之后会将日志切成块(chunk)后,转给Ingester
负责存储。
- Ingester
Ingester
主要负责将收到的日志数据写入到后端存储,如DynamoDB,S3,Cassandra等),同时它还会将日志信息发送给Querier
组件。
- Querier
Querier
主要负责从Ingester
和后端存储里面提取日志,并用LogQL查询语言处理后返回给客户端
- Query Frontend
Query frontend
主要提供查询API,它可以将一条大的查询请求拆分成多条让Querier
并行查询,并汇总后返回。它是一个可选的部署组件,通常我们部署它用来防止大型查询在单个查询器中引起内存不足的问题。
Loki的这些组件主要构成系统内的两条数据路径如下图,红色的为数据写入路径,绿色的为数据查询路径。
了解
标签:http,default,单体,查询,听说,Loki,proxy,日志 From: https://blog.51cto.com/u_15820126/5738631Cortex
的同学可能看到这个图发现比较眼熟。没错,根据Loki的开发者描述,Loki的分布式架构正是从Cortex代码里面获取的。毕竟都是一个公司的产品,有个成熟的架构不用新造轮子