如何设置默认日志保留时间
平台默认保留时间控制每个日志类别在 ClickHouse 中保留多长时间后删除。值在 PlatformLogForward 资源上设置,并应用于未声明自身覆盖值的每个项目。
有关每个项目的覆盖值,请参阅如何设置项目冷数据的保留时间。
开始之前
确认目标存储集群:
- 使用 Alauda Container Platform Log Storage Management 和
PlatformLogForward.spec.externalStorage.type: clickhouse(本页末尾介绍 OpenSearch)。 - 已预配名为
platform-default的PlatformLogForward。 - 使用的账户有权编辑
platformlogforwards.log.alauda.io。
关于字段
保留时间位于 PlatformLogForward 资源的 spec.clickhouse.ttl.* 中。每个日志类别对应一个字段,单位为天,0 = keep forever。
0 表示永不删除,因此全新安装会保留所有内容,直到显式设置保留时间。请选择符合磁盘预算和合规期限的值。
编辑 PlatformLogForward 资源
-
登录存储集群(承载 ClickHouse 的集群)。
-
打开
PlatformLogForward资源: -
设置或更新
spec.clickhouse.ttl:
保存并退出。无需重启 pod。
更改如何生效
- 日志存储 operator 协调
platform-default,并重新生成aiops-logging-ttl-configConfigMap。 razor部署会在下一次同步周期(不超过一分钟)读取新的 ConfigMap。razor会针对 ClickHouse 上的每个日志表运行ALTER TABLE <table> MODIFY TTL toDateTime(time) + INTERVAL <N> DAY DELETE。- ClickHouse 会在下一次合并时将 TTL 应用于现有数据;早于新保留时间的行会被自动删除。
在集群运行正常的情况下,整个周期会在五分钟内完成。
项目级覆盖
平台默认保留时间是每个项目的回退值。需要使用不同值的项目可通过项目标签覆盖平台默认值;请参阅如何设置项目冷数据的保留时间。项目标签仅会覆盖该项目的 audit、event、与工作负载相关以及与系统相关的数据 — 项目标签中未列出的类别会回退到平台默认值。
热 + 冷分层(可选)
如果已启用热/冷分层,spec.clickhouse.ttl.* 控制热数据的保留时间;将 spec.clickhouse.coldTTL.* 设置为将过期数据移至冷卷,而不是删除数据。有关分层策略的设置,请参阅如何将 S3 存储用于 ClickHouse。未启用分层时,ttl 会执行永久删除。
从旧版 chart 迁移
从 v4.3 时代的 chart-alauda-log-clickhouse 安装的集群,其保留配置位于 values.logging.ttl.* 下。v4.4 Log Storage Management 会将此字段原样迁移到 PlatformLogForward(字段名称、单位和语义均相同)。升级后的集群会由 operator 在其 derive-plf 步骤中自动传递这些值;请使用以下命令进行验证:
如果升级后输出为空,请从之前的 chart values.yaml 重新应用这些值。
在 OpenSearch 后端上,保留时间由 Index State Management (ISM) 策略控制,而不是由 spec.clickhouse.ttl 控制。razor-api 组件附带默认 ISM 策略,operator 会在安装时将这些策略应用到 OpenSearch 集群。要更改 OpenSearch 的保留时间,请直接在 OpenSearch 集群上修改 ISM 策略。spec.clickhouse.ttl 在 OpenSearch 部署中会被忽略;clickhouse 子对象仅在 spec.externalStorage.type: clickhouse 时适用。
相关主题
- 如何设置项目冷数据的保留时间 — 按项目覆盖这些默认值。
- 如何将 S3 存储用于 ClickHouse — 启用热/冷分层,使
coldTTL生效。 - 安装 — PLF 配置流程。