このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

25.7 システム・ロギングについて

ログ・ファイルには、システム、カーネル、サービスおよびアプリケーションについてのメッセージが含まれます。 システム・ロギング・デーモンrsyslogdによって制御されるファイルのメイン構成ファイルは/etc/rsyslog.confで、グローバル・ディレクティブ、モジュール・ディレクティブおよびルールが含まれます。

グローバル・ディレクティブは、rsyslogdデーモンに適用する構成オプションを指定します。 すべての構成ディレクティブは、ドル記号($)で始まる必要があり、各行で1つのディレクティブのみ指定できます。 次の例では、rsyslogメッセージ・キューの最大サイズを指定します。

$MainMsgQueueSize 50000

使用可能な構成ディレクティブについては、ファイル/usr/share/doc/rsyslog-version-number/rsyslog_conf_global.htmlを参照してください。

rsyslogは、その機能を構成ディレクティブを提供するモジュールから動的にロードできるように設計されています。 モジュールをロードするには、次のディレクティブを指定します。

$ModLoad MODULE_name

モジュールには、次のメイン・カテゴリがあります。

  • 入力モジュールは、様々なソースからメッセージを収集します。 入力モジュール名は、常にim接頭辞で始まります(例: imfileおよびimrelp)。

  • フィルタ・モジュールを使用すると、rsyslogdは指定されたルールに基づいてメッセージをフィルタ処理できます。 フィルタ・モジュール名は、常にfm接頭辞で始まります。

  • ライブラリ・モジュールは、その他のロード可能なモジュールに機能を提供します。rsyslogdは、必要に応じてライブラリ・モジュールを自動的にロードします。 ライブラリ・モジュールのロードを構成することはできません。

  • 出力モジュールは、メッセージをデータベースまたはネットワーク内の他のサーバーに格納する機能、またはそれらを暗号化する機能を提供します。 出力モジュール名は、常にom接頭辞で始まります(例: omsnmpおよびomrelp)。

  • メッセージ変更モジュールは、rsyslogメッセージの内容を変更します。

  • パーサー・モジュールを使用すると、rsyslogdは受け取ったメッセージの内容を解析できます。 パーサー・モジュール名は、常にpm接頭辞で始まります。

  • 文字列ジェネレータ・モジュールは、メッセージの内容とrsyslogのテンプレート機能に基づいて文字列を生成します。 文字列ジェネレータ・モジュール名は、常にsm接頭辞で始まります。

入力モジュールはメッセージを受け取って、それらを1つ以上のパーサー・モジュールに渡します。 パーサー・モジュールはメモリー内にメッセージの表現を作成し、メッセージを変更して、内部表現を出力モジュールに渡します。出力モジュールも、メッセージを出力する前にコンテンツを変更できます。

使用できるモジュールの説明については、http://www.rsyslog.com/doc/rsyslog_conf_modules.htmlを参照してください。

rsyslogルールは、メッセージのサブセットを選択するフィルタ・パートと、選択したメッセージの処理を指定するアクション・パートで構成されます。 /etc/rsyslog.conf構成ファイルでルールを定義するには、1つ以上のタブまたはスペースで区切って、単一行でフィルタとアクションを指定します。

様々なプロパティに従ってメッセージをフィルタ処理するように、rsyslogを構成できます。 最も一般的に使用されるフィルタは次のとおりです。

  • 式ベースのフィルタ。rsyslogスクリプト言語で記述され、算術、ブールまたは文字列値に基づいてメッセージを選択します。

  • ファシリティ/優先度ベースのフィルタは、facility.priorityというフォームをとるファシリティと優先度の値に基づいてメッセージをフィルタ処理します。

  • プロパティ・ベースのフィルタは、timegeneratedまたはsyslogtagなどのプロパティによってメッセージをフィルタ処理します。

次の表に、ファシリティ/優先度ベースのフィルタに使用可能なファシリティ・キーワードを示します。

ファシリティ・キーワード

説明

authauthpriv

セキュリティ、認証または認可メッセージ。

cron

crondメッセージ。

daemon

crondおよびrsyslogd以外のシステム・デーモンからのメッセージ。

kern

カーネル・メッセージ。

lpr

ライン・プリンタ・サブシステム。

mail

メール・システム。

news

ネットワーク・ニュース・サブシステム。

syslog

rsyslogdによって内部で生成されたメッセージ。

user

ユーザー・レベル・メッセージ。

UUCP

UUCPサブシステム。

local0 - local7

ローカルで使用。

次の表に、ファシリティ/優先度ベースのフィルタに使用可能な優先度キーワードを、重要性の低い順に示します。

優先度キーワード

説明

debug

デバッグ・レベルのメッセージ。

info

情報メッセージ。

notice

正常だが重要な条件。

warning

警告の状態。

err

エラーの状態。

crit

クリティカルな状態。

alert

即時に措置が必要です。

emerg

システムは不安定です。

指定された優先度以上のすべてのメッセージが、指定されたアクションに基づいて記録されます。 アスタリスク(*)ワイルドカードは、すべてのファシリティまたは優先度を指定します。 1行に複数のファシリティおよび優先度の名前がある場合は、カンマ(,)で区切ります。 1行に複数のフィルタがある場合は、セミコロン(;)で区切ります。 ある優先度以外のすべてのメッセージを選択するには、その優先度の前に感嘆符(!)を付けます。

次に、ファシリティ/優先度ベースのフィルタの例を示します。

任意の優先度のすべてのカーネル・メッセージを選択します。

kern.*

crit以上の優先度を持つすべてのメール・メッセージを選択します。

mail.crit

warningまたはerr優先度を持つ、すべてのdaemonおよびkernメッセージを選択します。

daemon,kern.warning,err

infoまたはdebug以外の優先度を持つ、すべてのcronメッセージを選択します。

cron.!info,!debug

デフォルトでは、/etc/rsyslog.confには次のルールが含まれます。

# 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

次のエントリを各ログ・クライアントの/etc/rsyslog.confforwarding rulesセクションに追加することで、TCP経由でログを集中ログ・サーバーに送信できます。

*.*        @@logsvr:port

logsvrはログ・サーバーのドメイン名またはIPアドレスで、portはポート番号です(通常、514)。

ログ・サーバーで、次のエントリ/etc/rsyslog.confMODULESセクションに追加します。

$ModLoad imtcp
$InputTCPServerRun port

portは、ログ・クライアントで設定したポート番号に対応します。

収集ログのローテーションとアーカイブを管理するには、/etc/rsyslog.confRULESセクションで定義した各ログ・ファイルを参照するよう/etc/logrotate.d/syslogを編集します。 /etc/logrotate.confを編集して、ログのローテーション頻度およびアーカイブするログの過去のコピー数を構成できます。

ログ・サーバーでLogwatchを構成して、不審なメッセージのログを監視し、ログ・クライアントでLogwatchを無効にすることをお薦めします。 ただし、Logwatchを使用する場合は、次のエントリを各システムの/etc/rsyslog.confのGLOBAL DIRECTIVESセクションに追加して、高精度タイムスタンプを無効にします。

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

詳細は、logrotate(8)logwatch(8)rsyslogd(8)およびrsyslog.conf(5)の各マニュアル・ページ、/usr/share/doc/rsyslog-5.8.10ディレクトリにあるHTMLドキュメント、およびhttp://www.rsyslog.com/doc/manual.htmlにあるドキュメントを参照してください。