先日、Splunkにて複数台のインデクサによるクラスタ構成の構築手順やバージョンアップ手順を記載した。
インデクサはログを保存する領域を「インデックス」と呼ぶ。インデクサクラスタ構成では単体のインデクサの構成と異なり、インデックスの情報はManager Nodeが保持している。したがって、インデックスを新規に作成する場合は、まずManager Nodeにて設定したのち、その設定情報を各インデクサに適用するという流れとなる。
今回、2台のインデクサを持つクラスタ構成のSplunk環境にて、新規インデックスをManager Nodeにて設定し、各インデクサに設定の適応する手順を検証した。
環境
今回の検証では、ログ送信元となるUniversal Forwarderのサーバを含めると5台のサーバが必要となる。OSはすべてCentOS 7.8を使用する。インデクサのクラスタ構成のインストール手順は以下記事を参照いただきたい。
ホスト名 | IPアドレス | 種類 | 台数 | 説明 |
---|---|---|---|---|
t1073spmg | 192.168.11.73 | Manager Node | 1 | Splunkの各コンポーネントを管理する。 |
t1074spsh | 192.168.11.74 | Search Head | 1 | Indexerに対して検索を行い結果を表示する。 |
t1075spin | 192.168.11.75 | Peer Node (Indexer#1) | 1 | ログの受信とSearch Headからの検索を受け付ける。Peer Node間でデータがレプリケーションされ冗長化される。 |
t1076spin | 192.168.11.76 | Peer Node (Indexer#2) | 1 | ログの受信とSearch Headからの検索を受け付ける。Peer Node間でデータがレプリケーションされ冗長化される。 |
t1077spfw | 192.168.11.77 | Universal Forwarder | 1 | Peer Nodeに対してログを送信する。 |
手順
1. Manager Nodeにてインデックス設定を実施
インデクサをクラスタ構成している場合は、インデックスの設定ファイルであるindexes.conf
をManager Nodeにて設定し、その設定情報をPeer Nodeに展開する。
ただし、indexes.conf
はSplunk Webから設定することはできないため、CLIにて設定ファイルを直接編集し、設定する必要がある。
※Splunk Webで設定できないことは、マニュアルにも以下の通り記載がされている。
Important: You cannot use Splunk Web or the CLI to configure index settings on peer nodes. You must edit
indexes.conf
directly.
引用元 : Configure the peer indexes in an indexer cluster
従って、SSHなどでOSにログインして、indexes.conf
を直接編集する。Peer Node用の設定ファイル配置ディレクトリは、/opt/splunk/etc/master-apps/_cluster/local/
となる。今回は例としてtest_index
という名前のインデックスを作成することとし、以下のようにindexes.conf
を作成する。
# vi /opt/splunk/etc/master-apps/_cluster/local/indexes.conf
[test_index]
repFactor = auto
coldPath = $SPLUNK_DB/test_index/colddb
enableDataIntegrityControl = 0
enableTsidxReduction = 0
homePath = $SPLUNK_DB/test_index/db
maxTotalDataSizeMB = 512000
thawedPath = $SPLUNK_DB/test_index/thaweddb
2. 設定バンドルの検証
Manager Nodeが保持しているPeer Nodeへ配布する設定情報を「設定バンドル」と呼ぶ。設定バンドルの展開前にsplunk validate cluster-bundle
コマンドを使用して、Peer Node
に対して設定バンドルの更新要否や再起動要否の検証を行う。
設定バンドルが更新されている場合は、下記のようにCreated new bundle
と表示される。実際に、Peer Nodeへの適用要否は次の手順にて確認する。
# /opt/splunk/bin/splunk validate cluster-bundle --check-restart -auth admin:my_password
Validating new bundle and checking if its application results in a restart. Please run 'splunk show cluster-bundle-status' to check the status of the bundle validation.
Created new bundle with checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
3. 設定バンドルの確認
splunk show cluster-bundle-status
コマンドを使って、各Peer Nodeに適用されている設定バンドルと、先ほど検証した設定バンドルの差異を確認する。
出力結果において、確認するポイントは以下となる。
active_bundle
が適用中の設定バンドルであり、last_validated_bundle
が検証した最新の設定バンドルとなる。この2つが異なっている場合は、更新が必要と判断する。last_check_restart_result
は設定バンドルの適用後のSplunkの再起動要否を示す。今回はrestart not required
と記載されており、再起動は不要であることが確認できる。再起動が必要となる場合はrestart required
と表示される。
# /opt/splunk/bin/splunk show cluster-bundle-status
master
cluster_status=None
active_bundle
checksum=9D5C0600199B13E786336B83E577576A
timestamp=1617456895 (in localtime=Sat Apr 3 22:34:55 2021)
latest_bundle
checksum=9D5C0600199B13E786336B83E577576A
timestamp=1617456895 (in localtime=Sat Apr 3 22:34:55 2021)
last_validated_bundle
checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
last_validation_succeeded=1
timestamp=1617457038 (in localtime=Sat Apr 3 22:37:18 2021)
last_check_restart_bundle
last_check_restart_result=restart not required
checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
timestamp=1617457038 (in localtime=Sat Apr 3 22:37:18 2021)
t1076spin AFACC80F-3E52-4B65-9AAC-06E2CEA6575E default
active_bundle=9D5C0600199B13E786336B83E577576A
latest_bundle=9D5C0600199B13E786336B83E577576A
last_validated_bundle=FF229E88CDE5C1E8795AC2DDB0E60BD3
last_bundle_validation_status=success
last_bundle_checked_for_restart=FF229E88CDE5C1E8795AC2DDB0E60BD3
last_check_restart_result=restart not required
restart_required_apply_bundle=0
status=Up
t1075spin CDC8B6AA-B56B-471A-A411-36AE8E494A03 default
active_bundle=9D5C0600199B13E786336B83E577576A
latest_bundle=9D5C0600199B13E786336B83E577576A
last_validated_bundle=FF229E88CDE5C1E8795AC2DDB0E60BD3
last_bundle_validation_status=success
last_bundle_checked_for_restart=FF229E88CDE5C1E8795AC2DDB0E60BD3
last_check_restart_result=restart not required
restart_required_apply_bundle=0
status=Up
4. 設定バンドルをPeer Nodeに適用
設定バンドルの適用は、splunk apply cluster-bundle
にて行う。通常は展開前に確認を求められるが、すべてyesで回答をする場合は、--answer-yes
のオプションを付与することでスキップすることができる。
# /opt/splunk/bin/splunk apply cluster-bundle --answer-yes
Created new bundle with checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
Applying new bundle. The peers may restart depending on the configurations in applied bundle.
Please run 'splunk show cluster-bundle-status' for checking the status of the applied bundle.
OK
もし設定に変更がない場合は、以下の通りNo new bundle will be pushed
というメッセージが表示され、設定は更新されない。
# /opt/splunk/bin/splunk apply cluster-bundle --answer-yes
Encountered some errors while applying the bundle.
No new bundle will be pushed. The master and peers already have this bundle with bundle id = 9D5C0600199B13E786336B83E577576A
5. 新規インデックスのログを確認
以上でPeer Nodeに設定が反映されたため、実際にtest_index
のインデックスにログが保管され、Search Headから検索できることを確認する。
Universal Forwarderからインデックスにtest_index
を指定して、/var/log/secure
のログを送信する設定を行う。
# ./splunk add monitor "/var/log/secure*" -index test_index
Added monitor of '/var/log/secure*'.
この状態でSearch Headからindex=test_index
をサーチ文として検索をすると、問題なくログが出力された。
また、Manager Nodeにおいても[設定]→[インデクサークラスタリング]の画面にて、test_index
が追加されていることを確認できた。
以上で、インデクサをクラスタ構成にした環境におけるインデックス追加手順は完了となる。
0 件のコメント:
コメントを投稿