0.本稿について
- 環境:本稿ではAlmaLinux9.xをMinimalで最小インストールした環境を使用しています。
1.はじめに
Linux のカーネルや各種アプリケーションは、基本的にログを 「排出」 する仕組みになっています。しかし、rsyslog などのログ収集サービスが動作していないと、それらのログを 「保存」 することができません。
例えば、AlmaLinux における SSH のログは通常 /var/log/secure
に 「保存」 されますが、rsyslog
が動作していない場合、ログは適切に記録されません。そのため、sshd が動作していて、ログの保存先が /var/log/secure
に設定されているにもかかわらず、ログファイルが見当たらないという状況が発生します。
Linux(および各種アプリケーション)が排出するログは、そのままでは 「垂れ流し状態」 になっており、ログ収集サービスがそれらのログを収集し、適切なログファイルに振り分けることで初めて保存されます。ログが垂れ流されるこの 「受け皿」 の役割を果たすのが syslog ソケット
と呼ばれています。
そのため、rsyslog がインストールされていない場合、以下のようにログファイルが存在しないと表示されることがあります。
[yoyo@dev1 ~]$ cat /var/log/secure
cat: /var/log/secure: そのようなファイルやディレクトリはありません
本稿では、ログ収集サービスが入っていない環境でrsyslog
をインストールし、ログの一つである/var/log/secure
を確認してみます。
本稿ではログ収集サービスが入っていない状態からスタートします。実際に本稿での作業をしたい場合は、お使いの環境で競合するログ収集サービスが入っていない事などを確認したうえで作業を行う必要があります。
2.手順
まずはrsyslogをインストールします。
sudo dnf install rsyslog
実行例
[yoyo@dev1 ~]$ sudo dnf install rsyslog
メタデータの期限切れの最終確認: 1:48:27 前の 2025年02月11日 19時45分32秒 に実施しました。
依存関係が解決しました。
====================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
====================================================================================================================
インストール:
rsyslog x86_64 8.2310.0-4.el9 appstream 781 k
依存関係のインストール:
libestr x86_64 0.1.11-4.el9 appstream 25 k
libfastjson x86_64 0.99.9-5.el9 appstream 37 k
弱い依存関係のインストール:
rsyslog-logrotate x86_64 8.2310.0-4.el9 appstream 11 k
トランザクションの概要
====================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 854 k
インストール後のサイズ: 2.7 M
これでよろしいですか? [y/N]: y ←yを入力してEnter
パッケージのダウンロード:
(1/4): libestr-0.1.11-4.el9.x86_64.rpm 2.5 kB/s | 25 kB 00:10
(2/4): rsyslog-logrotate-8.2310.0-4.el9.x86_64.rpm 672 kB/s | 11 kB 00:00
(3/4): libfastjson-0.99.9-5.el9.x86_64.rpm 3.6 kB/s | 37 kB 00:10
(4/4): rsyslog-8.2310.0-4.el9.x86_64.rpm 74 kB/s | 781 kB 00:10
--------------------------------------------------------------------------------------------------------------------
合計 76 kB/s | 854 kB 00:11
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : libfastjson-0.99.9-5.el9.x86_64 1/4
インストール中 : libestr-0.1.11-4.el9.x86_64 2/4
インストール中 : rsyslog-logrotate-8.2310.0-4.el9.x86_64 3/4
インストール中 : rsyslog-8.2310.0-4.el9.x86_64 4/4
scriptletの実行中: rsyslog-8.2310.0-4.el9.x86_64 4/4
Created symlink /etc/systemd/system/multi-user.target.wants/rsyslog.service → /usr/lib/systemd/system/rsyslog.service.
検証中 : libestr-0.1.11-4.el9.x86_64 1/4
検証中 : libfastjson-0.99.9-5.el9.x86_64 2/4
検証中 : rsyslog-8.2310.0-4.el9.x86_64 3/4
検証中 : rsyslog-logrotate-8.2310.0-4.el9.x86_64 4/4
インストール済み:
libestr-0.1.11-4.el9.x86_64 libfastjson-0.99.9-5.el9.x86_64 rsyslog-8.2310.0-4.el9.x86_64
rsyslog-logrotate-8.2310.0-4.el9.x86_64
完了しました!
インストールが完了しました。ただ、このままだとまだrsyslogは動作をしていません。念のため、activeかどうかを確認しておきます。
systemctl is-active rsyslog
inactive
systemctl status rsyslog
を実行すると分かりますが、インストール後は自動でenabledとなっているため、startするか、Almalinuxの再起動で動きだします。
今回は再起動はぜすに、手動で動かします。
sudo systemctl start rsyslog
もう一度確認してみます。
systemctl is-active rsyslog
active
ログアウト・ログインを試してから再度/var/log/secure
を開いてみます。
ここでリログを行うのは、sshのログを出させるためです。
sudo cat /var/log/secure
ログが表示されれば成功です。