菜单
文档breadcrumb arrow Grafana Lokibreadcrumb arrow 管理breadcrumb arrow 存储breadcrumb arrow 文件系统对象存储
开源

文件系统对象存储

文件系统对象存储是 Grafana Loki 最容易入门的方式,但这种方法也有一些优缺点。

非常简单,它将所有对象(chunk)存储在指定目录中

yaml
storage_config:
  filesystem:
    directory: /tmp/loki/

为每个租户创建一个文件夹,所有租户的 chunk 都存储在该目录中。

如果 Loki 运行在单租户模式下,所有 chunk 都存储在一个名为 fake 的文件夹中,这是单租户模式下使用的合成租户名。

更多信息请参阅多租户

优点

非常简单,与 BoltDB 索引存储配合使用时,无需额外的软件即可使用 Loki。

非常适合低流量应用、概念验证和体验 Loki。

缺点

Grafana Labs 不支持在生产环境中使用文件系统(对于购买了支持合同的客户)。

扩展性

在某些情况下,单个目录中可以存储的 chunk 数量存在限制,例如参阅问题 #1502,其中解释了一位 Loki 用户在其文件存储中存储约 550 万个 chunk 文件时遇到的一个奇怪错误(以及该问题的解决方法)。

然而,如果您的流数量保持较低(记住 loki 每个流写入一个 chunk),并使用 chunk_target_size(大约 1MB)、max_chunk_age(增加到超过 1 小时)、chunk_idle_period(增加以匹配 max_chunk_age)等配置,可以调整以减少刷新的 chunk 数量(尽管这会增加内存消耗)。

使用文件存储仍然可以存储 PB 级的日志数据,但请注意文件系统在单个目录中存储的文件数量是有限制的。

持久性

对象的持久性取决于文件系统本身,而 S3/GCS 等其他对象存储在底层做了很多工作,为您的数据提供了极高的持久性。

高可用性

除非文件系统以某种方式共享(例如 NFS),否则无法使用文件系统存储运行集群模式的 Loki。然而,使用共享文件系统对于 Loki 来说可能会是一个糟糕的体验,就像它对于几乎所有其他应用一样。