25.6. ロギングサーバーでの rsyslog の設定
rsyslog サービスは、ロギングサーバーを実行する機能と、個別のシステムがログファイルをロギングサーバーに送信するように設定する機能の両方を提供します。クライアントの rsyslog 設定の詳細は、例25.12「サーバーへのログメッセージの確実な転送」 を参照してください。
rsyslog サービスは、ロギングサーバーとして使用するシステムと、そのシステムにログを送信するように設定する全システムにインストールする必要があります。rsyslog は、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 にデフォルトでインストールされます。必要な場合は、確実にインストールするために root で以下のコマンドを入力します。
yum install rsyslog
~]# yum install rsyslog
syslog トラフィックのデフォルトのプロトコルおよびポートは、
/etc/services ファイルに記載されている UDP および 514 です。ただし、rsyslog はデフォルトで、ポート 514 で TCP を使用するように設定されています。設定ファイル /etc/rsyslog.conf では、TCP は @@ で示され ます。
例では他のポートが使用されることがありますが、SELinux には、デフォルトで以下のポートでの送受信のみを許可するように設定されています。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
semanage ユーティリティーは、policycoreutils-python パッケージの一部として提供されます。必要な場合は、以下のようにパッケージをインストールします。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
semanage port -l | grep syslog
~]# semanage port -l | grep syslog
syslogd_port_t tcp 6514, 601
syslogd_port_t udp 514, 6514, 601
yum install policycoreutils-python
~]# yum install policycoreutils-python
さらに、デフォルトでは
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
rsyslog の SELinux タイプであるrsyslogd_t は、SELinux タイプが rsh_port_t のリモートシェル(rsh)ポートでの送受信を許可するよう設定されます(デフォルトではポート 514 の TCP に設定されます)。したがって、semanage を使用してポート 514 で TCP を明示的に許可する必要はありません。たとえば、SELinux がポート 514 でそのTCPを許可するよう設定されているかを確認するには、以下のコマンドを入力します。
semanage port -l | grep 514
~]# semanage port -l | grep 514
output omitted
rsh_port_t tcp 514
syslogd_port_t tcp 6514, 601
syslogd_port_t udp 514, 6514, 601
SELinux の詳細は、『 『Red Hat Enterprise Linux 6 SELinux ユーザーガイド』』 を参照してください。
ロギングサーバーとして使用するシステムで以下の手順を実行します。これらの手順はすべて
root ユーザーで実行する必要があります。
手順25.5 ポートで rsyslog トラフィックを許可する SELinux の設定
rsyslog トラフィックに新しいポートを使用する必要がある場合は、ロギングサーバーとクライアントでこの手順を実行します。たとえば、ポート 10514 で TCP トラフィックを送受信するには、以下の手順を実行します。
semanage port -a -t syslogd_port_t -p tcp 10514
~]# semanage port -a -t syslogd_port_t -p tcp 10514Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のコマンドを入力して SELinux ポートを確認します。
semanage port -l | grep syslog
~]# semanage port -l | grep syslogCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しいポートがすでに
/etc/rsyslog.confに設定されている場合は、rsyslogを再起動して変更を反映します。service rsyslog restart
~]# service rsyslog restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslogが現在リッスンしているポートを確認します。netstat -tnlp | grep rsyslog
~]# netstat -tnlp | grep rsyslog tcp 0 0 0.0.0.0:10514 0.0.0.0:* LISTEN 2528/rsyslogd tcp 0 0 :::10514 :::* LISTEN 2528/rsyslogdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
semanage port コマンドの詳細は、man ページの semanage-port(8) を参照してください。
手順25.6 iptables ファイアウォールの設定
iptables ファイアウォールが、受信 rsyslog トラフィックを許可するように設定します。たとえば、ポート 10514 で TCP トラフィックを許可するには、以下の手順を実行します。
- テキストエディターで
/etc/sysconfig/iptablesファイルを開きます。 - ポート
10514のTCPトラフィックを許可するINPUTルールを追加します。新しいルールは、REJECTトラフィックに REJECT ルールの前に表示される必要があります。-A INPUT -m state --state NEW -m tcp -p tcp --dport 10514 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10514 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/iptablesファイルへの変更を保存します。- ファイアウォールの変更を有効にするために
iptablesサービスを再起動します。service iptables restart
~]# service iptables restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順25.7 rsyslog で、リモートログメッセージを受信してソートするように設定
- テキストエディターで
/etc/rsyslog.confファイルを開き、以下の手順を実行します。- モジュールセクションと
Provides UDP syslog receptionセクションの間に以下の行を追加します。Define templates before the rules that use them
# Define templates before the rules that use them ### Per-Host Templates for Remote Systems ### $template TmplAuthpriv, "/var/log/remote/auth/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" $template TmplMsg, "/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - デフォルトの
Provides TCP syslog receptionセクションを、以下の内容に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/rsyslog.confファイルへの変更を保存します。 rsyslogサービスは、ロギングサーバーと、そのサーバーにログ記録を試みるシステムの両方で実行する必要があります。- service コマンドを使用して
rsyslogサービスを起動します。service rsyslog start
~]# service rsyslog startCopy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslogサービスが今後自動的に起動されるようにするには、root で以下のコマンドを入力します。chkconfig rsyslog on
~]# chkconfig rsyslog onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
環境内の他のシステムからログファイルを受け取り、保存するように、ログサーバーが設定されています。
25.6.1. ロギングサーバーでの新規テンプレート構文の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
rsyslog 7 にはテンプレートスタイルが多数あります。文字列テンプレートは従来の形式に最もよく似ています。文字列形式を使用して上記の例からテンプレートを生成する場合は、以下のようになります。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
また、これらのテンプレートは、以下のようにリスト形式で記述することもできます。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
このテンプレートテキスト形式は、rsyslog の初心者にとって理解しやすいかもしれません。したがって、要件が変更したら簡単に変更できます。
新規構文への変更を完了するには、モジュールロードコマンドを再作成し、ルールセットを追加して、プロトコル、ポート、およびルールセットにルールセットをバインドする必要があります。