7.5.3. 名前付き Pipe ログでのプラグインの使用

プラグインは、名前付きパイプからログデータを読み取り、操作を実行するために呼び出すことができます。プラグインを使用する際の考慮事項は、名前付きのパイプログスクリプトがあります。

  • プラグイン関数は、名前付きパイプから読み取られるすべての行に対して呼び出されます。
  • プラグイン関数は Python スクリプトである必要があり、 終了する必要があります。
  • プラグイン引数は、コマンドラインで名前付きのパイプログスクリプトに渡されます。
  • プラグインがロードされたときに、pre-operation 関数を指定できます。
  • スクリプトの終了時に、操作後の関数を呼び出すことができます。

7.5.3.1. 名前付きの Pipe ログスクリプトを使用したプラグインの読み込み

プラグインに使用する ds-logpipe.py には、2 つのオプションがあります。

  • --plugin オプションは、(Python スクリプトであり、in .pyで終わる必要がある)プラグインファイルへのパスを指定します。
  • plugin.arg オプションは、プラグイン引数を名前付きパイプログスクリプトに渡します。プラグインファイル名( .py 拡張なし)はプラグイン であり、そのプラグインで許可されるすべての引数は arg です。

以下に例を示します。

ds-logpipe.py /var/log/dirsrc/slapd-example/errors.pipe --plugin=/usr/share/dirsrv/data/example-funct.py example-funct.regex="warning" > warnings.txt

同じ引数に複数の値が渡されると、その値は plugin-in dict の値の一覧に変換されます。たとえば、このスクリプトは arg1 の 2 つの値を提供します。

--plugin=/path/to/pluginname.py pluginname.arg1=foo pluginname.arg1=bar pluginname.arg2=baz

プラグインでは、これは以下に変換されます。

{'arg1': ['foo', 'bar'],
 'arg2': 'baz'}

これは、2 つの キーを持つ Python ディクショナリー オブジェクトです。最初のキーは文字列 arg1 で、その値は、文字列 foo および bar の 2 つの要素を持つ Python リストオブジェクトです。2 つ目のキーは文字列 arg2 で、その値は baz 文字列です。引数に値が 1 つしかない場合は、単純な文字列のままになります。単一の引数名の値が複数文字列の一覧に変換されます。