日志条目删除
Grafana Loki 支持删除指定流中的日志条目。将删除落在指定时间窗口内并匹配可选行过滤器条件的日志条目。
仅当配置了 TSDB 或 BoltDB shipper 作为索引存储时,才支持日志条目删除。
compactor 组件通过 REST 端点处理删除请求。调用该端点可指定流和时间窗口。日志条目的删除将在可配置的取消时间段到期后发生。
日志条目删除依赖于为 compactor 定义的自定义日志保留工作流程配置。compactor 查看已超出取消期且未处理的请求,以决定是否删除一个 chunk。
配置
通过将 compactor 配置中的 retention_enabled
设置为 true,并将运行时配置中的 deletion_mode
设置为 filter-only
或 filter-and-delete
来启用日志条目删除。启用保留功能时,还需要配置 delete_request_store
以处理删除请求,这指定了存储删除请求的对象存储桶。
警告
启用保留功能时请务必小心。强烈建议您同时在对象存储中启用对象版本控制,以便在误配置保留设置时能够恢复。如果您想启用删除功能但不强制执行保留策略,请将
retention_period
设置为0s
。
由于它是运行时配置,如果需要,可以按租户设置 deletion_mode
。
使用 filter-only
时,查询 Loki 时会过滤掉与删除请求中查询匹配的日志行,但不会从存储中移除它们。使用 filter-and-delete
时,查询 Loki 时会过滤掉与删除请求中查询匹配的日志行,并且也会从存储中移除它们。
删除请求可以在可配置的取消期内取消。在 compactor 的 YAML 配置中或在调用 Loki 的命令行中设置 delete_request_cancel_period
。其默认值为 24 小时。
只要 compactor.retention_enabled
设置为 true
,API 端点就会可用。之后,可以通过 deletion_mode
租户覆盖设置来启用每个租户对删除 API 的访问权限。