一元化された Rsyslog サーバーの必要性
すべての *NIX システムには、ストレージ デバイスの任意の場所 (通常はデフォルトでローカル ディスク パーティション) に書き込むことができるテキスト ログを生成する、何らかのログ機能があります。現在、これは不可欠ですが、次のような問題が発生する可能性もあります:
- ログを保存するには、ローカル サーバーに十分なストレージ容量が必要です。
- 大きくなりすぎないようにローテーションを行う必要があります。
- ログにクレジット カード番号などの機密情報が含まれている場合は、できればローカル サーバーではなく、安全な場所に保存する必要があります。
- サーバーに災害が発生し、データを回復できない場合、ログが失われる可能性があります。
このような問題をすべて回避するために、集中型の syslog サーバーを使用できます。集中型 syslog サーバーは、セキュリティ、適切なストレージ、集中型バックアップ機能などを提供します。
この投稿では、TCP と UDP を使用してログ ファイルをリモート サーバーに送信するように Rsyslog を構成する手順の概要を説明しています。
一元化された Rsyslog サーバーの構成
1. /etc/rsyslog.conf を編集し、次の行のコメントを外します:
TCP の場合;
# vi /etc/rsyslog.conf $ModLoad imtcp $InputTCPServerRun 514
UDP の場合;
# vi /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514注意 :TCP と UDP の両方のモードを使用して、ログをリモート rsyslog サーバーに転送できます。ただし、パフォーマンスの点でクライアントサーバーで非常に簡単であるため、UDP を使用することをお勧めします。 UDP を使用する唯一の欠点は、サーバーがビジー状態で UDP パケットを受信できない場合に、一部のログ メッセージが失われる可能性があることです。ログが重要な場合は TCP を使用してください。それ以外の場合は、UDP を使用してください。
2. ファイルを保存し、rsyslog サービスを再起動します。
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Rsyslog クライアントの構成
1. クライアント サーバーで /etc/rsyslog.conf を編集し、以下の行を追加します。リモート ホストの先頭に単一の @ を追加すると、 記号、UDP を使用しています。 TCP を使用するには、@@ を使用します
UDP の場合
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @remote-host:514 *.* @x.x.x.x:514
TCP の場合
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.* @@x.x.x.x:514
ここで、x.x.x.x を集中型 rsyslog サーバーに置き換えます。すべての重大度 (*.*) を含むログを送信したくない場合は、最後の行を次のように編集できます。
*.info @x.x.x.x:514
2. ファイルを保存し、rsyslog サービスを再起動します。
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
構成の確認
「ロガー」を使用できます 」コマンドを使用して、ログ メッセージを手動で生成し、リモート syslog サーバーが正しく受信するかどうかを確認します。
クライアント サーバー上:
# logger "Test message from the system `hostname`"
集中型 rsyslog サーバー:
# tail /var/log/messages June 15 12:32:01 geeklab root: Test message from the system geeklab
非標準ポートでの Rsyslog の実行
デフォルトのポート 514 以外のポートで rsyslog を実行する場合は、selinux に追加の変更を加える必要があります。 rsyslog の現在の SELinux ポート設定を表示するには:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514
UDP ポート 541 を SELinux に追加するには、次のコマンドを使用します:
# semanage port -a -t syslogd_port_t -p udp 541
ポートが SELinux 設定に追加されているかどうかを確認します:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 541, 514, 601, 20514