このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:ログとログファイル

ログとログファイル

 Linux システムでは、さまざまなサービスやプログラムが動作しています。これらの活動状況やエラーの記録を ログ と呼び、通常は ログファイル に保存されます。ログファイルを確認することで、システムの状態を把握したり、障害発生時に原因を特定したりすることが可能です。サーバ運用やトラブルシューティングにおいて、ログとログファイルの理解は欠かせない要素です。

 Rocky Linux をはじめとする多くのディストリビューションでは、ログ管理の仕組みとして rsyslog が利用されており、ログは主に /var/log ディレクトリ以下に保存されます。ここでは、ログの基礎と主要なログファイル、さらにそれらを確認・活用するためのコマンドを解説します。


1.ログとログファイルの基礎

1.1. ログとは

 ログとは、コンピュータ上で発生した出来事やシステムの動作状況を記録したものです。ログには、以下のような種類があります。

ログの種類説明
システムログカーネルやサービスの起動・停止、エラーなどシステム全般の情報
認証ログログインや認証の成功・失敗に関する情報
メールログメール送受信に関する情報
アプリケーションログ各アプリケーション固有の情報

ログは、問題が起きた際の原因調査や、セキュリティ監視、パフォーマンス分析に活用されます。

1.2. ログファイルの保存場所

 多くのログファイルは /var/log ディレクトリ以下に保存されます。代表的なファイルをまとめると次のとおりです。

ファイル名説明
/var/log/messagesシステム全般のログ(主要なログファイル)
/var/log/secure認証関連のログ(ログイン成功・失敗など)
/var/log/maillogメール送受信の記録
/var/log/croncron ジョブの実行記録
/var/log/dnf.logパッケージ管理操作の記録

2.ログの管理方法

2.1. syslog と rsyslog

 Linux ではログを集約・管理する仕組みとして syslog があり、Rocky Linux では拡張版の rsyslog が標準的に利用されます。rsyslog は柔軟なフィルタリング機能やネットワーク経由でのログ転送機能を備えています。

インストールと起動は以下のように行います。

[user@rocky9 ~]$ sudo dnf install rsyslog # Rocky LinuxのGUI版ではデフォルトでインストールされています
[user@rocky9 ~]$ sudo systemctl enable --now rsyslog

2.2. journalctl コマンド

 Rocky Linux 9 では systemd によるログ管理も行われており、journalctl コマンドを使うことでログを確認できます。

書式

journalctl [オプション]

主なオプション

オプション説明
-xeエラーを含む詳細なログを確認
-u サービス名特定のサービスに関連するログを表示
-fログをリアルタイムで追跡
--since指定した日時以降のログを表示

使用例

[user@rocky9 ~]$ journalctl -u sshd
 9月 14 08:45:41 rocky9 systemd[1]: Starting OpenSSH server daemon...
 9月 14 08:45:41 rocky9 sshd[1101]: Server listening on 0.0.0.0 port 22.
 9月 14 08:45:41 rocky9 sshd[1101]: Server listening on :: port 22.
 9月 14 08:45:41 rocky9 systemd[1]: Started OpenSSH server daemon.

 この例では、sshd サービスに関するログを確認しています。ログイン成功や失敗の記録が残されていることがわかります。

3.ログファイルの閲覧方法

3.1. less コマンド

ログファイルはテキスト形式で保存されるため、less コマンドで閲覧できます。

[user@rocky9 ~]$ less /var/log/messages

Sep 14 00:00:04 rocky9 systemd[1]: Starting Rotate log files...
Sep 14 00:00:04 rocky9 systemd[1]: Started Update a database for mlocate.
Sep 14 00:00:04 rocky9 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 1200 (rsyslogd) on client request.
(省略)

3.2. grep コマンド

特定のキーワードを含む行だけを抽出したい場合は grep コマンドを使用します。

[user@rocky9 ~]$ grep "error" /var/log/messages
Sep 14 00:00:46 rocky9 cupsd[1096]: REQUEST localhost - - "POST / HTTP/1.1" 200 183 Renew-Subscription client-error-not-found
Sep 14 00:21:22 rocky9 cupsd[1096]: REQUEST localhost - - "POST / HTTP/1.1" 200 152 Cancel-Subscription client-error-not-found
(省略)

このコマンドは、ログファイル内から「error」を含む行を検索して表示します。

3.3. tail コマンド

ログをリアルタイムで監視する際には tail -f を使用します。

[user@rocky9 ~]$ sudo tail -f /var/log/secure
[sudo] user のパスワード:
Sep 14 08:46:26 rocky9 gdm-password][2075]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring
Sep 14 08:46:27 rocky9 polkitd[759]: Registered Authentication Agent for unix-session:2 (system bus name :1.71 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8)
Sep 14 08:46:30 rocky9 gdm-launch-environment][1132]: pam_unix(gdm-launch-environment:session): session closed for user gdm
(省略)

これにより、ログイン試行などの認証関連イベントをリアルタイムで確認できます。

Ctrl + c キーで終了します。

まとめ

  • ログ はシステムやプログラムの活動状況を記録したもので、通常は ログファイル に保存される。
  • ログファイルは主に /var/log ディレクトリ以下にあり、/var/log/messages/var/log/secure などが代表的
  • rsyslogsystemd-journald によってログは管理され、journalctl コマンドで詳細な閲覧が可能
  • less, grep, tail などのコマンドを組み合わせることで、効率的にログを分析できる。

 ログの確認と分析は、Linux システム管理の基本スキルです。日常的にログをチェックする習慣をつけることで、問題を未然に防ぐことができ、トラブル発生時の対応スピードも大幅に向上します。