博客/释放

Loki 2.4通过新的简化部署模型更容易运行

2021年11月10日5分钟

洛基2.4来了!

它提供了一长串很酷的新功能,但有几件事我真的想在这里关注。

  1. 洛基现在可以接受乱序写吗
  2. 管理洛基比以前更容易了

一定要看完整的发布说明当然还有升级指南获取升级洛基的最新信息也可以查看我们的ObservabilityCON 2021会话为什么洛基比以前更容易使用和操作

支持乱序日志

对于许多Loki用户来说,严格的订购限制一直是一个挑战,请相信我,我们这样做并不是为了困难。以一种高效的内存方式快速吸收日志数据是一种挑战!

现在,Loki将传入的日志分组到块中,当它们达到特定的大小时,这些块将被压缩。但是,一旦输入的日志行被压缩,就很难插入无序接收的新条目,特别是如果该条目需要插入到已经压缩的块中。解压、记录和重新压缩是缓慢和昂贵的。

我们探索了几种支持乱序的方法,同时试图在性能和顺序灵活性方面进行最佳的权衡。最后,我们提出了一个我们真正引以为傲的解决方案,它现在在v2.4版本中可用。即将发布的一篇博文将详细介绍这个解决方案的所有细节,如果您感兴趣,可以查看设计文档

简而言之,我们很高兴终于解决了上面的问题,并通过允许向Loki发送无序日志来简化许多Loki用户的生活!

简单、可扩展的部署

接下来我想谈谈我们为简化洛基的管理所做的工作。我们已经讨论了很长时间开始有多容易通过将Loki作为一个单独的进程来运行,它能够摄取和服务您的日志。

但是,如果您想在高可用性配置中运行Loki呢?或者,如果您想利用在我们的会议而且在线研讨会?您很快就发现自己已经达到了单一二进制文件所能提供的极限,很可能只能疲倦地盯着Loki微服务配置的舵手或jsonnet。

不要误会我的意思——我们喜欢微服务。这就是我们在Grafana实验室运行Loki的方bob电竞频道式,它提供了最大的灵活性和可配置性,以及每天扩展到数百tb日志的潜力。然而,我们也意识到这也是我们的工作运行洛基,微服务很复杂。对于大多数人来说,这种程度的复杂性是不必要的,也是采用的障碍。

这就是为什么我们在混合模式上投入了大量精力,我们称之为简单、可伸缩的部署.其想法是这样的:将Loki作为单一二进制文件运行的简单性引入到高可用性和可伸缩性的简单路径。

步骤1:单一二进制

也被称为单片模式在美国,这是开始使用Loki最简单的方式,我们对这种操作模式做了一些显著的改进。首先,单二进制模式现在运行一个查询前端它是负责拆分和分片查询的组件。现在一个二进制Loki也可以并行化查询!

其次,单个二进制Loki还可以通过添加更多实例并使用共享哈希环连接它们来扩展。我们还确保了压实机正在运行,并且只有一个实例自动运行!

添加更多的实例可以在更多的进程上对传入的写操作进行分片,并为更多的查询并行提供更多的CPU,从而允许您轻松地扩展Loki单个二进制实例以提高性能,并启用高可用性运行时。

注意:上面没有显示压缩器,它将使用环形来选择一个实例来运行压缩。

第二步:简单,可伸缩的部署

这种模式是将Loki作为单一二进制/单片模式运行与完整的微服务之间的桥梁。其想法是为用户提供更大的伸缩性,并提供在Loki中分离读和写路径的优势。

这对那些想在Kubernetes之外管理Loki的人来说应该是特别有吸引力的。

它的工作原理是使用相同的二进制/图像并传递一个—target =读而且—target =写配置标志。

注意:上面没有显示的是压缩器,它将使用环来选择一个读实例来运行压缩。

这些新标志将读/写所需的内部组件分离到这些单独的进程中,从而更容易分别扩展和监视读和写路径。这还允许您添加和删除Loki能够增加/减少查询并行量,这样您就可以按需扩展读性能,就像微服务模型一样。

第三步:微服务

对于那些想要极致的灵活性、可观察性和性能的人来说,Loki仍然可以像以前一样作为单个组件微服务运行。

然而,我认为许多人会发现这种模式是不必要的,移动部件数量的增加可能是弊大于利。我们将把这留给您来决定,并非常高兴为您提供更多的选择,以一种最适合您的方式运行洛基!

封闭的思想

Loki团队非常努力地使v2.4成为Loki最容易使用的版本。我们正在更新文档并寻找更多的帖子和例子运行洛基在这些不同的模式很快!

最简单的开始方式Grafana洛基是Grafana Cloud,与免费和付费计划以适应每一个用例。如果你还没有使用Grafana Cloud,免费注册今天。