Ubuntuサーバー構築入門

  • Ubuntu 20
  • Ubuntu 18
  • Ubuntu 16

journalctlコマンド - systemd管理のログを見る

journalctlコマンドを使うと、systemdで管理されているアプリケーション(サーバーアプリケーション)のログを見ることができます。sudoでroot権限で実行します。

sudo journalctl

ログには、日付・時刻・ホスト名・アプリケーション名・プロセスID・メッセージが記述されています。

Jun 02 12:17:26 myhost systemd[75667]: Received SIGRTMIN+24 from PID 81968 (kill).
Jun 02 14:11:19 myhost systemd[88231]: Reached target Paths.
Jun 02 14:11:19 myhost systemd[88231]: Reached target Timers.
Jun 02 14:11:19 myhost systemd[88231]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Jun 02 14:11:19 myhost systemd[88231]: Listening on GnuPG cryptographic agent and passphrase cache.
Jun 02 14:11:19 myhost systemd[88231]: Listening on GnuPG cryptographic agent and passphrase cache (access for web browsers).
Jun 02 14:11:19 myhost systemd[88231]: Listening on REST API socket for snapd user session agent.
Jun 02 14:11:19 myhost systemd[88231]: Listening on GnuPG network certificate management daemon.
Jun 02 14:11:19 myhost systemd[88231]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).
Jun 02 14:11:19 myhost systemd[88231]: Reached target Sockets.
Jun 02 14:11:19 myhost systemd[88231]: Reached target Basic System.
Jun 02 14:11:19 myhost systemd[88231]: Reached target Default.
Jun 02 14:11:19 myhost systemd[88231]: Startup finished in 20ms.

ログファイルをviを使って開いた状態になりますので「Shift + G」を押すと一番下まで移動できます。

特定のアプリケーションのログだけを取り出す

grepコマンドと組み合わせると簡単です。「-i」オプションで大文字小文字を区別しないともれなくとれだせます。

# Apache
sudo journalctl | grep -i apache

# MariaDB
sudo journalctl | grep -i mariadb

# sshd
sudo journalctl | grep -i sshd

# Postfix
sudo journalctl | grep -i postfix

# sudo 
sudo journalctl | grep -i sudo

# cron
sudo journalctl | grep -i cron

ログの末尾だけを取り出す

ログの末尾だけを取り出すのは、tailコマンドと組み合わせるのが簡単です。

# Apache
sudo journalctl | grep -i apache | tail -50

# MariaDB
sudo journalctl | grep -i mariadb | tail -50

# sshd
sudo journalctl | grep -i sshd | tail -50

# Postfix
sudo journalctl | grep -i postfix | tail -50

# sudo 
sudo journalctl | grep -i sudo | tail -50

# cron
sudo journalctl | grep -i cron | tail -50

journalctlのオプション

journalctlのオプションです。

オプション:
     --system システムジャーナルを表示する
     --user 現在のユーザーのユーザージャーナルを表示します
  -M --マシン=コンテナはローカルコンテナで動作します
  -S --SINCE=DATE 指定した日付より古くないエントリを表示します
  -U --until=DATE 指定した日付より新しいエントリを表示
  -c --カーソル=CURSOR 指定されたカーソルから開始するエントリを表示します。
     --after-cursor=CURSOR 指定されたカーソルの後にエントリを表示する
     --show-cursor すべてのエントリの後にカーソルを表示します
  -b --boot[=ID] 現在のブートまたは指定されたブートを表示する
     --リスト-ブーツ記録されたブーツに関する簡潔な情報を表示
  -k --dmesg 現在のブートからカーネルメッセージログを表示する
  -u --unit=UNIT 指定されたユニットのログを表示します。
     --user-unit=UNIT 指定されたユーザーユニットのログを表示します。
  -t --識別子 =文字列 指定された syslog 識別子を持つエントリを表示します。
  -p --優先順位=範囲 指定された優先度のエントリを表示します
  -g --grep=パターンは、パターンに一致する MESSSAGE を持つエントリを表示します
     --大文字と小文字を区別する[=BOOL] 大文字と小文字を区別する、または無感覚の一致を強制する
  -e --pager-end 直ちにページャーの最後にジャンプする