目次

journalctlコマンド

Version CentOS 7.2

y2sunlight 2020-05-28

CentOS パッケージ管理に戻る

journald は CentOS7から標準的に提供されるログ管理のサービスです。正式名称は、systemd-journald.service です。RHEL7/CentOS7では、従来の rsyslogd も並行して稼働していますが、Fedora20では、もはや rsyslogd は動いておらず、システムログ管理は、journald に完全移行しています。journald によって以下のようなログが収集され Journal(データベース) として保存されています。

これらのログを表示するには journalctl コマンドが利用されます。サーバーで発生する障害の調査にはログの存在は欠かせません。以下では実際によく使う journalctl の利用例を紹介します。

関連記事

リンク


journalの設定

OSインストール直後は、Journalは、OSをリブートすると消えてしまいます。ログを蓄積したい場合は、ログの永続化が必要になります。以下はその簡単な設定例です。詳しくは上記のリンクを参照して下さい。

ログの永続化手順(手動)

cd /var/log
mkdir journal
systemctl restart systemd-journald

この設定は /etc/systemd/journald.conf で以下の変更をするのと同じです。

journald.conf
[Journal] 
...
Storage=persistent 
...

ログのサイズ

Journalのサイズは、保存用ディレクトリーの全容量に対して 10% 以上になるか、該当ディレクトリーのファイルシステムの空き容量が 15% 以下になると、古いエントリーから順に削除されていきます。明示的にサイズを指定したい場合は、/etc/systemd/journald.conf で以下の変更を行って下さい。

journald.conf
[Journal] 
...
SystemMaxUse=128M
...


journalctlのユースケース

とりあえずログが見たい

journalctl                 # lessにパイプ
journalctl -l --no-pager   # lessがいらないとき(-lをつけないと画面の右端でカットされる。)

最新のログが見たい

journalctl -e   # 最新のログ
journalctl -f   # Tailライク

種類のログが見たい

journalctl -k   # カーネルログ
journalctl -b   # ブートログ

レベルのログが見たい

journalctl -p err      # エラーだけ
journalctl -p warning  # 警告だけ

サービスのログが見たい

journalctl -u httpd   # httpdだけ
journalctl -u mariadb # mariadbだけ

期間のログが見たい

journalctl --since=today       # 今日から
journalctl --until=yesterday   # 昨日まで
journalctl --since="2020-05-01" --until="2020-05-02"  #2020-05-01 ~ 2020-05-02