当前位置: 首页 > 科技观察

systemd日志维护指南(附示例)

时间:2023-03-14 13:11:03 科技观察

如果您的Linux发行版支持systemd,它会每秒从系统上的所有进程和应用程序收集日志,从启动时间开始。所有这些日志事件都由systemd的journald守护进程管理。journald收集所有日志(信息、警告、错误等)并将它们作为二进制数据存储在磁盘文件中。由于日志保存在磁盘中,每秒收集一次,占用磁盘空间巨大;特别是对于旧系统,服务器。例如,在我的一个运行了一年左右的测试系统上,日志文件在GB范围内。如果您管理多个系统和服务器,建议妥善管理journald日志以高效运行。让我们来看看如何管理日志文件。systemd日志维护使用systemd的journalctl工具,您可以查询这些日志并对它们执行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果您是新手,我建议您在继续阅读本指南之前快速浏览一下本教程:使用journalctl查看和分析systemd日志(附示例)。物理日记的日志文件在哪里?systemd的journald守护进程收集每次启动都会记录日志。也就是说,它会根据启动情况对日志文件进行分类。日志以二进制形式存储在路径/var/log/journal中,文件夹为机器ID。例如:日志文件位置截图-1日志文件位置截图-2另外,请记住,根据系统配置,运行时日志文件存储在/run/log/journal/。每次启动时都会删除这些日志文件。我可以手动删除日志文件吗?你可以,但不要这样做。相反,使用journalctl工具清除日志文件以释放磁盘空间,如下所述。systemd的日志文件占用了多少磁盘空间?打开终端并运行以下命令。journalctl--disk-usage这应该给你实际的journ量al文件在系统上的使用情况。journalctldiskusage命令如果您有图形桌面环境,您可以打开文件管理器,浏览到路径/var/log/journal,然后检查属性。systemd日志清理进程清理日志文件的一种有效方法应该是通过journald.conf配置文件。一般情况下,即使journalctl提供了删除journal文件的工具,也不应该手动删除这些文件。让我们看看如何手动删除它,然后我将解释journald.conf中的配置更改,这样您就不需要时不时地手动删除该文件;相反,systemd将根据您的配置处理自动执行此操作。要先手动删除,您必须刷新和轮换日志文件。轮转是将当前活动的日志文件归档,并立即开始创建新的日志文件以继续记录。如果启用了持久存储,flush开关告诉日志守护进程将存储在/run/log/journal/中的所有日志数据刷新到/var/log/journal/中。然后,在刷新和旋转之后,您需要运行带有选项vacuum-size、vacuum-time和vacuum-files的journalctl以强制systemd清除日志。示例1:sudojournalctl--flush--rotatesudojournalctl--vacuum-time=1s上面的一组命令将删除所有归档的日志文件,直到最后一秒。这有效地清除了一切。因此,运行此命令时要小心。Logcleaning-exampleAftercleaning:清理后--日志占用的空间你也可以根据自己的需要在--vacuum-time的数字后面加上如下后缀:s:秒m:分钟h:Hourdays:Daymonths:Monthweeks:Weekyears:Year示例2:sudojournalctl--flush--rotatesudojournalctl--vacuum-size=400M这将清除所有存档的日志文件并保留最后400MB的文件。请记住,此开关仅适用于归档日志文件,不适用于活动日志文件。您还可以使用后缀,如下所示。K:KBM:MBG:GB示例3:sudojournalctl--flush--rotatesudojournalctl--vacuum-files=2Vacuum-files选项将清除指定数量以下的所有日志文件。所以,在上面的例子中,只保留了最后两个日志文件,其他的都被删除了。同样,这仅适用于存档文件。您可以根据需要组合这两个选项,但我不建议这样做。但是,如果同时使用这两个选项,请确保首先使用--rotate选项运行。使用配置文件自动删除虽然上述方法很好且易于使用,但建议您使用位于/etc/systemd/journald.conf的journald配置文件来控制journald清理过程。systemd为您提供了许多参数来有效地管理日志文件。通过结合这些参数,可以有效地限制日志文件占用的磁盘空间。让我们来看看。journald.conf参数说明示例SystemMaxUse指定日志在持久存储中可以使用的最大磁盘空间SystemMaxUse=500MSystemKeepFree指定当将日志条目添加到持久存储时日志应该剩余的空间量。SystemKeepFree=100MSystemMaxFileSize控制单个日志文件在轮换之前可以在持久存储中增长到多大。SystemMaxFileSize=100MRuntimeMaxUse指定可用于易失性存储(在/run文件系统内)的最大磁盘空间。RuntimeMaxUse=100MRuntimeKeepFree指定在将数据写入易失性存储(在/run文件系统内)时为其他用途保留的空间量。RuntimeMaxUse=100MRuntimeMaxFileSize指定单个日志文件在轮换之前可以在易失性存储(在/run文件系统内)上占用的空间量。RuntimeMaxFileSize=200M如果将这些值添加到正在运行的系统上的/etc/systemd/journald.conf文件中,则必须在更新文件后重新启动journald。要重新启动,请使用以下命令。sudosystemctlrestartsystemd-journald验证日志文件清理文件后,检查日志文件的完整性是明智的。为此,请运行以下命令。此命令显示日志文件是通过(PASS)还是失败(FAIL)。journalctl--verify验证日志文件总结希望本指南能帮助您了解systemd日志管理过程的基础知识。通过这些,您可以通过限制空间和清除旧日志文件来管理系统或服务器中日志文件使用的磁盘空间。这些只是指南,您可以以各种方式组合这些命令来实现您的系统要求。journalctl手册journald.conf手册