systemd 日志维护指南

Systemd 带有许多内置功能来管理系统日志。在本指南中,我们解释了如何管理系统日志、日志并对其采取措施,例如轮换、归档和清除日志。 我们还解释了手动系统日志清理方法和使用配置文件更改。

如果您的 Linux 发行版支持 systemd,那么它会从系统启动的每一秒收集所有进程和应用程序的日志。所有这些日志事件都由 systemd 的journald守护进程管理。journald收集所有日志(信息、警告、错误等)并将它们作为二进制数据存储在磁盘文件中。

由于日志保留在磁盘中,并且每一秒都在收集,因此占用了巨大的磁盘空间;特别是对于旧系统、服务器。例如,在我的一个运行了大约一年的测试系统中,日志文件大小以 GB 为单位。

如果您管理多个系统、服务器,始终建议正确管理日志日志以实现高效操作。让我们看看如何管理日志文件。

系统日志维护

使用 systemd 的 journalctl 实用程序,您可以查询这些日志,对它们执行各种操作。例如,查看来自不同引导的日志文件、检查最后的警告、来自特定进程或应用程序的错误。如果您不知道这些,我建议您在遵循本指南之前 快速阅读本教程 – “使用 journalctl 查看和分析 Systemd 日志 [带有示例] ”。

物理日志日志文件在哪里?

systemd 的 journald 守护进程从每次启动中收集日志。这意味着,它根据引导对日志文件进行分类。

日志以二进制形式存储在路径/var/log/journal中,文件夹作为机器 ID。

例如:

另外,请记住,根据系统配置,运行时日志文件存储在/run/log/journal/ 。这些在每次启动时都会被删除。

我可以手动删除日志文件吗?

可以,但不要这样做。相反,请按照以下说明使用 journalctl 实用程序清除日志文件以释放磁盘空间。

systemd 日志文件使用了多少磁盘空间?

打开终端并运行以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --disk-usage
Archived and active journals take up 3.8G in the file system.

这应该为您提供系统中的日志文件实际使用了多少。

journalctl 磁盘使用命令

如果您有图形桌面环境,则可以打开文件管理器并浏览到路径/var/log/journal并检查属性。

systemd 日志清理流程

清除日志文件的有效方式应该是journald.conf配置文件。理想情况下,即使 journalctl 提供了执行此操作的实用程序,您也不应该手动删除日志文件。

让我们看看如何手动删除它,然后我将解释配置更改,journald.conf以便您不需要手动删除文件;相反,systemd 会根据您的配置自动处理它。

手动删除

首先,你必须flushrotate日志文件。轮换rotate是将当前活动的日志文件标记为存档并从此时开始创建新日志文件的一种方式。如果启用了持久存储,则flush刷新开关要求日志守护进程将存储在/run/log/journal/中的任何日志数据刷新到 /var/log/journal/(如果启用了持久存储)。

然后,在flushrotate之后,您需要运行 journalctl vacuum-sizevacuum-timevacuum-files开关以强制 systemd 清除日志。

示例 1:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --flush --rotate
[sudo] linuxmi 的密码: 
linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --vacuum-time=1s

上面的命令集删除所有归档的日志日志文件,直到最后一秒。这有效地清除了一切。因此,在运行命令时要小心。


日志清理 – 示例

清理后:

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --disk-usage
Archived and active journals take up 24.0M in the file system.

清理后 – 日志空间使用情况

您还可以根据需要在数字后面提供以下后缀。

  • s: seconds
  • m: minutes
  • h: hours
  • days
  • months
  • weeks
  • years

示例 2:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --flush --rotate
linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --vacuum-size=200M

这将清除所有归档的日志日志文件并保留最后 200MB 的文件。请记住,此开关仅适用于归档日志文件,不适用于活动日志文件。您还可以使用如下后缀。

  • K: KB
  • M: MB
  • G: GB

示例 3:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --flush --rotate
linuxmi@linuxmi:~/www.linuxmi.com$ sudo journalctl --vacuum-files=2

Vacuum-files 开关清除指定数量以下的所有日志文件。因此,在上面的示例中,仅保留最后 2 个日志文件,并删除其他所有文件。同样,这仅适用于存档文件。

您可以根据需要组合开关,但我建议不要这样做。但是,请确保先使用--rotateswitch 运行。

使用配置文件自动删除

虽然上述方法很好且易于使用,但建议您使用/etc/systemd/journald.conf.

systemd 为您提供了许多参数来有效地管理日志文件。通过组合这些参数,您可以有效地限制日志文件使用的磁盘空间。让我们来看看。

journald.conf 参数 描述 例子
系统最大使用 指定日志可以在持久存储中使用的最大磁盘空间 SystemMaxUse=500M
SystemKeepFree 指定将日志条目添加到持久存储时日志应保留的可用空间量。 SystemKeepFree=100M
系统最大文件大小 控制单个日志文件在轮换之前可以在持久存储中增长到多大。 SystemMaxFileSize=100M
运行时最大使用 指定可用于易失性存储(在 /run 文件系统内)的最大磁盘空间。 RuntimeMaxUse=100M
运行时保持免费 指定将数据写入易失性存储(在 /run 文件系统内)时为其他用途留出的空间量。 RuntimeMaxUse=100M
运行时最大文件大小 指定单个日志文件在轮换之前可以在易失性存储(在 /run 文件系统内)中占用的空间量。 RuntimeMaxFileSize=200M

如果将这些值添加到文件中正在运行的系统中/etc/systemd/journald.conf,则必须在更新文件后重新启动 journald。要重新启动,请使用以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$sudo systemctl restart systemd-journald

验证日志文件

清理文件后检查日志文件的完整性更为明智。为此,请运行以下命令。该命令针对日志文件显示 PASS、FAIL。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --verify
PASS: /var/log/journal/410fc2999cbe46c1b64271d33f2cb693/system.journal
PASS: /var/log/journal/410fc2999cbe46c1b64271d33f2cb693/user-1000.journal
PASS: /var/log/journal/410fc2999cbe46c1b64271d33f2cb693/user-1001.journal

验证日志文件

结语

我希望本指南可以帮助您了解 systemd 期刊管理流程的基础知识。使用这些,您可以通过限制空间、清除旧日志文件来管理系统或服务器中的日志文件使用的磁盘空间。这些只是指导性命令,您可以通过多种方式组合这些命令来满足您的系统需求。

The post systemd 日志维护指南 first appeared on Linux迷.

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/24740.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>