ホームページ  >  記事  >  運用・保守  >  systemd ログ メンテナンス ガイド (例付き)

systemd ログ メンテナンス ガイド (例付き)

王林
王林転載
2023-06-09 21:46:33769ブラウズ

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

Linux ディストリビューションが systemd をサポートしている場合は、起動時からすべてのプロセスとアプリケーションがシステムから毎秒ダウンロードされます。ログを収集します。プログラム。これらすべてのジャーナル イベントは、systemd の journald デーモンによって管理されます。 journald はすべてのログ (情報、警告、エラーなど) を収集し、それらをバイナリ データとしてディスク ファイルに保存します。

ログはディスク上に保持され、毎秒収集されるため、特に古いシステムやサーバーの場合、大量のディスク領域を占有します。たとえば、1 年ほど稼働しているテスト システムの 1 つでは、ログ ファイルのサイズがギガバイトになります。

複数のシステムとサーバーを管理する場合は、効率的な運用のためにジャーナル ログを正しく管理することをお勧めします。ログファイルの管理方法を見てみましょう。

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 にはログ ファイルを削除するツールが用意されていますが、これらのファイルを手動で削除しないでください。

让我们来看看如何 ​​手动​​ 删除它,然后我将解释 ​​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 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。

#単一のログ ファイルがローテーションされる前に永続ストレージ内でどれだけ大きくなるかを制御します。 揮発性ストレージ ( データが揮発性ストレージ (

journald.conf 参数

描述

实例

​SystemMaxUse​

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

​SystemMaxUse=500M​

​SystemKeepFree​

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

SystemKeepFree=100M

SystemMaxFileSize


SystemMaxFileSize=100M

RuntimeMaxUse

/run

ファイル システム内) で使用できる最大ディスク容量を指定します。

RuntimeMaxUse=100M

RuntimeKeepFree

/run

ファイル システム内) に書き込まれ、他の用途のために予約されることを指定します。スペース。

RuntimeMaxUse=100M

RuntimeMaxFileSize

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

​RuntimeMaxFileSize=200M​

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

sudo systemctl restart systemd-journald

核实日志文件

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

journalctl --verify

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

验证日志文件

总结

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

以上がsystemd ログ メンテナンス ガイド (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。