手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 rsyslog ログサーバー構築

Overview

CentOS 6 におけるログサーバー (rsyslog) の構築手順です。

/etc/rsyslog.conf

/etc/rsyslog.conf を編集します。変更箇所のみ記載しています。

[root@centos-6 ~]# cp /etc/rsyslog.conf /etc/rsyslog.conf.orig
[root@centos-6 ~]# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
*.info;mail.none;authpriv.none;cron.none;local4.none;local6.none /var/log/messages

$ModLoad imudp

imudp モジュールをロードする指示です。imudp は rsyslog で UDP プロトコルを使用してのメッセージ受信を可能にするモジュールです。

$UDPServerRun 514

UDP サーバーをポート 514 で実行することを指定しています。これにより、rsyslog は UDP プロトコルを使用して 514 ポートでのメッセージを受信するようになります

*.info;mail.none;authpriv.none;cron.none;local4.none;local6.none /var/log/messages

以下のルールに基づき、/var/log/messages ファイルに記録されます。この設定は、[facility].[priority]; の書式で記載します。例えば、priority に info を指定する場合、info 以上のログが対象となります。また、none を指定すると全てのログが対象になりません。

項目facilitypriority説明
*.info*infoデフォルト値です。* を指定すると、全てのファシリティが対象となります。
mail.nonemailnoneデフォルト値です。
authpriv.noneauthprivnoneデフォルト値です。
cron.nonecronnoneデフォルト値です。
local4.nonelocal4nonelocal4 は OpenLDAP で使用しています。OpenLDAP のログは別ファイルに記録するため、none を指定しています。
local6.nonelocal6nonelocal6 は ISC DHCP で使用しています。ISC DHCP のログは別ファイルに記録するため、none を指定しています。
/var/log/messages のログ設定

/etc/rsyslog.d/ldap.conf

OpenLDAP のログを /var/log/ldap.log に出力する設定です。

[root@centos-6 ~]# echo "local4.* /var/log/ldap.log" > /etc/rsyslog.d/ldap.conf

/etc/rsyslog.d/dhcp.conf

ISC DHCP のログを /var/log/dhcp.log に出力する設定です。

[root@centos-6 ~]# echo "local6.* /var/log/dhcp.log" > /etc/rsyslog.d/dhcp.conf

/etc/rsyslog.d/ommail.conf

この設定により、’authentication failures’ という文字列がログメッセージに含まれている場合、指定された SMTP サーバーを使用して root 宛に通知メールが送信されます。

[root@centos-6 ~]# vim /etc/rsyslog.d/ommail.conf
$ModLoad ommail
$template mailsubject,"error on %hostname%"
$template mailbody,"rsyslog alert\r\nmsg='%msg%'"
$ActionMailSMTPServer localhost
$ActionMailFrom root
$ActionMailTo root
$ActionMailSubject mailsubject
if $msg contains 'authentication failures' then :ommail:;mailbody

$ModLoad ommail

ommail モジュールをロードする指示です。ommail は rsyslog でメール通知を行うための出力モジュールです。

$template mailsubject,"error on %hostname%"

メールの件名を定義するテンプレートです。%hostname% はシステムのホスト名に置き換えられます。

$template mailbody,"rsyslog alert\r\nmsg='%msg%'"

メールの本文を定義するテンプレートです。%msg% はログメッセージに置き換えられます。\r\n は改行を表します。

$ActionMailSMTPServer localhost

メールを送信する SMTP サーバーを localhost に設定しています。

$ActionMailFrom root

通知メールの送信者アドレスを root に設定しています。

$ActionMailTo root

通知メールの宛先アドレスを root に設定しています。

$ActionMailSubject mailsubject

通知メールの件名を先ほど定義した mailsubject テンプレートに設定します。

if $msg contains 'authentication failures' then :ommail:;mailbody

ログメッセージに ‘authentication failures’ という文字列が含まれている場合に、メール通知を行うルールです。

  • :ommail:: メール通知を行うアクションを指定します。
  • ;mailbody: 通知メールの本文として先ほど定義した mailbody テンプレートを使用します。

設定の有効化

rsyslog を再起動し、設定を有効化します。

[root@centos-6 ~]# service rsyslog restart

syslog クライアント

他のホストからログサーバーにログを転送するには、以下のように設定します。

[root@centos-6 ~]# echo "authpriv.* @syslog.si1230.com:514" > /etc/rsyslog.d/remote.conf
[root@centos-6 ~]# service rsyslog restart

この設定では、syslog.si1230.com が前述のログサーバーの FQDN です。ログサーバーに対して authpriv facility のログのみを転送しています。ポート番号の指定は 514 がデフォルト値なので必須ではありませんが、この例では明示的に指定しています。

CentOS 6 rsyslog ログサーバー構築

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る