配置时的注意事项 日志记录代理

在配置 IBM® Cloud Logs 日志记录代理 时,需要了解日志是如何处理的,以及更改默认配置可能会导致日志丢失。

要想获得最佳的日志处理效果,同时减少丢失数据的可能性,您需要运行最新的 日志记录代理 版本。 本信息假定您正在运行 日志记录代理 1.6.1 或更高版本。

重试限制

默认情况下,日志记录代理 被配置为在发生错误时不断重试发送日志,直到成功为止。 默认行为由 retryLimit: false 参数配置。 在 Kubernetes 中,这在 日志记录代理 configmap 中管理,而在 Linux 环境中,这在 日志记录代理 配置文件中管理。

如果更改 retryLimit 的默认值,就有可能丢失数据。 例如,retryLimit: "no_retries" 表示 日志记录代理 在发生错误时根本不会重试发送日志。 指定一个整数值,例如 retryLimit: 8,表示 日志记录代理 在放弃日志之前重试发送日志的指定次数(8)。

有关 Fluent Bit 如何调度重试间隔的信息,请参阅 调度和重试。

流畅的位缓冲

日志记录代理 默认配置为使用流畅比特 filesystem 缓冲。 这种配置意味着,如果系统发生故障,日志记录代理 处理的日志将保存在文件存储器中。 日志记录代理 重新启动时,将处理 filesystem 缓冲区中的日志。

如果将配置更改为使用 memory 缓冲,而出现 日志记录代理 被终止或意外终止的问题,则 memory 缓冲区中的日志可能会被丢弃。

更多信息,请参阅 缓冲和存储

日志旋转

如果环境在 日志记录代理 处理日志文件之前轮换日志文件,日志就有可能被丢弃。 如果 日志记录代理 在相当长的时间内停止运行,可能会出现因日志轮换而导致的数据丢失。

Kubernetes

在 IBM 管理的群集中,/var/log/containers 中的所有 stdout 容器日志文件都由 kublet 管理。 当每个容器日志文件的大小达到 100MiB 时,将对其进行轮换。 轮换后,每个容器最多保留 3 个日志文件。 这些文件的大小和数量不可配置。

如果日志文件在 日志记录代理 处理数据之前就已填满并旋转,未处理的日志就会被丢弃。

Linux

日志旋转处理可在 Linux 中配置。 例如,使用 logrotate 工具。

如果日志文件在 日志记录代理 处理数据之前就已填满并旋转,未处理的日志就会被丢弃。

Windows

日志旋转处理可在 Windows 中配置。 不过,目前还没有用于日志轮换的内置 Windows 工具。 第三方应用程序或内置应用程序设置可用于配置日志轮换。

如果日志文件在 日志记录代理 处理数据之前就已填满并旋转,未处理的日志就会被丢弃。