FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

rsyslog.conf の man ページ

Version 3.18.0 の rsyslog.conf の man ページの日本語訳です。
原文は直接 man を見てもらうか、こちらのページでも参照できます。

また、オンラインドキュメントは rsyslog の公式ページから参照できます。

一部意訳になったりしているところもありますが、誤り等あればコメントやメールでご指摘ください。



RSYSLOG.CONF(5)      Linux System Administration     RSYSLOG.CONF(5)

名前
    rsyslog.conf - rsyslogd(8) の設定ファイル

説明
    rsyslog.conf ファイルは、*nix システムのシステムメッセージを記録する rsyslogd(8) の
    主要な設定ファイルです。このファイルでは、ログ出力のためのルールを定義します。
    特別な機能については rsyslogd(8) の man ページを参照してください。
    rsyslog.conf には sysklogd の syslog.conf との後方互換性があるため、あなたが
    sysklogd からの移行を考えている場合には、syslog.conf をリネームしてそのまま
    使用することができるでしょう。
   
    本バージョンの rsyslog には、より詳細なドキュメントが HTML 形式で含まれています。
    このドキュメントは通常 ./doc サブディレクトリに配置されますが、パッケージング
    システム経由でインストールしている場合には、独自パッケージとして提供されて
    いるかもしれません。この man ページがカバーする範囲は基本的なオペレーションに
    限られるため、rsyslog の高度な機能を使用するには、HTML ドキュメントを参照する
    必要があります。
   
モジュール
    rsyslog はモジュラデザインを採用しており、現在もモジュールの数は増え続けています。
    各モジュールの詳細な解説については、HTML ドキュメントを参照してください。
   
    omsnmp
       SNMP トラップ出力モジュール
       
    omgssapi
       GSS を利用するプレーン TCP syslog の出力プラグイン
       
    ommysql
       MySQL のための出力モジュール
       
    omrelp
       信頼性の高い(メッセージロスを防ぐ)RELP プロトコルのための出力モジュール。
       詳細については後述の imrelp および HTML ドキュメントを参照して下さい。
       以下のように使用できます。
       
       *.* :omrelp:server:port
       
       *.* :omrelp:192.168.0.1:2514 # 実際のサンプル
       
    ompgsql
       PostgreSQL のための出力モジュール
       
    omlibdbi
       汎用データベース のための出力モジュール (Firebird/Interbase, MS SQL,
       Sybase, SQLite, Ingres, Oracle, mSQL)
       
    imfile テキストファイルのための入力モジュール
   
    imudp UDP syslog のための入力プラグイン。廃止予定となっている -r
       オプションを置き換えるもので、以下のように使用できます。

       $ModLoad imudp

       $UDPServerRun 514
       
    imtcp plain TCP syslog のための入力プラグイン。廃止予定となっている -t
       オプションを置き換えるもので、以下のように使用できます。

       $ModLoad imtcp

       $InputTCPServerRun 514
       
    imrelp RELP プロトコルのための入力プラグイン。RELP は UDP やプレーン TCP
       syslog の代わりに使用することができ、信頼性のある syslog メッセージの
       配送機能を提供します。
       プレーン TCP syslog には、本当の意味での信頼性のある配送機能がない点に
       注意してください。プレーン TCP syslog では、コネクションの問題や
       サーバ停止によってメッセージのロスが発生する可能性がありますが、
       RELP はこうした状況におけるメッセージロスを防ぐことができます。
       以下のように使用できます。
       
       $ModLoad imrelp

       $InputRELPServerRun 2514
       
    imgssapi
       GSS を使用するプレーン TCP syslog の入力プラグイン
       
    immark
       MARK メッセージのサポート
       
    imklog カーネルロギングのための入力プラグイン。カーネルが出力する
       ログメッセージを rsyslog で管理するには、以下のように設定します。
       
       $ModLoad imklog
       
       なお、カーネルログの出力に klogd デーモンが不要となったため、
       rsyslog パッケージでは klogd は提供されません。
       
    imuxsock
       システムログソケットを含む Unix ソケットのための入力プラグイン。
       ローカルのシステムプロセスからログメッセージを受け取るには、以下の
       ように設定します。
       
       $ModLoad imuxsock
       
       このディレクティブを削除する場合は、システムどのような影響が
       あるかを十分に理解した上で実施して下さい。

基本構造
    ハッシュ記号(#)で始まる行や空行は無視されます。
    rsyslog.conf は以下のようなセクションを含みます(並びはファイル内での
    推奨される記述順):
   
    グローバルディレクティブ
       グローバルディレクティブでは、rsyslog デーモンの全体的な動作に
       影響するいくつかのプロパティの設定を行います。設定する項目の
       例としては、メインメッセージキューの大きさ($MainMessageQueueSize)や
       外部モジュールの読み込み($ModLoad)などがあります。
       全てのグローバルディレクティブは単独の行に記述され、ドル記号($)で
       始まる必要があります。グローバルディレクティブの完全なリストは
       doc ディレクトリにある HTML ドキュメントか、オンラインの Web
       ページにあります。
       
    テンプレート
       テンプレートを使用すると、ログに出力されるメッセージのフォーマットを
       指定することができます。また、動的なファイル名を生成する際にも
       テンプレートが使用されます。テンプレートは、ルールの中で使用
       されるよりも先に定義されている必要があります。より詳しい情報に
       ついては、この man ページの「テンプレート」セクションを参照してください。
       
    出力チャネル
       出力チャネルはユーザが望む様々な形式での出力に対する保護機能を
       提供します。出力チャネルは、ルールの中で使用されるよりも先に
       定義されている必要があります。より詳しい情報については、この
       man ページの「出力チャネル」セクションを参照してください

    ルール (セレクタ + アクション)
       全てのルール行は、1 つ以上のスペースもしくはタブで区切られる
       セレクタフィールドおよびアクションフィールドという 2 つの
       フィールドから構成されます。セレクタフィールドには、指定された
       アクションに属する facility と priority のパターンを指定します。

セレクタ
    セレクタフィールドそれ自体もまた、ピリオド(.)によって区切られる
    facility と priority という 2 つの要素から構成されています。これらの
    要素は大文字・小文字を区別せず、また対応する十進数の値で指定する
    こともできます(ただし、警告が出るので実際にはやらないでください)。
    facility と priority については rsyslog(3) で解説されています。
    以降に出てくる名前はそれぞれ /usr/include/rsyslog.h 内の類似する
    "LOG_" の値に対応しています。
   
    facility は、キーワード:auth, authpriv, cron, daemon, kern, lpr,
    mail, mark, news, security (auth と同じ), syslog, user, uucp,
    local0 ~ local7 のいずれか一つです。security というキーワードは
    もはや使用すべきではありませんし、mark というキーワードは内部使用の
    ためのもので、アプリケーションで使用されるべきではありません。とはいえ、
    ユーザはとにかくここでそうしたメッセージを指定してリダイレクトしたいと
    考えるかもしれません。facility はメッセージの出力元のサブシステムを
    示しており、例えばあらゆるメールプログラムは、syslog を使用して
    ログ出力を行う際に mail という facility(LOG_MAIL)を使用します。
   
    priority は、キーワード(重要度順): debug, info, notice, warning,
    warn (warning と同じ), err, error (err と同じ), crit, alert, emerg,
    panic (emerg と同じ) のいずれか一つです。error, warn および panic は
    廃止予定となっているため、もはや使用すべきではありません。
   
    オリジナルの BSD syslogd の動作では、指定された priority もしくは
    それ以上の priority を持つ全てのメッセージは、指定されたアクションに
    従ってログ出力されていました。rsyslogd も同様に振舞いますが、この点に
    ついていくつかの機能拡張を行っています。
   
    上記のキーワードに加えて、rsyslogd(8) は以下の拡張キーワードを解釈する
    ことができます。
   
    * : 使用位置(ピリオドの前後)に応じて全ての facility もしくは
      全ての priority を表します。
     
    none : 指定された facility のいかなる priority についてもセレクタの
        対象から除外します。
       
    カンマ(,)演算子を使用することで、1 つのステートメントの中で同じ
    priority パターンに対して複数の facility を指定することもできます。
    指定できる facility の数に制限はありません。なお、そうしたステートメントに
    おいては facility のみが解釈され、priority については最後に指定されたもの
    以外は無視される点に注意してください。
   
    セミコロン(;)を使用することで、1 つのアクションに対して複数の
    セレクタを指定することもできます。セレクタフィールド内の各セレクタは
    先行するセレクタの内容を上書きする点に注意してください。この動作を
    利用することで、いくつかの priority をパターンから簡単に除外することが
    できます。
   
    より直感的に利用できるよう、rsyslogd にはオリジナルの BSD ソースに対して
    構文の拡張が行われています。priority の前にイコール記号(=)を付けることで、
    特定の priority のみを指定することができます(より高い重要度の priority に
    マッチしない)。また、priority の前にエクスクラメーション記号(!)を
    付与することで、その priority もしくはより高い重要度の priority を
    除外することができます。両方を同時に使用することも可能(!=)で、この場合は
    指定した priority のみが除外対象となります。

アクション
    ルールのアクションフィールドでは、メッセージに対して何を行うかを
    記述します。メッセージの内容を一種の「ログファイル」に書き込むという
    用法が一般的ですが、データベーステーブルへの書き込みや、他のホストへの
    転送といったその他のアクションも実行できます。

  一般ファイル
    通常、メッセージは実際のファイルに書き込まれます。ファイルは
    フルパスで指定され、スラッシュ(/)で始まる必要があります。

    例:
    *.*   /var/log/traditionalfile.log;RSYSLOG_TraditionalFormat
    # ファイルに対して旧来のフォーマットでログ出力を行います。
   
    注意: ログファイルでより正確なタイムスタンプを使用したい場合には、
    「;RSYSLOG_TraditionalFormat」の記述を削除してください。こうすることで
    デフォルトテンプレートが選択され、RFC 3339 の形式のタイムスタンプが
    使用されます(デフォルトテンプレートの変更を行っていない場合)。
   
    例:
    *.*   /var/log/traditionalfile.log
    # ファイルに対して RFC3339 形式のタイムスタンプでログ出力を行います。

  名前付きパイプ
    本バージョンの rsyslogd(8) は名前付きパイプ(FIFO)へのログ出力を
    サポートしています。ファイル名の先頭にパイプ記号(|)を追加することで、
    宛て先として FIFO もしくは名前付きパイプを使用することができます。
    これはデバッグの際に有用なツールとして使用できます。FIFO は rsyslogd(8) が
    起動するより先に mkfifo(1) コマンドを使って作成されている必要がある点に
    注意してください。
   
  ターミナルとコンソール
    指定したファイルが tty だった場合、特別な tty ハンドリングが行われます。
    ファイルに /dev/console を指定した場合も同様です。

  リモートホスト
    メッセージの転送方法には以下の 3 種類があります。旧来の UDP トランス
    ポートは標準的に使われていますが、非常にロスの多い方法です。プレーン TCP
    ベースのトランスポートは広く利用可能であるものの、依然として特定の状況に
    おいてはメッセージのロスが発生する可能性がある方法、RELP トランスポートは
    メッセージのロスは発生しないものの、現状では rsyslogd 3.15.0 以降でのみ
    利用可能な方法です。
   
    メッセージを UDP を使用して別のホストに転送するには、ホスト名の先頭に
    アットマーク(@)を追加します。プレーン TCP を使用するには、アットマークを
    2 つ(@@)追加します。RELP を使用するには、ホスト名の前に「:omrelp:」
    という文字列を追加します。
   
    例:
    *.* @192.168.0.1
    
    この例では、メッセージは UDP を使用して 192.168.0.1 というアドレスを
    持つ機器に送られます。デフォルトの宛て先ポート番号は 514 です。UDP の
    特性により、転送中にいくつかのメッセージが失われる可能性があります。
    トラフィックのボリュームが大きくなることが予想される場合、メッセージの
    消失の数もまた非常に顕著なものとなるでしょう(トラフィックの転送量が
    多くなればなるほど、メッセージの消失も発生しやすく、重大なものとなります)。
   
    メッセージの消失を防ぎたい場合には、RELPを使用してください。
     *.* :omrelp:192.168.0.1:2514
   
    この例ではポート番号として 2514 が使用されていますが、RELPには標準化された
    ポート番号はありません。
   
    なお、RELP を使用するためには適切な入力・出力プラグインを読み込んでおく
    必要があることを忘れないでください(前述の「モジュール」の項を参照)。
   
    その他、rsyslogd はリモート転送に関わる様々なオプションを提供しています。
    詳細については、HTML ドキュメントを参照してください。
   
  ユーザのリスト
    通常、重大なメッセージはその機器の root ユーザに通知されます。同様の
    メッセージを受け取るべきユーザのリストを指定することもでき、メッセージは
    ログイン中のユーザの画面に書き込まれます。複数のユーザを指定する際には
    ユーザ名をカンマ(,)で区切ることができます。ユーザがログイン中であれば、
    メッセージを受け取ることができます。メールが送られるだろうなどと思っては
    いけません。それでは手遅れになる可能性があります。

  ログイン中の全てのユーザ
    緊急のメッセージは、システムに何か異常なことが発生していることを
    伝えるために、しばしば現在オンラインの全ユーザに向けて通知されます。
    こうした wall(1) 機能を使用するには、アスタリスク(*)を指定してください。

  データベーステーブル
    この機能により、メッセージをデータベーステーブルにロギングすることが
    できます。デフォルトでは、MonitorWare と互換性のあるスキーマが必要と
    なりますが、このスキーマは rsyslog パッケージによってインストールされる
    createDB.SQL ファイルを使用して作成することができます。また、適切な
    テンプレートを定義し、それをアクションに割り当てることで、標準とは
    異なる任意のスキーマを使用することもできます。
   
    データベースロギングに関する詳細情報については、HTML ドキュメントを
    参照してください。
   
  破棄
    破棄アクションが実行されると、メッセージは即座に破棄されます。これは、
    放っておくとログファイルを埋め尽くしてしまう迷惑なメッセージを
    フィルタするのに役立ちます。このようなフィルタを適用する際は、
    ログファイルに書き込みを行うよりも前に破棄アクションを配置してください。
    また、破棄アクションは特に、 不要なログを指定するための条件を自由に
    指定することができるプロパティベースのフィルタと組み合わせることで
    上手く動作します。
   
    アクションに破棄を指定する際は、単一のチルダ記号(~)を指定します。
    その他のパラメータは必要ありません。
   
    例:
    *.*  ~   # 全てを破棄します。

  出力チャネル
    アクションを出力チャネル定義に紐付けます(出力チャネルの詳細については
    当該項目を参照のこと)。出力チャネルアクションはドル記号($)で始まら
    なければなりません。例えば、"mchannel" という出力チャネル定義に紐付けたい
    場合には "$mychannel" と指定します。出力チャネルは他のすべてのアクションと
    同じように、テンプレート定義をサポートします。
   
  シェル実行
    このアクションはプログラムをサブシェルで実行します。プログラムには
    テンプレートによって生成されたメッセージが唯一のコマンドラインパラメータ
    として渡されます。rsyslog はプログラムの終了を待ち、終了されてからのみ
    処理を継続します。
   
    例:
    ^program-to-execute;template

フィルタ条件
    rsyslog は 3 つの異なる種類のフィルタ条件を提供します。
    * 旧来の severity と facility によるセレクタ
    * プロパティによるフィルタ
    * 表現式によるフィルタ
   
  ブロック
    rsyslog は rsyslog.conf の中で BSD スタイルのブロックをサポートしています。
    各ブロックを構成する行のまとまりは、program もしくは hostname の指定に
    よって他のブロックと区切られます。ブロックは最後に指定された program
    および hostname に対応するメッセージのみをログに出力します。そのため、
    program に "ppp" が選択されたブロックの直後に、"dialhost" という
    hostname のからのメッセージが選択されたブロックが続いた場合、2番目の
    ブロックは dialhost 上の ppp プログラムのメッセージのみをログに出力します。

  セレクタ
    セレクタは syslog メッセージをフィルタする旧来の方法です。この方法は
    広く知られ、非常に効率的であり、またこれまで蓄積されてきた syslogd の
    設定ファイルとの互換性の観点から rsyslog でも本来の文法のまま保持されて
    います。priority と facility のみによるフィルタで十分に要件を満たせる
    のであれば、セレクタ行を使用すべきでしょう。rsyslog においても、
    セレクタは決して他の方法に比べて劣った方法ではなく、フィルタ条件として
    最高のパフォーマンスを提供します。

  プロパティによるフィルタ
    プロパティによるフィルタは rsyslogd 特有の機能です。これにより
    HOSTNAME や syslogtag あるいは msg といったあらゆるプロパティに
    基づいてフィルタを行うことができます。
   
    プロパティによるフィルタを指定する際は、必ず0カラム目がコロン(:)から
    始まらなければなりません。これにより、rsyslogd がこれが新規のフィルタ
    タイプであることを識別することができます。コロンの後にはプロパティ名、
    コンマ(,)、実行する比較演算子の名前、コンマ(,)、比較対象となる値が
    続かなくてはなりません。また、最後の値は引用符で囲まれている必要があります。
    コンマの間にはスペースやタブを使用することができます。プロパティ名と
    比較演算子では、大文字と小文字が区別されるため、"msg" という指定は
    正しく動作しますが、"MSG" は不正なプロパティ名となます。
    簡単に言うと、文法としては以下のようになります。
    
    :property, [!]compare-operation, "value"
    
    以下の比較演算子が現在サポートされています。
   
     contains
       プロパティの中に、"value" で指定された文字列が含まれて
       いるかをチェックします。
    
     isequal
       "value" で指定された文字列とプロパティの内容を比較します。
       条件が成立するためには、2つの値が厳密に一致していなければなりません。
      
     startswith
       "value" で指定された文字列がプロパティの先頭の値と
       厳密に一致するかをチェックします。
      
     regex
       プロパティを指定された正規表現と比較します。
    
  表現式によるフィルタ
    この機能については HTML ドキュメントを参照して下さい。

テンプレート
    ファイルに出力されるログやユーザに通知されるメッセージなど、rsyslog の
    全ての出力はテンプレートを使用しています。rsyslogd には、これまでの
    syslogd のフォーマットと互換性のあるテンプレートがプログラム内に直接
    記述されており、テンプレートの指定が無い時にはこうした埋め込み型の
    テンプレートが使用されます。syslogd.c で "template_" を検索することで、
    こうしたテンプレートを見つけることができます。
   
    テンプレートは、テンプレートディレクティブ、名前、テンプレート
    テキスト、オプションで構成されます。
   
    例:
    $template MyTemplateName,"\7Text %property% some moretext\n",
   
    "$template" はテンプレートディレクティブで、rsyslog にこの行が
    テンプレートを含んでいることを伝えます。バックスラッシュ(\)は
    エスケープ文字です。例えば、\7 はベルを鳴らすための ASCII コード、
    また \n は改行です。現在のところ rsyslog で使用できるコードセットには
    多少の制限があります。
   
    テンプレート内のテキストは基本的に全て文字列として使用されますが、
    パーセント記号(%)で囲まれたプロパティ名を使用することで、syslog
    メッセージの内容にアクセスすることができます。プロパティには
    プロパティ・リプレーサ経由でアクセスすることができ、例えば文字列の
    一部を抽出したり、日付のフォーマットを変更することこともできます。
    詳細についてはこの man ページのプロパティ・リプレーサの項で説明します。
   
    エスケープ方法:
     % = \%
     \ = \\ --> ’\’ is used to escape (as in C)

    $template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg%\n"
   
    テンプレートはセレクタ行で動的なファイル名を指定するためにも
    使用されます。例えば、syslog メッセージをホストごとに異なる
    ファイルに保存するには、以下のようなテンプレートを定義します。
   
    $template DynFile,"/var/log/system-%HOSTNAME%.log"
   
    このテンプレートは出力セレクタ行を定義する際に使用することができます。
    また、出力されるファイル名は例えば "/var/log/system-localhost.log" の
    ようになります。

  テンプレートオプション
   

コメントの投稿

非公開コメント

プロフィール

米麹

筆者: 米麹
某社に勤務する SE です。
ここでは本職とは関係のない趣味的な検証情報などを書いていきます。

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

検索フォーム
メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。