Splunk 6.3.1を使っていますが、Cluster Masterの画面で以下のようなエラーメッセージが表示されるようになり、Cluster Peer YYYYYYがクラスタにjoinできなくなりました。
Failed to add peer 'guid=XXXXXX server name=YYYYYY ip=aaa.bbb.ccc.ddd:8089' to the master. Error=cannot add to standalone bucket bid=ZZZZZZ ZZ perf_name=WWWWWW[Complete]
本事象の解決方法を教えてください。
エラーメッセージの意味は、バケットID「ZZZZZZ」がクラスタバケットではなく、スタンドアローンバケットであるため、Cluster Peer YYYYYYがクラスタにjoinできなくなっています。
以下の手順で問題のスタンドアローンバケットを削除することにより、Cluster Peer YYYYYYが再度クラスタにjoinできるようになります。
1)Cluster Masterで以下のコマンドを実行し、メンテナンスモードを有効にする。
splunk enable maintenance-mode
2)ターミナルで問題のバケットを格納しているCluster Peerにアクセスし、以下のコマンドでCluster Peerを停止する。
splunk stop
3)ターミナルで問題のバケットを格納しているインデックスのフォルダに遷移し、.bucketManifestファイルから問題のバケットIDに該当するバケットフォルダを特定し、問題のバケットフォルダをSPLUNK_HOME以外の一時フォルダに移動する。
もう少し詳しく説明すると、例えばCluster Master上ではバケットID (bid) 「_internal~1~25DE47F2-446C-4A2A-991A-66022B9425A7」が表示されている場合、問題のCluster Peerの「SPLUNK_HOME/var/lib/splunk/_internaldb/db」に遷移し、catコマンドで「.bucketManifest」内容を確認すると以下のようにbidとバケットフォルダのマッピング情報が表示され、問題のバケットは「rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7」であることを特定できる。この「rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7」バケットを削除するか、SPLUNK_HOME以外の一時フォルダに移動する必要がある。
$ cat .bucketManifest
id,path,"raw_size","event_count","host_count","source_count","sourcetype_count","size_on_disk",modtime,"frozen_in_cluster","origin_site"
"_internal~1~25DE47F2-446C-4A2A-991A-66022B9425A7","rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7",399421,2225,1,8,7,344064,1442385264,0,default
"_internal~1~6BF0E343-1F7B-408E-B619-58E5187496AD","db_1442301329_1442300687_1_6BF0E343-1F7B-408E-B619-58E5187496AD",308958,1787,1,8,7,286720,1442301397,0,default
4)以下のコマンドでCluster Peerを起動する。
splunk start
5)Cluster Masterで以下のコマンドを実行し、メンテナンスモードを無効にする。
splunk disable maintenance-mode
6)Cluster Masterからエラーメッセージが表示されなくなることを確認する。
エラーメッセージの意味は、バケットID「ZZZZZZ」がクラスタバケットではなく、スタンドアローンバケットであるため、Cluster Peer YYYYYYがクラスタにjoinできなくなっています。
以下の手順で問題のスタンドアローンバケットを削除することにより、Cluster Peer YYYYYYが再度クラスタにjoinできるようになります。
1)Cluster Masterで以下のコマンドを実行し、メンテナンスモードを有効にする。
splunk enable maintenance-mode
2)ターミナルで問題のバケットを格納しているCluster Peerにアクセスし、以下のコマンドでCluster Peerを停止する。
splunk stop
3)ターミナルで問題のバケットを格納しているインデックスのフォルダに遷移し、.bucketManifestファイルから問題のバケットIDに該当するバケットフォルダを特定し、問題のバケットフォルダをSPLUNK_HOME以外の一時フォルダに移動する。
もう少し詳しく説明すると、例えばCluster Master上ではバケットID (bid) 「_internal~1~25DE47F2-446C-4A2A-991A-66022B9425A7」が表示されている場合、問題のCluster Peerの「SPLUNK_HOME/var/lib/splunk/_internaldb/db」に遷移し、catコマンドで「.bucketManifest」内容を確認すると以下のようにbidとバケットフォルダのマッピング情報が表示され、問題のバケットは「rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7」であることを特定できる。この「rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7」バケットを削除するか、SPLUNK_HOME以外の一時フォルダに移動する必要がある。
$ cat .bucketManifest
id,path,"raw_size","event_count","host_count","source_count","sourcetype_count","size_on_disk",modtime,"frozen_in_cluster","origin_site"
"_internal~1~25DE47F2-446C-4A2A-991A-66022B9425A7","rb_1442301376_1442300577_1_25DE47F2-446C-4A2A-991A-66022B9425A7",399421,2225,1,8,7,344064,1442385264,0,default
"_internal~1~6BF0E343-1F7B-408E-B619-58E5187496AD","db_1442301329_1442300687_1_6BF0E343-1F7B-408E-B619-58E5187496AD",308958,1787,1,8,7,286720,1442301397,0,default
4)以下のコマンドでCluster Peerを起動する。
splunk start
5)Cluster Masterで以下のコマンドを実行し、メンテナンスモードを無効にする。
splunk disable maintenance-mode
6)Cluster Masterからエラーメッセージが表示されなくなることを確認する。