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
通过这些调整,你可以避免日志由于速率限制而被丢弃。