使用 轻量服务器 的系统盘磁盘空间规格小且比较固定,时常遇到磁盘空间不够用的情况, 特别是服务器长期运行的日志量非常大,导致系统盘占满,威胁服务器和业务正常运行。
上述策略可以在业务层面避免或缓解系统盘的占用,但是当服务器长时间运行时,产生的系统日志不好控制,特别是
使用 systemd 管理的守护进程,可能会产生非常多的日志轮转文件,比如 k8s 场景下kubelet 日志,占用大量系统盘存储空间。
journal 日志系统是 systemd 管理的守护进程的日志系统, 相当于 init 系统中的 syslog。它负责收集和存储内核、系统日志、标准输出和各种 systemd 服务的错误,默认情况下是没有开启任何控制策略的。
下面将介绍如何控制 systemd 管理的守护进程的日志量,使用其原生支持的方式来优雅控制守护进程的日志量。
systemd 管理的日志会写入/var/log/journal
目录,当然,你可以使用 rm 命令删除日志文件夹中的文件,但不建议这样做, 可以使用journalctl
命令来控制管理这些日志文件,这个方式更加简单优雅。
下面介绍一些常用的清理命令:
# 查看journal 日志的磁盘占用
journalctl --disk-usage
# 手动轮转当前日志,journal 会产生新的日志文件
journalctl --rotate
# 清理大于 3 天的 journal 日志
journalctl --vacuum-time=3d
# 按照 journal 日志大小清理,下面命令表示最大占用 200 M 磁盘
journalctl --vacuum-size=200M
# 限制每个守护服务 journal 的日志文件数量
journalctl --vacuum-files=5
上述命令只是暂时根据策略手动清理日志文件,如果想自动控制和清理,我们可以通过修改 journald 配置文件来实现。
你可以按照自己的实际情况配置日志保留策略,下面是常用的一些配置项:
# 查看 journald 配置文件
cat /etc/systemd/journald.conf
...
[Journal]
SystemMaxUse #journal日志可以占用的最大磁盘空间,比如 SystemMaxUse=250M
SystemMaxFileSize # 单个日志文件的大小, 比如 SystemMaxFileSize=5
SystemMaxFiles # 单个守护进程最大日志文件数,比如 SystemMaxFiles=3
...
编辑完配置文件后,记得需要重启服务才能生效:
systemctl restart systemd-journald
本文介绍了轻量服务器如何更好的控制 systemd 系统日志,合理控制系统盘磁盘占用,从而更好的利用轻量服务器的价格优势,助理业务成功。
双十一官网活动链接:双11活动上云拼团Go
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。