Graylog: 处理保留
如何配置日志保留
👋 欢迎使用 Stackhero 文档!
Stackhero 提供即用型 Graylog 云 解决方案,具有众多优势,包括:
- 包含无限制和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松完成更新。
- 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!
保留定义了存储在OpenSearch数据库中的消息数量。您可以根据消息数量、最大年龄或总体大小限制来配置保留。
例如,您可以选择保留过去365天的消息,最多保留2亿条消息,或预留总共400 GB的存储空间。
理解索引
在定义保留策略之前,了解Graylog和OpenSearch使用的索引如何工作是很重要的。可以将索引视为物理容器。Graylog“打开”一个容器(索引)并将传入的消息放入其中。当分配给该容器的配额超出时,容器被关闭,存储在架子上,并为后续消息启动一个新容器。
您可以使用不同的标准设置此配额:
- 消息数量:“每个容器保留2000万条消息,然后启动一个新容器。”
- 时间限制:“使用一个容器10天,然后切换到新容器。”
- 大小限制:“每个容器存储20 GB,然后转到新容器。”
还定义了可以存储在架子上的最大容器数量。如果超过该数量,最旧的容器将自动删除。例如,如果您设置最大20个容器,而架子上有22个,则最旧的2个容器将被移除。
在这个类比中,容器代表索引,架子是OpenSearch,最大数量代表允许的索引数量。
选择轮换策略
Graylog提供三种保留策略:
- “索引时间”定义了每个索引中消息保留的最长时间,例如,每个索引14天。
- “索引消息计数”设置每个索引的最大消息数量,例如,每个索引2000万条消息。
- “索引大小”限制索引的最大大小,例如,每个索引40 GB。
您可以根据具体需求选择其中一种策略。例如,选择“索引时间”可以确保您始终拥有过去X天的日志。
请务必准确估算您的磁盘存储需求。
例如,如果您每天存储1 GB的日志,并决定保留过去365天的日志,您将需要365 GB的磁盘空间。请记住,还必须预留额外的操作空间(见下文)。
定义保留参数
默认情况下,Graylog将索引数量限制为20。您可以根据需要调整此值。例如,如果您希望存储过去365天的日志,可以通过将365天除以20个索引来分配保留,这大约是每个索引19天。
您可以对其他策略进行类似计算:
- 对于“索引消息计数”策略:如果您希望保留2亿条消息,最多20个索引,那么2亿条消息除以20个索引,每个索引1000万条消息。
- 对于“索引大小”策略:如果您希望维护400 GB的日志,最多10个索引,那么400 GB除以10个索引,每个索引40 GB。
我们建议始终保留至少15 GB的可用磁盘空间用于日志、Graylog的日志和MongoDB数据。
如果可用磁盘空间耗尽,OpenSearch将阻止其操作,您可能需要升级到更大的实例。
配置保留策略
要配置保留策略,请导航到Graylog界面。在“System”下选择“Indices”,然后点击“Default index set”中的“Edit”按钮。
在下面的示例中,配置设置了最多27个索引,每个索引保留14天的日志。此设置大约保留一年的日志(378天)。
我们不建议每个索引保留超过14天的消息。
保留配置以保留一年的日志
选择“索引时间”作为轮换策略时,您需要使用ISO8601 Duration标准定义持续时间。
例如,“P7D”表示7天,“P14D”表示14天,等等。
进一步了解
如果您想了解更多关于索引的信息,我们强烈建议您阅读官方文档。
处理OpenSearch只读索引的错误
有时,OpenSearch可能会切换到只读模式,您可能会遇到以下错误:
- “超过洪水阶段磁盘水印,节点上的所有索引将被标记为只读”
- “FORBIDDEN/12/index read-only / allow delete (api)”
这些错误是OpenSearch在磁盘空间严重不足时的保护机制的一部分。当可用磁盘空间降至7 GB以下时,OpenSearch会将索引设置为只读,以防止数据损坏。
如果您遇到这些错误,您有两个选择:
- 重新配置您的保留策略以保留更少的日志。在调整策略后,删除最旧的索引以释放磁盘空间,并允许OpenSearch切换回读写模式。请注意,删除索引意味着该索引中的所有数据将丢失。
- 升级到具有更大磁盘的实例。在您的Stackhero仪表板中只需点击一下,实例将重新启动并增加磁盘空间,OpenSearch将自动返回到读写模式。