サーチヘッドで作成されたナレッジオブジェクトがSplunkクラスタ環境で配布される仕組み

Tips & Tricks 今井 浩平 (Kohei Imai)

注:こちらの記事の内容は、Splunk Enterprise環境を前提にして書かれています。Splunk Cloudでは利用することのできない機能についての記載があります。

1. ナレッジオブジェクト(Knowledge Object)とは

Splunkでは、サーチヘッドへログインしたユーザーが作成したサーチ(セーブドサーチ)、ルックアップテーブル、ダッシュボードなど、ランタイム時に作成・変更される設定を「ナレッジオブジェクト」と呼びます。これらをクラスタ内で適切に配布することにより、ユーザーはどのインスタンスからアクセスしても、必要に応じて自身のナレッジオブジェクトを利用することが可能となります。

これらのオブジェクトについては、Splunkアドミンが適切に管理する必要があります。設定された上限値のサイズを超えるナレッジオブジェクトバンドルは、エラーとなり正常に配布されません。これが原因で様々な運用上の問題を引き起こすため、十分な注意が必要です。

2. 配布される範囲

作成されたナレッジオブジェクトは、以下の2つの宛先に配布されます。

3. コンフィグレーションレプリケーション(Configuration Replication)

サーチヘッドが自身のもつナレッジオブジェクトを、他の サーチヘッドクラスタメンバー へ配布することを「コンフィグレーションレプリケーション」と呼びます。

4. ナレッジバンドルリプリケーション(Knowledge Bundle Replication)

サーチヘッドメンバーが、検索の実行に必要なナレッジオブジェクトを サーチピア(インデクサー) に配布することを「ナレッジバンドルリプリケーション」と呼びます。

5. スプランクディレクトリ内での保存形式と確認方法

配布されるナレッジオブジェクトは、サーチヘッドで作成(アーカイブ)され、インデクサーへ転送された後、それぞれの役割に応じたディレクトリに一時保存されます。

1. サーチヘッド(送信側)での保存先

キャプテンがインデクサーへ配布するために作成した最新のバンドルファイルが置かれます。

2. インデクサー(受信側)での保存先

サーチヘッドから受け取ったバンドルファイルは、インデクサー内の以下のディレクトリに展開・保存されます。

3. ファイル形式と中身の確認方法

これらのファイルは tar形式 で圧縮されています。

6. 配布ステータスと設定の確認方法

運用管理のため、以下のCLIコマンドを用いて配布の正常性を確認することが推奨されます。

Bundle replication statusの確認:splunk show bundle-replication-status 各サーチピアへの配布が成功(succeeded)しているか、あるいは進行中かを確認できます。

例:

splunk@master1:/home/splunk$ splunk show bundle-replication-status 
WARNING: Server Certificate Hostname Validation is disabled. Please see server.conf/[sslConfig]/cliVerifyServerName for details. 
Your session is invalid.  Please login. 
Splunk username: xxxxx 
 ***Knowledge Bundle Replication Cycle Status*** 

Replication Policy: classic 
Replication In Progress: 0 
Bundle ID: master1-1777254973 
Cycle ID: BF3491A0-xxxx-4B87-9280-7560B3B27CF7 
Current Bundle: /opt/splunk/var/run/master1-xxx7254973.bundle 
Current Replication Start Time: 1778822282 
Peers: 
Peer URI: https://10.xxx.x.xxx:8089 
Peer State: succeeded 
Peer URI: https://10.xxx.x.xxx:8089 
Peer State: succeeded 
Peer URI: https://10.xxx.x.xx:8089 
Peer State: succeeded

Bundle replication configの確認:splunk show bundle-replication-config 現在の maxBundleSize (上限値)やレプリケーションポリシーなどの設定値を確認できます。

例:

splunk show bundle-replication-config 
WARNING: Server Certificate Hostname Validation is disabled. Please see server.conf/[sslConfig]/cliVerifyServerName for details. 
 ***Knowledge Bundle Replication Configuration*** 

Replication Policy: classic 
Replication Threads: 2 
Max Bundle Size: 2147483648 bytes 
Warn Max Bundle Size Percentage: 0.75% 
Status Queue Size: 5 
Replication Period: 60s 
File Size Warning Threshold: 524288000 bytes 
Connection Timeout: 60s 
Send Timeout: 60s 
Receive Timeout: 60s

7. ナレッジバンドルの異常が引き起こす問題例

例1:新たに作成されたRoleが特定のインデックスをサーチできない

例2:CSVルックアップのサイズが肥大化してサーチが実行終了できない

8. エラーの検索方法

同期や配布に関する異常を検知するためには、サーチヘッドにおいて以下の_internalログを調査することが有効です。

【検索文】

index=_internal sourcetype=splunkd
component=DistributedBundleReplicationManager log_level=WARN

ログ内に「Discard the candidate bundle as its size exceeds maxBundleSize」という警告が記録されている場合、サイズ制限による配布失敗が確定となります。

9.まとめ

ナレッジバンドルがSplunkクラスタ環境内でどのように配布されているかを理解し、定期的にその状態を確認することで、クラスタ全体の状態を良好に保つことができます。スプランクを分散クラスタ構成で利用することで、その冗長性を最大限に活用するためにも、重要な役割を果たすナレッジバンドルの仕組みを理解し、充実したスプランカーライフを送るのに役立てていただければと思います。

1

Splunkドキュメント「Troubleshoot knowledge bundle replication

関連記事

Skipped & Deferred Searchを理解する(パート2)
Tips
24 分程度

Skipped & Deferred Searchを理解する(パート2)

予定されていたサーチが何らかの理由で実行されない場合、そのサーチはスキップ(skipped)または延期(deferred)されます。パート2ではその主な原因やベストプラクティス、トラブルシューティングを解説しています。
Splunk資格をとろう!〜Splunk Core Certified Power Userへの道〜
Tips
5 分程度

Splunk資格をとろう!〜Splunk Core Certified Power Userへの道〜

Splunk利用者としての知識や経験を対外的に示すことができる公式資格である、Splunk Core Certified UserおよびSplunk Core Certified Power Userを取得するための資料や研修を紹介します。
Skipped & Deferred Searchを理解する(パート1)
Tips
8 分程度

Skipped & Deferred Searchを理解する(パート1)

予定されていたサーチが何らかの理由で実行されない場合、そのサーチはスキップ(skipped)または延期(deferred)されます。この記事では、この2つの状態の違いや、発生する理由を具体例をあげながら解説しています。