すべてのシステム メッセージとカーネル メッセージが rsyslogd に渡されます。ログ メッセージを受信するたびに、Rsyslog は構成ファイル /etc/rsyslog.conf を調べます。 そのメッセージの処理方法を決定します。 Rsyslog は、構成ファイルを調べて、そのメッセージに一致するすべてのルール ステートメントを探し、各ルール ステートメントの指示に従ってメッセージを処理します。メッセージに一致するルール ステートメントがない場合、Rsyslog はそのメッセージを破棄します。ルール ステートメントは次の 2 つのことを指定します。
1.一致するメッセージ (セレクター)、および
2.一致したメッセージをどうするか (アクション)。
セレクター
一致するメッセージは、ファシリティと優先度に一致するセレクターによって指定されますが、一致したメッセージに適用するアクションはアクション フィールドによって指定されます。たとえば、次の構成行は Rsyslog にアクション /var/log/kernlog を kern の機能と debug のレベルですべてのメッセージに適用するように指示します:
# cat /etc/rsyslog.conf kern.debug /var/log/kernlog
セレクターの優先順位ステートメントは階層的です。 Rsyslog は、指定された優先度以上のすべてのメッセージに一致します。セレクター kern.debug は、優先度 debug 以上のカーネルによって生成されたすべてのメッセージに一致します。 debug は可能な限り低い優先度であるため、セレクタ kern.debug は kern 機能を持つすべてのメッセージに一致します。さらに、アスタリスクをワイルドカードとして使用してすべての優先順位を表すことができるため、kern.* はカーネルによって生成されたすべてのメッセージにも一致します。
優先度フィールドとは異なり、施設フィールドは階層的ではありません。ただし、異なるファシリティからの複数のメッセージを一致させることは可能です。複数のセレクターをセミコロンで区切って 1 行にリストできます。これは、同じアクションを複数のメッセージに適用する必要がある場合に役立ちます。同様に、アスタリスク ワイルドカードを使用してすべてのファシリティを指定でき、さまざまなメッセージにアクションを適用する別の方法を提供します。
syslog の機能と優先順位
この機能は、メッセージを生成しているプログラムのタイプを指定するために使用されます。 Syslog デーモンは、さまざまなソースからのメッセージを異なる方法で処理するように構成できます。この表は、標準で定義された機能と、その使用目的の簡単な説明を示しています:
施設 | 説明 |
---|---|
auth/authpriv | セキュリティ/認証メッセージ |
クローン | crond および atd デーモン メッセージ |
デーモン | その他のシステム デーモン |
カーン | カーネル メッセージ |
local0 – local7 | ローカル使用のために予約済み |
lpr | ライン プリンター サブシステム |
メール | メール サブシステム |
ニュース | USENET ニュース サブシステム |
syslog | システム ログ デーモンによって内部的に生成されたメッセージ |
ユーザー | 一般的なユーザー レベルのメッセージ |
uucp | UUCP サブシステム |
メッセージの優先度またはレベルは、メッセージの重要性を判断するためのものです。この表は、標準の優先度レベルとその意味の簡単な説明を示しています:
優先度 | 説明 |
---|---|
出現 | システムが使用できません |
アラート | ただちに行動を起こす必要があります |
クリティカル | 危機的状況 |
エラー | エラー状態 |
警告 | 警告条件 |
お知らせ | 正常だが重大な状態 |
情報 | 情報メッセージ |
デバッグ | メッセージのデバッグ |
アクション
多くのアクションが可能ですが、ルールに含めることができるのは 1 つだけです:
- アクション フィールドにファイル名をリストして、選択したメッセージを書き込むファイルの場所を指定できます。これらのファイルは、通常はテキスト ファイルですが、端末やプリンターなどのデバイス ファイルでもかまいません。
- ユーザー名も指定できます。 Rsyslog がメッセージを処理するときに指定されたユーザーがシステムにログインしている場合、メッセージはそのユーザーのすべての端末に出力されます。
- アクションのアスタリスクは、ログインしているすべてのユーザーにメッセージを書き込むように Rsyslog に指示します (すべてのアクティブな端末に送信されます)。
- リモート ホストにメッセージを送信できます。アクション @host は、Rsyslog にメッセージをマシン ホストに転送するように指示します。メッセージは、そのホストの Syslog デーモンによって再度処理されます。
デフォルトの /etc/rsyslog.conf ファイル
以下は、CentOS 6 のデフォルトの /etc/rsyslog.conf 構成ファイルです。
# cat /etc/rsyslog.conf # rsyslog v5 configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html #### MODULES #### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) #$ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514 # Provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514 #### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # File syncing capability is disabled by default. This feature is usually not required, # not useful and an extreme performance hit #$ActionFileEnableSync on # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log # ### begin forwarding rule ### # The statement between the begin ... end define a SINGLE forwarding # rule. They belong together, do NOT split them. If you create multiple # forwarding rules, duplicate the whole block! # Remote Logging (we use TCP for reliable delivery) # # An on-disk queue is created for this action. If the remote host is # down, messages are spooled to disk and sent when it is up again. #$WorkDirectory /var/lib/rsyslog # where to place spool files #$ActionQueueFileName fwdRule1 # unique name prefix for spool files #$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown #$ActionQueueType LinkedList # run asynchronously #$ActionResumeRetryCount -1 # infinite retries if host is down # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 # ### end of the forwarding rule ###