Version CentOS 7.2
— y2sunlight 2020-05-28
journald は CentOS7から標準的に提供されるログ管理のサービスです。正式名称は、systemd-journald.service です。RHEL7/CentOS7では、従来の rsyslogd も並行して稼働していますが、Fedora20では、もはや rsyslogd は動いておらず、システムログ管理は、journald に完全移行しています。journald によって以下のようなログが収集され Journal(データベース) として保存されています。
これらのログを表示するには journalctl コマンドが利用されます。サーバーで発生する障害の調査にはログの存在は欠かせません。以下では実際によく使う journalctl の利用例を紹介します。
関連記事
リンク
OSインストール直後は、Journalは、OSをリブートすると消えてしまいます。ログを蓄積したい場合は、ログの永続化が必要になります。以下はその簡単な設定例です。詳しくは上記のリンクを参照して下さい。
cd /var/log mkdir journal systemctl restart systemd-journald
この設定は /etc/systemd/journald.conf
で以下の変更をするのと同じです。
[Journal] ... Storage=persistent ...
Journalのサイズは、保存用ディレクトリーの全容量に対して 10% 以上になるか、該当ディレクトリーのファイルシステムの空き容量が 15% 以下になると、古いエントリーから順に削除されていきます。明示的にサイズを指定したい場合は、/etc/systemd/journald.conf
で以下の変更を行って下さい。
[Journal] ... SystemMaxUse=128M ...
とりあえずログが見たい
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