Docker 日志默认使用的是 journald 的方式.
RateLimitBurst 是 journald 的一个参数,用于限制日志的速率。如果日志的生成速度超过这个限制,journald 可能会丢弃日志。你可以通过调整这个参数来避免日志被丢弃。
调整 RateLimitBurst 和 RateLimitInterval
- 编辑
journald的配置文件:
通常位于 /etc/systemd/journald.conf。如果文件不存在,可以创建它。
sudo nano /etc/systemd/journald.conf
- 配置
RateLimitBurst和RateLimitInterval参数:
在文件中添加或修改以下行:
[Journal]
RateLimitBurst=100000 # 设置允许的最大日志条数
RateLimitInterval=30s # 设置在指定的时间间隔内应用 RateLimitBurst
这些设置表示在每 30 秒内最多允许 100,000 条日志。根据你的需要,你可以调整这些值。
-
保存文件并退出编辑器。
-
重新启动
systemd-journald:
sudo systemctl restart systemd-journald
其他可能需要调整的 journald 配置
除了 RateLimitBurst 和 RateLimitInterval,你可能还需要配置其他相关参数,以确保日志不会被丢弃。
SystemMaxUse:设置日志占用的最大空间。SystemKeepFree:设置系统中保留的最小可用空间。SystemMaxFileSize:设置单个日志文件的最大大小。SystemMaxFiles:设置最大日志文件数量。
在 /etc/systemd/journald.conf 文件中,可以进行如下配置:
[Journal]
Storage=persistent
SystemMaxUse=500M
SystemKeepFree=100M
SystemMaxFileSize=10M
SystemMaxFiles=3
RateLimitBurst=100000
RateLimitInterval=30s
查看和验证日志设置
- 查看当前的
journald配置:
journalctl --verify
- 检查日志是否被丢弃:
可以使用 journalctl 来查看日志,确保没有丢失。
journalctl -u <your_service_name> -n 100
通过这些调整,你可以避免日志由于速率限制而被丢弃。









