GNU/Linux >> Linux の 問題 >  >> Cent OS

Rsyslog :CentOS/RHEL 6,7 でログ ファイルをリモート サーバーに送信する方法

一元化された 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


Cent OS
  1. CentOS 8 /RHEL8にPuppetをインストールする方法

  2. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  3. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  1. CentOS 7 /RHEL7にPuppet6.xをインストールする方法

  2. CentOS / RHEL 7 :GUI のインストール方法

  3. CentOS/RHEL 6,7 の Rsyslog でデフォルトのログ ディレクトリ (/var/log) を変更する方法

  1. CentOS/RHEL 6,7 で監査ログをリモート Rsyslog サーバーに送信する方法

  2. CentOS/RHEL で rsyslog を使用してリモート ロギングを構成する

  3. CentOS/RHEL で TLS および非 TLS を受け入れるようにリモート Rsyslog を構成する方法