Grafana洛基存储保留
默认情况下,当table_manager.retention_deletes_enabled
或compactor.retention_enabled
国旗没有设置,那么日志发送到洛基永生。
保留通过表管理器是通过依赖于对象存储TTL特性,并将工作对吗boltdb-shipper存储和块/索引存储。然而保留通过压实机只有支持吗boltdb-shipper商店。
压实机保留将成为默认的和长期的支持。它支持更细粒度的保留每个租户的政策和流程的用例。
压实机
的压实机可以删除处理索引条目。它还可以应用细粒度的保留。当与压实机应用保留表管理器是不必要的。
运行压缩机作为一个单例(单个实例)。
压实和保留是等幂的。如果压缩机重新启动时,它将继续从那里离开。
压缩机循环应用压实和保留在每一个compaction_interval
如果落后于,或者尽快。
压实机的算法来更新索引:
- 为每个表内每一天:
- 紧凑的表到一个索引文件。
- 遍历整个指数。使用租户配置识别和标记块需要被删除。
- 从索引中删除标记块并保存在磁盘上的文件参考。
- 上传新修改的索引文件。
保留算法应用于索引。块并不会被删除,同时应用保留算法。块将被删除的压实机异步横扫。
标记块只会被删除retention_delete_delay
配置是过期的,因为:
boltdb-shipper从共享存储索引刷新组件使用它(查询器和统治者)在一个特定的时间间隔。这意味着立即删除块可能导致组件还有参考旧块和未能执行查询。有一个延迟允许组件优雅地刷新他们的存储和删除它们引用的块。
它提供了一个短的时间窗口中取消块删除的配置错误。
标记文件(包含块删除)应该存储在一个持久的磁盘,因为磁盘将是唯一的参考。
保存配置
这个压缩机配置示例激活保留。
压缩机:working_directory: /数据/保留shared_store: gcs compaction_interval: 10 m retention_enabled:真正的retention_delete_delay: 2 h retention_delete_worker_count: 150 schema_config:配置:——从:“2020-07-31”指数:时间:24小时前缀:loki_index_ object_store: gcs模式:v11商店:boltdb-shipper storage_config: boltdb_shipper: active_index_directory: /数据/索引cache_location: /数据/ boltdb-cache shared_store: gcs gcs: bucket_name:洛基
注意保留仅针对指数周期是24小时。
集retention_enabled
为true。没有它,压实机只会紧凑的表。
定义schema_config
和storage_config
访问存储。
该指数期必须24小时。
working_directory
是块和临时表的目录将被保存。
compaction_interval
规定压实和/或保留多久。如果压缩机落后,压实和/或保留尽快发生。
retention_delete_delay
压实机的延迟后将删除标记块。
retention_delete_worker_count
指定的最大数量goroutine工人删除块实例化。
配置保存期
停留时间内配置limits_config
配置部分。
有两种方式设置保留政策:
retention_period
这是全球应用。retention_stream
它只适用于块匹配选择器吗
的最小停留时间是24小时。
这个示例配置全球保留:
…limits_config: retention_period: 744 h retention_stream:选择器:“=“开发”}{名称空间”优先级:1时间:24小时per_tenant_override_config: /etc/overrides.yaml……
可以定义每个租户保留使用/etc/overrides.yaml
文件。例如:
覆盖:“29”:retention_period: 168 h retention_stream: -选择器:“=“刺激”}{名称空间”优先级:2期:336 h -选择器:“=“洛基”}{容器”优先级:1期:72 h“30”: retention_stream: -选择器:“{容器=“nginx”}”优先级:1时间:24小时
选择一个规则应用通过选择列表中的第一个匹配:
- 如果一个基本配置
retention_stream
当前的流匹配,选择优先级最高。 - 如果一个全球
retention_stream
当前的流匹配,选择优先级最高。 - 如果一个基本配置
retention_period
指定,它将被应用。 - 全球
retention_period
如果没有其他选择匹配。 - 如果没有全球
retention_period
指定,默认值吗744 h
(30天)保留使用。
流匹配使用相同的语法普罗米修斯标签匹配:
=
:选择标签提供相等的字符串。! =
:选择标签不等于所提供的字符串。= ~
:选择标签regex-match提供的字符串。! ~
:选择标签不regex-match提供的字符串。
示例配置将这些规则:
- 所有租户除外
29日
和30.
在dev
名称空间的保存期24小时
个小时。 - 所有租户除外
29日
和30.
中所没有的dev
名称空间的停留时间744 h
。 - 为租户
29日
:- 所有流除容器
洛基
或名称空间刺激
会停留时间的168 h
(1周)。 - 所有的流
刺激
名称空间的保存期336 h
(2周),即使容器标签洛基
,因为的优先级刺激
规则是更高。 - 流容器的标签
洛基
但不是在名称空间中刺激
将会有一个72 h
保存期。
- 所有流除容器
- 为租户
30.
:- 所有流除容器标签
nginx
将全球的停留时间744 h
,由于没有覆盖指定。 - 流的标签
nginx
将有一个停留时间的24小时
。
- 所有流除容器标签
表管理器
为了启用保留支持,表管理器需要配置为启用删除和保存期。请参考table_manager
洛基的配置参考所有可用的选项。或者,table-manager.retention-period
和table-manager.retention-deletes-enabled
可以使用命令行标志。提供的保存期需要时间表示为一个字符串,该字符串可以使用普罗米修斯常见的解析模型ParseDuration。例子:7 d
,1 w
,168 h
。
警告的停留时间必须是多个指标和块表
期
,配置period_config
块。看到表管理器文档的更多信息。
请注意:为了避免查询的数据超出了停留时间,
max_look_back_period
配置在chunk_store_config
必须设置为一个值小于或等于设定是什么table_manager.retention_period
。
当使用S3或者GCS,桶存储块到期需要正确策略集。更多细节请S3的文档或gc的文档。
目前,全球只能保留策略设置。每个租户与摄取一个API来删除日志保留政策仍在发展。
因为洛基的设计目标是使存储日志便宜,一个基于卷删除API是剩余。直到这一特性被释放,如果你突然摄入必须删除日志,您可以删除旧的对象存储块。但是请注意,这只删除日志内容并保持标签索引完好无损;你仍然可以看到相关的标签但无法检索日志内容删除。
为进一步的细节表管理器内部,请参考表管理器文档。
示例配置
示例配置与GCS 28天保留:
schema_config:配置:——从:2018-04-15商店:bigtable object_store: gcs模式:v11指数:前缀:loki_index_时期:168 h storage_config: bigtable:实例:BIGTABLE_INSTANCE项目:BIGTABLE_PROJECT gcs: bucket_name: GCS_BUCKET_NAME chunk_store_config: max_look_back_period: 672 h table_manager: retention_deletes_enabled:真正的retention_period: 672 h
洛基相关资源
开始使用日志记录和Grafana洛基的第3部分(4)
加入这个网络研讨会学习为什么关联指标和日志是至关重要的在整个开发生命周期,以及洛基有助于减少日志记录成本和操作开销。
日志和洛基:基本配置设置
这次研讨会的关注Grafana洛基配置包括代理Promtail和码头工人;洛基服务器;和洛基存储为流行的后端。
可观测性& Grafana与日志
发现如何使用、管理和可视化Grafana和Grafana日志应用程序日志事件洛基。