Graylog: 管理保留策略
如何配置日志保留策略
👋 欢迎阅读 Stackhero 文档!
Stackhero 提供现成的 Graylog 云 解决方案,具有众多优势,包括:
- 包含无限制和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松完成更新。
- 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!
保留策略定义了在 OpenSearch 数据库中存储的消息数量。您可以根据消息数量、最大保存时长或总存储容量来配置保留策略。
例如,您可以选择保留过去 365 天的消息、最多保留 2 亿条消息,或预留总共 400 GB 的存储空间。
理解索引(Indices)
在定义保留策略之前,了解 Graylog 和 OpenSearch 所使用的索引机制非常重要。可以将索引想象成物理容器。Graylog 会“打开”一个容器(即一个索引),并将接收到的消息放入其中。当该容器分配的配额被超出后,这个容器就会被关闭,存放到“架子”上,然后为后续消息开启一个新的容器。
您可以通过不同的标准来设置这个配额:
- 消息数量:“每个容器最多保留 2,000 万条消息,然后开启新容器。”
- 时间限制:“每个容器使用 10 天,然后切换到新容器。”
- 容量限制:“每个容器存储 20 GB,然后切换到下一个。”
还可以定义架子上最多能存放的容器数量。如果超过这个数量,最旧的容器会被自动删除。例如,如果您设置最多 20 个容器,而实际有 22 个,则最早的 2 个容器会被移除。
在这个类比中,容器代表索引,架子代表 OpenSearch,最大数量则是允许的索引数。
选择轮换策略
Graylog 提供三种保留策略:
- “Index time” 定义每个索引中消息的最长保留时间,例如每个索引保留 14 天。
- “Index message count” 设置每个索引的最大消息数,例如每个索引 2,000 万条消息。
- “Index size” 限制每个索引的最大容量,例如每个索引 40 GB。
您可以根据实际需求选择其中一种策略。例如,选择“Index time”可以确保始终保留最近 X 天的日志。
请务必准确评估您的磁盘存储需求。
例如,如果您每天存储 1 GB 日志,并决定保留最近 365 天的日志,则需要 365 GB 的磁盘空间。请记得还要预留额外的操作空间(见下文)。
定义保留参数
Graylog 默认将索引数量限制为 20。您可以根据实际需求调整该值。例如,如果您希望保留最近 365 天的日志,可以将 365 天分配到 20 个索引中,即每个索引大约保留 19 天的数据。
对于其他策略,也可以进行类似的计算:
- 对于“Index message count”策略:如果要保留 2 亿条消息,最多 20 个索引,则每个索引 1,000 万条消息。
- 对于“Index size”策略:如果要保留 400 GB 日志,最多 10 个索引,则每个索引 40 GB。
我们建议始终为日志、Graylog 的 journal 以及 MongoDB 数据预留至少 15 GB 的可用磁盘空间。
如果磁盘空间耗尽,OpenSearch 会阻止其操作,您可能需要升级到更大的实例。
配置保留策略
要配置保留策略,请进入 Graylog 界面。在“System”菜单下选择“Indices”,然后点击“Default index set”中的“Edit”按钮。
以下示例配置了最多 27 个索引,每个索引保留 14 天的日志。这样可以大约保留一年的日志(378 天)。
我们不建议每个索引保留超过 14 天的消息。
保留策略配置示例:保留一年的日志
当选择“Index time”作为轮换策略时,您需要使用 ISO8601 Duration 标准来定义时长。
例如,“P7D”表示 7 天,“P14D”表示 14 天,依此类推。
深入了解
如果您想进一步了解索引机制,强烈建议您阅读官方文档。
处理 OpenSearch 只读索引相关错误
有时,OpenSearch 可能会切换为只读模式,您可能会遇到如下错误:
- “Flood stage disk watermark exceeded, all indices on this node will be marked read-only”
- “FORBIDDEN/12/index read-only / allow delete (api)”
这些错误是 OpenSearch 在磁盘空间严重不足时的保护机制。当可用磁盘空间低于 7 GB 时,OpenSearch 会将索引设置为只读,以防止数据损坏。
如果遇到这些错误,您有两个选择:
- 重新配置保留策略,减少保留的日志数量。调整策略后,删除最旧的索引以释放磁盘空间,使 OpenSearch 能恢复为读写模式。请注意,删除索引会导致该索引内的所有数据永久丢失。
- 升级到更大磁盘的实例。在 Stackhero 控制台中只需点击一次,实例会重启并分配更多磁盘空间,OpenSearch 会自动恢复为读写模式。