Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
23.6. Rsyslog モジュールの使用
モジューラーの設計上、rsyslog は、追加の機能が含まれる各種 モジュール を提供します。モジュールはサードパーティーによる書き込みが可能であることに注意してください。ほとんどのモジュールは、追加入力 (以下の Input Modules 参照) または出力 (以下の Output Modules 参照) を提供します。その他のモジュールは、各モジュールに固有の機能を提供します。モジュールは、モジュールの読み込み後に利用可能になる追加の設定ディレクティブを提供する場合があります。モジュールを読み込むには、以下の構文を使用します。
module(load=”MODULE”)
MODULE は希望のモジュールを表します。たとえば、rsyslog を有効にして標準テキストファイルを syslog メッセージに変換する Text File Input Module (imfile
) を読み込む場合は、/etc/rsyslog.conf
設定ファイルの以下の行を指定します。
module(load=”imfile”)
rsyslog は多くのモジュールを提供し、これらは以下の主なカテゴリーに分けられます。
-
入力モジュール: 入力モジュールは、さまざまなソースからメッセージを収集します。入力モジュールの名前は、常に
imfile
およびimjournal
のように接頭辞im
で始まります。 -
出力モジュール: 出力モジュールはメッセージをネットワーク上に送信したり、データベース内に保存したり、暗号化するなど、様々なターゲットにメッセージを発行するための機能を提供します。出力モジュールの名前は常に
omsnmp
やomrelp
などのように接頭辞om
で始まります。 -
パーサーモジュール: これらのモジュールは、カスタムの解析ルールの作成や不正な形式のメッセージ解析に使用されます。C プログラミング言語についてある程度の知識があれば、独自のメッセージパーサーが作成できます。パーサーモジュールの名前は常に
pmrfc5424
やpmrfc3164
のように接頭辞pm
で始まります。 -
メッセージ修正モジュール: メッセージ修正モジュールは、syslog メッセージの内容を変更します。このモジュールの名前は、
mm
接頭辞で始まります。mmanon
、mmnormalize
、mmjsonparse
といったメッセージ修正モジュールは、メッセージの匿名化や正常化に使用されます。 -
文字列生成モジュール - 文字列生成モジュールは、メッセージ内容を基にして文字列を生成し、rsyslog で用意されているテンプレート機能と密接に機能します。テンプレートに関する詳細は 「テンプレート」 を参照してください。文字列生成モジュールの名前は、
smfile
またはsmtradfile
のように常に接頭辞sm
で始まります。 - ライブラリーモジュール - ライブラリーモジュールは、他の読み込み可能なモジュール用の機能を提供します。これらのモジュールは、必要であるのにユーザーが設定できない場合に rsyslog が自動的に読み込みます。
利用可能なモジュールの一覧と、そのモジュールの詳しい説明は、http://www.rsyslog.com/doc/rsyslog_conf_modules.html を参照してください。
rsyslog はモジュールを読み込む際に、モジュールに対して一部の機能とデータへのアクセスを提供します。これはセキュリティー上の脅威となる可能性があります。セキュリティーリスクを最小限にするために、信頼できるモジュールのみを使用するようにしてください。
23.6.1. テキストファイルのインポート
テキストファイル入力モジュールは imfile
と省略され、rsyslog がテキストファイルを syslog メッセージのストリームに変換できるようにします。imfile
を使用して、独自のテキストファイルログを作成するアプリケーションからログメッセージをインポートできます。imfile
を読み込むには、/etc/rsyslog.conf
に以下を追加します。
module(load=”imfile” PollingInterval=”int”)
複数のファイルをインポートする場合でも、imfile
を一度読み込むだけで十分です。PollingInterval モジュール引数は、接続済みテキストファイルの変更に対して rsyslog チェックをどのくらいの頻度で行うか指定します。デフォルトの間隔は 10 秒で、変更するには int を秒で指定した時間間隔に置き換えます。
インポートするテキストファイルを特定するには、/etc/rsyslog.conf
で以下の構文を使用します。
# File 1 input(type="imfile" File="path_to_file" Tag="tag:" Severity="severity" Facility="facility") # File 2 input(type="imfile" File="path_to_file2") ...
入力テキストファイルを指定するために必要な設定:
- path_to_file をテキストファイルへのパスに置き換えます。
- tag: をこのメッセージのタグ名に置き換えます。
必要なディレクティブ以外に、テキスト入力に適用可能な設定がいくつかあります。severity を適切なキーワードで置き換えて、インポートされたメッセージの重要度を設定します。facility を、メッセージを作成したサブシステムを定義するキーワードに置き換えます。重要度と機能のキーワードは、機能または優先度ベースのフィルターで使用されたものと同じものです (「フィルター」 を参照)。
例23.15 テキストファイルのインポート
Apache HTTP サーバーはログファイルをテキスト形式で作成します。rsyslog の処理機能を apache エラーメッセージに適用するには、まず imfile
モジュールを使用してメッセージをインポートします。/etc/rsyslog.conf
に以下を追加します。
module(load=”imfile”) input(type="imfile" File="/var/log/httpd/error_log" Tag="apache-error:")