注:こちらの記事の内容は、Splunk Enterprise環境を前提にして書かれています。Splunk Cloudでは利用することのできない機能についての記載があります。
Splunkでは、サーチヘッドへログインしたユーザーが作成したサーチ(セーブドサーチ)、ルックアップテーブル、ダッシュボードなど、ランタイム時に作成・変更される設定を「ナレッジオブジェクト」と呼びます。これらをクラスタ内で適切に配布することにより、ユーザーはどのインスタンスからアクセスしても、必要に応じて自身のナレッジオブジェクトを利用することが可能となります。
これらのオブジェクトについては、Splunkアドミンが適切に管理する必要があります。設定された上限値のサイズを超えるナレッジオブジェクトバンドルは、エラーとなり正常に配布されません。これが原因で様々な運用上の問題を引き起こすため、十分な注意が必要です。
作成されたナレッジオブジェクトは、以下の2つの宛先に配布されます。
サーチヘッドが自身のもつナレッジオブジェクトを、他のサーチヘッドクラスタメンバーへ配布することを「コンフィグレーションレプリケーション」と呼びます。
サーチヘッドメンバーが、検索の実行に必要なナレッジオブジェクトをサーチピア(インデクサー)に配布することを「ナレッジバンドルリプリケーション」と呼びます。
配布されるナレッジオブジェクトは、サーチヘッドで作成(アーカイブ)され、インデクサーへ転送された後、それぞれの役割に応じたディレクトリに一時保存されます。
キャプテンがインデクサーへ配布するために作成した最新のバンドルファイルが置かれます。
サーチヘッドから受け取ったバンドルファイルは、インデクサー内の以下のディレクトリに展開・保存されます。
これらのファイルはtar形式で圧縮されています。
運用管理のため、以下の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
同期や配布に関する異常を検知するためには、サーチヘッドにおいて以下の_internalログを調査することが有効です。
【検索文】
index=_internal sourcetype=splunkd component=DistributedBundleReplicationManager log_level=WARN
ログ内に「Discard the candidate bundle as its size exceeds maxBundleSize」という警告が記録されている場合、サイズ制限による配布失敗が確定となります。
ナレッジバンドルがSplunkクラスタ環境内でどのように配布されているかを理解し、定期的にその状態を確認することで、クラスタ全体の状態を良好に保つことができます。スプランクを分散クラスタ構成で利用することで、その冗長性を最大限に活用するためにも、重要な役割を果たすナレッジバンドルの仕組みを理解し、充実したスプランカーライフを送るのに役立てていただければと思います。
1 Splunkドキュメント「Troubleshoot knowledge bundle replication」