>운영 및 유지보수 >안전 >systemd 로그 유지 관리 가이드(예제 포함)

systemd 로그 유지 관리 가이드(예제 포함)

王林
王林앞으로
2023-06-09 21:46:33803검색

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

Linux 배포판이 ​​systemd​​​를 지원하는 경우 부팅 시간부터 매초마다 시스템의 모든 프로세스와 애플리케이션에서 로그를 수집합니다. 이러한 모든 로그 이벤트는 systemd의 ​저널​​ 데몬 관리. Journald는 모든 로그(정보, 경고, 오류 등)를 수집하여 디스크 파일에 바이너리 데이터로 저장합니다. ​journald​​ 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。

由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器来说。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。

如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。

systemd 日志维护

使用 systemd 的 ​​journalctl​​ 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程:​​使用 journalctl 查看和分析 systemd 日志(附实例)​​ 》。

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

systemd 的 journald 守护进程在每次启动时都会收集日志。这意味着,它根据启动情况对日志文件进行分类。

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

比如说:

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

日志文件位置的截图-1

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

日志文件位置的截图-2

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

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

你可以,但不要这样做。相反,请按照下面的说明,使用 ​​journalctl​​ 工具清除日志文件以释放磁盘空间。

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

打开一个终端,运行以下命令。

journalctl --disk-usage

这应该为你提供系统中的日志文件实际使用的数量。

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

journalctl 磁盘使用命令

如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 ​​/var/log/journal​​,并检查属性。

systemd 日志清理过程

清理日志文件的有效方法应该是通过 ​​journald.conf​​ 配置文件来完成。正常情况下,即使 ​​journalctl​

로그는 디스크에 보관되고 매초 수집되기 때문에 특히 오래된 시스템과 서버의 경우 엄청난 디스크 공간을 차지합니다. 예를 들어, 1년 정도 실행된 테스트 시스템 중 하나에서 로그 파일의 크기는 기가바이트입니다. 🎜🎜여러 시스템과 서버를 관리하는 경우 저널링된 로그를 올바르게 관리하여 효율적으로 실행하는 것이 좋습니다. 로그 파일을 관리하는 방법을 살펴보겠습니다. 🎜

systemd 로그 유지 관리

🎜systemd의 ​​journalctl​​ 도구를 사용하면 이러한 로그를 쿼리하고 다양한 작업을 수행할 수 있습니다. 예를 들어 다양한 시작의 로그 파일을 보고 특정 프로세스나 애플리케이션에 대한 마지막 경고 및 오류를 조사합니다. 이에 대해 모르는 경우 이 가이드를 따르기 전에 이 튜토리얼을 잠깐 살펴보는 것이 좋습니다. ​​journalctl 사용 시스템 로그 보기 및 분석(예제 포함)​🎜​》. 🎜

Physics Diary의 로그 파일은 어디에 있나요?

🎜systemd의 저널 데몬은 시작될 때마다 로그를 수집합니다. 이는 시작 조건에 따라 로그 파일을 분류한다는 의미입니다. 🎜🎜로그는 바이너리 형식으로 경로에 저장됩니다. ​​/var/log/journal​​, 폴더는 컴퓨터 ID입니다. 🎜🎜예: 🎜🎜systemd 로그 유지 관리 가이드(예제 포함) 🎜

로그 파일 위치-1 스크린샷🎜🎜systemd 로그 유지 관리 가이드(예제 포함)🎜

로그 파일 위치 스크린샷-2🎜🎜또한, 시스템 구성에 따라 런타임 로그 파일은 ​​/run/log/journal/​​. 그리고 이는 시작할 때마다 삭제됩니다. 🎜

로그 파일을 수동으로 삭제할 수 있나요?

🎜할 수 있지만 하지 마세요. 대신 아래 지침에 따라 ​​journalctl​​ 도구는 로그 파일을 지워 디스크 공간을 확보합니다. 🎜

systemd의 로그 파일은 얼마나 많은 디스크 공간을 차지합니까?

🎜터미널을 열고 다음 명령을 실행하세요. 🎜
sudo journalctl --flush --rotate
🎜이를 통해 시스템에서 사용 중인 실제 로그 파일 수를 알 수 있습니다. 🎜🎜systemd 로그 유지 관리 가이드(예제 포함)🎜

journalctl 디스크 사용량 명령🎜🎜그래픽 데스크톱 환경이 있는 경우 파일 관리자를 열고 ​​/var/log/journal​​ 그리고 속성을 확인해보세요. 🎜

시스템 로그 정리 프로세스

🎜로그 파일을 정리하는 효과적인 방법은 ​​journald.conf​​ 구성 파일을 완료합니다. 일반적인 상황에서는 ​​journalctl​​는 로그 파일을 삭제하는 도구를 제공하지만 이러한 파일을 수동으로 삭제해서는 안 됩니다. 🎜

让我们来看看如何 ​​手动​​ 删除它,然后我将解释 ​​journald.conf​​ 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。

手动删除

首先,你必须 ​​flush​​ 和 ​​rotate​​ 日志文件。轮换rotate是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。冲洗flush 开关要求日志守护进程将存储在 ​​/run/log/journal/​​ 中的所有日志数据冲入 ​​/var/log/journal/​​,如果持久性存储被启用的话。

然后,在 ​​flush​​ 和 ​​rotate​​ 之后,你需要用 ​​vacuum-size​​、​​vacuum-time​​ 和 ​​vacuum-files​​ 选项运行 ​​journalctl​​ 来强制 systemd 清除日志。

例 1:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-time=1s

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

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

日志清理-例子

清理完毕后:

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

清理后--日志的占用空间

你也可以根据你的需要在 ​​--vacuum-time​​ 的数字后面提供以下后缀:

  • ​s​​:秒
  • ​m​​:分钟
  • ​h​​:小时
  • ​days​​:天
  • ​months​​:月
  • ​weeks​​:周
  • ​years​​:年

例 2:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-size=400M

这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。

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

例 3:

sudo journalctl --flush --rotate
sudo journalctl --vacuum-files=2

​vacuum-files​​ 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。

如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 ​​--rotate​​ 选项运行。

使用配置文件自动删除

虽然上述方法很好,也很容易使用,但建议你使用 journald 配置文件来控制日志文件的清理过程,该文件存在于 ​​/etc/systemd/journald.conf​​。

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

🎜🎜​​RuntimeMaxFileSize​​🎜

journald.conf 参数

描述

实例

​SystemMaxUse​

指定日志在持久性存储中可使用的最大磁盘空间

​SystemMaxUse=500M​

​SystemKeepFree​

指定在将日志条目添加到持久性存储时,日志应留出的空间量。

​ SystemKeepFree=100M​​SystemKeepFree=100M​

​SystemMaxFileSize​

控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。

​SystemMaxFileSize=100M​

​RuntimeMaxUse​

指定在易失性存储中可以使用的最大磁盘空间(在 ​​/run​​ 文件系统内)。

​RuntimeMaxUse=100M​

​RuntimeKeepFree​

指定将数据写入易失性存储(在 ​​/run​​ 文件系统内)时为其他用途预留的空间数量。

​RuntimeMaxUse=100M​

​RuntimeMaxFileSize​

​SystemMaxFileSize​​🎜🎜 🎜회전하기 전에 영구 저장소에서 단일 로그 파일의 크기를 제어합니다.
🎜🎜🎜🎜​​SystemMaxFileSize=100M​​🎜🎜
​RuntimeMaxUse​​🎜🎜 🎜휘발성 저장소에서 사용할 수 있는 최대 디스크 공간을 지정합니다(​​/run​​ 🎜🎜🎜🎜​ ​RuntimeMaxUse=100M​​🎜🎜
​RuntimeKeepFree​​🎜 🎜 🎜휘발성 저장소에 데이터 쓰기를 지정합니다( ​​/run​​ 파일 시스템 내에서 다른 용도로 예약된 공간입니다. 🎜🎜🎜🎜​ ​RuntimeMaxUse=100M​​🎜🎜

指定单个日志文件在被轮换之前在易失性存储(在 ​​/run​​ 文件系统内)所能占用的空间量。

​RuntimeMaxFileSize=200M​

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

sudo systemctl restart systemd-journald

核实日志文件

在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(​​PASS​​)、失败(​​FAIL​​)。

journalctl --verify

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

验证日志文件

总结

希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。

위 내용은 systemd 로그 유지 관리 가이드(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제