はじめに
某ベンダで、クラウドの人材育成企画と研修トレーニングのデリバリを担当しています。
先日、研修準備のためラボ環境を評価していたのですが、Amazon Linux 2023がシステムログを出力しないトラブルに遭遇。ちょっと焦る事態に発展しちゃいました。
結論から言うと、Ammazon Linux2から仕様変更に伴い、ログの出力が変わったんですね。
Amazon Linux 2023のユーザーガイドの情報はこちら。
systemd ジャーナルの置き換え rsyslog
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/journald.html
Red Hat Enterprise Linuxはどうなんだっけ?と思い調べるとRHEL7からjournaldが導入済み、現状のバージョンは9なので、数年前から変更されてたんですね、、、知りませんでした。
Red Hat Enterprise Linux 7の情報はこちら。
第23章 ログファイルの表示と管理
ログファイルは、systemd のコンポーネントである journald デーモンで制御することもできます。journald デーモンは全サービスの標準出力および標準エラー出力に書き込まれたメッセージに加えて、Syslog メッセージ、カーネルログメッセージ、初期 RAM ディスクおよび初期起動メッセージを取り込みます。構造化およびインデックス化されたバイナリーファイルであるネイティブジャーナルファイル形式は、検索を改善します。また、より高速に操作を提供するため、タイムスタンプやユーザー ID などのメタデータ情報も格納します。journald が生成するログファイルはデフォルトで永続的ではなく、ログファイルは /run/log/journal/ ディレクトリー内のメモリーまたはリングバッファーにのみ保存されます。ログに記録されるデータの量は、容量制限に達すると、最も古いエントリーが削除されます。ただし、この設定は変更できます。「永続的ストレージの有効化」 を参照してください。ジャーナルの詳細情報は、「Journal の使用」 を参照してください。
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-viewing_and_managing_log_files#ch-Viewing_and_Managing_Log_Files
実機で確認してみる
実際にEC2を立ち上げて/var/logを見てみるとsystemd-journal
を発見。
# ls -l /var/log/
total 1412
lrwxrwxrwx. 1 root root 39 Oct 10 21:22 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x. 3 root root 17 Oct 25 02:50 amazon
drwx------. 2 root root 23 Oct 25 02:50 audit
-rw-rw----. 1 root utmp 0 Oct 10 21:22 btmp
drwxr-x---. 2 chrony chrony 72 Oct 25 02:50 chrony
-rw-r-----. 1 root adm 3678 Oct 25 02:50 cloud-init-output.log
-rw-r-----. 1 root adm 148748 Oct 25 02:50 cloud-init.log
-rw-r--r--. 1 root root 871376 Oct 25 02:50 dnf.librepo.log
-rw-r--r--. 1 root root 267986 Oct 25 02:50 dnf.log
-rw-r--r--. 1 root root 83528 Oct 25 02:50 dnf.rpm.log
-rw-r--r--. 1 root root 2359 Oct 25 02:50 hawkey.log
drwxr-sr-x+ 3 root systemd-journal 46 Oct 25 02:50 journal
-rw-rw-r--. 1 root utmp 292292 Oct 25 02:51 lastlog
drwx------. 2 root root 6 Oct 10 21:22 private
drwxr-xr-x. 2 root root 18 Oct 25 02:50 sa
drwxr-x---. 2 root root 6 Jun 12 22:04 sssd
-rw-------. 1 root root 0 Oct 10 21:22 tallylog
-rw-rw-r--. 1 root utmp 2688 Oct 25 02:50 wtmp
journalctl
コマンドでシステム情報がマイクロ秒単位で確認できます。地味に感動。
# journalctl -o short-precise
# journalctl --system
/var/log/message
が恋しい場合は、rsyslog
パッケージを追加。
# yum install rsyslog
/var/log/message
が復活。
# ls -lh /var/log/
total 1.6M
lrwxrwxrwx. 1 root root 39 Oct 10 21:22 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x. 3 root root 17 Oct 25 02:50 amazon
drwx------. 2 root root 23 Oct 25 02:50 audit
-rw-rw----. 1 root utmp 0 Oct 10 21:22 btmp
drwxr-x---. 2 chrony chrony 72 Oct 25 02:50 chrony
-rw-r-----. 1 root adm 6.1K Oct 25 03:00 cloud-init-output.log
-rw-r-----. 1 root adm 260K Oct 25 03:00 cloud-init.log
-rw-r--r--. 1 root root 854K Oct 25 03:04 dnf.librepo.log
-rw-r--r--. 1 root root 272K Oct 25 03:04 dnf.log
-rw-r--r--. 1 root root 83K Oct 25 03:04 dnf.rpm.log
-rw-r--r--. 1 root root 2.6K Oct 25 03:04 hawkey.log
drwxr-sr-x+ 3 root systemd-journal 46 Oct 25 02:50 journal
-rw-rw-r--. 1 root utmp 286K Oct 25 03:03 lastlog
-rw-------. 1 root root 0 Oct 25 03:04 maillog
-rw-------. 1 root root 0 Oct 25 03:04 messages
おわりに
研修の演習じゃなくて良かったな〜と思いながら、ログ機能の進化に感動。
Linuxも誕生から早30年以上、まだまだ進化の過程ですね〜、当方もまだまだ修行中です。