Splunk 8.x.xを使用していますが、サーチを実行中にsplunkdプロセスが落ちてしまいました。調査をしてみたところ、下記のことがわかりました。
* サーチプロセスではなく、splunkd自体がセグメンテーション違反(SIGSEGV)で落ちている。
* メモリーも枯渇しておらず、oom-killerが発生したという形跡がmessagesファイルから見られない。
* クラッシュログがSplunkのログディレクトリ配下に生成されていない。
* コマンドが大量にある、長いサーチ文を実行していたようだ。
なぜsplunkdプロセスが急に落ちてしまったのでしょうか?対処する方法はありますか?
この現象は実行したサーチ文が、大量のパイプ(|)で構成された、341個以上のコマンドが入ったものを実行した場合に発生します。サーチで許容されるコマンドの数は、OSや環境により多少の差はありますが、サブサーチ内で使用されているものも含め、おおよそ340個までという仕様になっています。
この値はハードコードされており、値の変更を行うことはできません。対処方法として、サーチで使用されるコマンドの数を減らし、上限を超えないようにしてください。
8.1.6と8.2.3ではプロセスが落ちないように、内部でサーチ文のチェックが入り、上限を超過した場合、下記のエラーがサーチ時に表示されるようになります。
The pipeline size for this search exceeds a search command limit : 340
この現象は実行したサーチ文が、大量のパイプ(|)で構成された、341個以上のコマンドが入ったものを実行した場合に発生します。サーチで許容されるコマンドの数は、OSや環境により多少の差はありますが、サブサーチ内で使用されているものも含め、おおよそ340個までという仕様になっています。
この値はハードコードされており、値の変更を行うことはできません。対処方法として、サーチで使用されるコマンドの数を減らし、上限を超えないようにしてください。
8.1.6と8.2.3ではプロセスが落ちないように、内部でサーチ文のチェックが入り、上限を超過した場合、下記のエラーがサーチ時に表示されるようになります。
The pipeline size for this search exceeds a search command limit : 340