rsyslog

2008/7/25更新

対応バージョン: 3.18.1

rsyslog.confには多くの設定項目があるが、ここでは主なものを説明する。

その他については公式サイトを参照のこと。

タイムスタンプフォーマット

ログファイルに記録されるタイムスタンプのフォーマットを指定する。

フォーマット指定

$ActionFileDefaultTemplate <フォーマット>
<フォーマット>
RSYSLOG_TraditionalFileFormat (デフォルト)
Mon DD hh:mm:ss

例)

Jul 22 20:29:41 host1 kernel: imklog 3.16.1, log source = /proc/kmsg started.
Jul 22 20:29:41 host1 rsyslogd: [origin software="rsyslogd" swVersion="3.16.1" x-pid="29223" x-info="http://www.rsyslog.com"] restart
RSYSLOG_FileFormat
YYYY-MM-DDThh:mm:ss+zz:zz

例)

2008-07-22T20:31:52+09:00 host1 kernel: imklog 3.16.1, log source = /proc/kmsg started.
2008-07-22T20:31:52.524907+09:00 host1 rsyslogd: [origin software="rsyslogd" swVersion="3.16.1" x-pid="29386" x-info="http://www.rsyslog.com"] restart
RSYSLOG_TraditionalForwardFormat
Mon DD hh:mm:ss

1メッセージにつき「」に続いてメッセージを出力。改行コードがないので次のメッセージも同じ行に出力される。

例)

<6>Jul 22 20:53:27 host1 kernel: imklog 3.16.1, log source = /proc/kmsg started.<46>Jul 22 20:53:27 host1 rsyslogd: [origin software="rsyslogd" swVersion="3.16.1" x-pid="30770" x-info="http://www.rsyslog.com"] restart
RSYSLOG_ForwardFormat
YYYY-MM-DDThh:mm:ss+zz:zz

メッセージの出力方式はRSYSLOG_TraditionalForwardFormatと同様。

例)

<6>2008-07-22T20:58:26+09:00 host1 kernel: imklog 3.16.1, log source = /proc/kmsg started.<46>2008-07-22T20:58:26.304455+09:00 host1 rsyslogd: [origin software="rsyslogd" swVersion="3.16.1" x-pid="31142" x-info="http://www.rsyslog.com"] restart
RSYSLOG_SyslogProtocol23Format
v YYYY-MM-DDThh:mm:ss+zz:zz

IETF syslog Working Groupのdraft-ietf-syslog-sign-23.txt準拠。

例)

<6>1 2008-07-22T21:08:37+09:00 host1 kernel - - -  imklog 3.16.1, log source = /proc/kmsg started.
<46>1 2008-07-22T21:08:37.746155+09:00 host1 rsyslogd - - -  [origin software="rsyslogd" swVersion="3.16.1" x-pid="31840" x-info="http://www.rsyslog.com"] restart

リモート転送時の設定

ログをリモートホストにTCP転送する際に転送先ホストがダウンしていた場合のローカル側のスプール設定を行う。

スプールディレクトリ

$WorkDirectory <ディレクトリ>

キューファイルのプレフィックス

$ActionQueueFileName <プレフィックス>

例)

$ActionQueueFileName queue

上記の場合、実際のファイル名は「queue.00000001」「queue.00000002」...となる。

スプールディレクトリの最大ディスク容量

1g,1mなど、容量を表す単位とともに指定する。デフォルトは10m。0で無制限。

$ActionQueueMaxDiskSpace <サイズ>

シャットダウン時にメッセージをディスクに保存するか

デフォルトはoff。

$ActionQueueSaveOnShutdown <on|off>

キューの管理方式

キューの管理方式を以下の種類から指定する。

$ActionQueueType <FixedArray|LinkedList|Direct|Disk>
FixedArray

FixedArray方式でキューを管理する。あらかじめポインタの配列を確保するのでメモリは使用するが、CPUへの負荷が低いのでログが大量に発生しない場合は良好なパフォーマンスが得られる。

LinkedList

LinkedList方式でキューを管理する。FixedArray方式と比べるとCPUへの負荷が高いものの大量のキューが発生する場合にはメモリの節約になる。

Direct

キューをスプールディレクトリに保存せずにすぐにリモートホストに転送する(デフォルト)。

Disk

キューをいったんスプールディレクトリに保存した後に順次リモートホストに転送する。

リモートホストがダウンしている場合のリトライ回数

デフォルトは0。-1でリトライしない。

$ActionResumeRetryCount <回数>

モジュール組み込み

必要な機能をモジュールとして組み込む。

モジュール指定

$ModLoad <モジュール>
<モジュール>
imuxsock.so

UNIXソケットを使用した通常のローカルログを出力可能にする。

(*) loggerコマンドでログを出力する場合もこのモジュールを必要とする。

imklog.so

カーネルログを出力可能にする。

immark.so

「--MARK--」を出力可能にする。

imtcp.so

リモートからのTCP接続を受け付ける。

待ち受けポートと一緒に指定する。

例)

$ModLoad imtcp.so 
$InputTCPServerRun 514
imudp.so

リモートからのUDP接続を受け付ける。

待ち受けポートと一緒に指定する。

例)

$ModLoad imudp.so
$UDPServerRun 514