Rsyslog は、 CentOSにデフォルトで存在する無料のオープンソースロギングユーティリティです。 8およびRHEL 8システム。 ログを一元化するための簡単で効果的な方法を提供します クライアントノードから単一の中央サーバーへ。ログの集中化は、2つの点で有益です。まず、システム管理者はすべてのクライアントシステムにログインしてログを確認しなくても、中央のポイントからリモートサーバーのすべてのログを表示できるため、ログの表示が簡素化されます。これは、監視する必要のあるサーバーが複数ある場合に非常に役立ちます。次に、リモートクライアントがクラッシュした場合でも、すべてのログが中央のrsyslogに保存されるため、ログが失われる心配はありません。サーバー 。 Rsyslogは、 UDPのみをサポートするsyslogに取って代わりました プロトコル。これは、両方の UDP のサポートなどの優れた機能を使用して、基本的なsyslogプロトコルを拡張します。 およびTCP ログの転送におけるプロトコル、拡張されたフィルタリング機能、および柔軟な構成オプション。そうは言っても、CentOS 8 /RHEL8システムでRsyslogサーバーを構成する方法を見てみましょう。
前提条件
一元化されたロギングプロセスをテストするために、次のラボセットアップを行います。
- Rsyslogサーバー CentOS 8最小IPアドレス:10.128.0.47
- クライアントシステム RHEL 8最小IPアドレス:10.128.0.48
上記の設定から、Rsyslogサーバーを設定し、後で監視のためにログをRsyslogサーバーに送信するようにクライアントシステムを構成する方法を示します。
始めましょう!
CentOS8でのRsyslogサーバーの構成
デフォルトでは、RsyslogはCentOS 8 /RHEL8サーバーにインストールされています。 Rsyslogのステータスを確認するには、SSH経由でログインし、次のコマンドを発行します。
$ systemctl status rsyslog
サンプル出力
何らかの理由でrsyslogが存在しない場合は、次のコマンドを使用してインストールできます。
$ sudo yum install rsyslog
次に、Rsyslog構成ファイルのいくつかの設定を変更する必要があります。構成ファイルを開きます。
$ sudo vim /etc/rsyslog.conf
以下に示す行をスクロールしてコメントを外し、UDPプロトコルを介してログを受信できるようにします
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
同様に、TCP rsyslog受信を有効にする場合は、次の行のコメントを解除します。
module(load="imtcp") # needs to be done just once input(type="imtcp" port="514")
構成ファイルを保存して終了します。
クライアントシステムからログを受信するには、ファイアウォールでRsyslogのデフォルトポート514を開く必要があります。これを実現するには、
を実行します# sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
次に、ファイアウォールをリロードして変更を保存します
# sudo firewall-cmd --reload
サンプル出力
次に、Rsyslogサーバーを再起動します
$ sudo systemctl restart rsyslog
起動時にRsyslogを有効にするには、コマンドの下で実行します
$ sudo systemctl enable rsyslog
Rsyslogサーバーがポート514でリッスンしていることを確認するには、次のようにnetstatコマンドを使用します。
$ sudo netstat -pnltu
サンプル出力
完全!クライアントシステムからログを受信するようにRsyslogサーバーを正常に構成しました。
ログメッセージをリアルタイムで表示するには、次のコマンドを実行します。
$ tail -f /var/log/messages
次に、クライアントシステムを構成しましょう。
RHEL8でのクライアントシステムの設定
Rsyslogサーバーと同様に、ログインして、次のコマンドを発行してrsyslogデーモンが実行されているかどうかを確認します。
$ sudo systemctl status rsyslog
サンプル出力
次に、rsyslog構成ファイルを開きます
$ sudo vim /etc/rsyslog.conf
ファイルの最後に、次の行を追加します
*.* @10.128.0.47:514 # Use @ for UDP protocol *.* @@10.128.0.47:514 # Use @@ for TCP protocol
構成ファイルを保存して終了します。 Rsyslogサーバーと同様に、ファイアウォールのデフォルトのRsyslogポートであるポート514を開きます
$ sudo firewall-cmd --add-port=514/tcp --zone=public --permanent
次に、ファイアウォールをリロードして変更を保存します
$ sudo firewall-cmd --reload
次に、rsyslogサービスを再起動します
$ sudo systemctl restart rsyslog
起動時にRsyslogを有効にするには、次のコマンドを実行します
$ sudo systemctl enable rsyslog
ロギング操作のテスト
Rsyslogサーバーとクライアントシステムのセットアップと構成が正常に完了したら、構成が意図したとおりに機能していることを確認します。
クライアントシステムで次のコマンドを発行します:
# logger "Hello guys! This is our first log"
次に、Rsyslogサーバーに移動し、以下のコマンドを実行して、ログメッセージをリアルタイムで確認します
# tail -f /var/log/messages
クライアントシステムで実行されたコマンドからの出力は、Rsyslogサーバーのログメッセージに登録され、Rsyslogサーバーがクライアントシステムからログを受信していることを示します。
そして、それだけです、みんな!クライアントシステムからログメッセージを受信するようにRsyslogサーバーを正常にセットアップしました。
また読む:Logrotateを使用してLinuxでログファイルをローテーションおよび圧縮する方法
また読む: CentOS 8 /RHEL8にRedisサーバーをインストールする方法