文件系统对象存储
文件系统对象存储是 Grafana Loki 最容易入门的方式,但这种方法也有一些优缺点。
非常简单,它将所有对象(chunk)存储在指定目录中
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 来说可能会是一个糟糕的体验,就像它对于几乎所有其他应用一样。