Splunkを 7.2.1 から 7.2.3 にアップグレードする際、マイグレーションスクリプト実行中に下記のエラーが表示され、
アップグレードに失敗してしまいます。
ERROR while running mongod-fix-voting-priority migration.
先に進むにはどうすればいいでしょうか?
これは既知の不具合で、7.2.4で修正されています。
また、下記のようなメッセージが表示される場合もあります:
ERROR: Failed to migrate mongo feature compatibility version:
ERROR while running migrate-kvstore migration.
これらのエラーはマイグレーション実行時にKVStoreの証明書が失効している場合や、そのほかの理由でKVStore (mongod)の起動に失敗した場合に表示されます。
この問題はKVStore自体を無効化している場合でも、マイグレーション時に一時的に有効化されるため、発生します。
■証明書が失効している
証明書が失効した場合は、下記の手順で新規の証明書を生成してください。
1. 新たな証明書をSplunkServerDefaultCertの名で生成します。
# splunk createssl server-cert -d $SPLUNK_HOME/etc/auth -n SplunkServerDefaultCert
2. 念のため失効した証明書のバックアップを取ります。
# mv server.pem server.pem.expired
3. 作成したSplunkServerDefaultCertをデフォルトの証明書名(server.pem)に変更します。
# mv SplunkServerDefaultCert.pem server.pem
4. Splunkを起動します。
# splunk start
■SSLの鍵共有の設定にディフィー・ヘルマン鍵共有(DH)が設定されている
splunkdのSSL設定にディフィー・ヘルマン鍵共有(DH)が設定されており、KVStore (mongod)がこの方式に対応していないので、mongod.logファイルに下記エラーが記録されます。
E NETWORK [conn1] SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher
この場合、マイグレーションスクリプトが完了するまで、一旦splunkdのSSL設定を変更してください。
■ロックファイルが残っている
KVStore (mongod)のロックファイルが残ったままであるため、起動に失敗してしまう。
ERROR: [App Key Value Store migration] Service(36) terminated before the service availability check could complete. Exit code 1, waited for 0 seconds.
[App Key Value Store migration] Checking if migration is needed. Upgrade type 1. This can take up to 600 seconds.
ロックファイル($SPLUNK_HOME/var/lib/splunk/kvstore/mongo/mongod.lock)を手動で削除してください。
■KVStoreが破損している
KVStoreを無効化している場合は、$SPLUNK_HOME/var/lib/splunk/kvstore以下のデータを念のためバックアップし、このディレクトリ以下のデータを消去します。(KVStoreのデータは消去されます!)
KVStore内にデータがある場合はマイグレーション前に正常な状態にする必要がありますため、サポートへお問い合わせください。
これは既知の不具合で、7.2.4で修正されています。
また、下記のようなメッセージが表示される場合もあります:
ERROR: Failed to migrate mongo feature compatibility version:
ERROR while running migrate-kvstore migration.
これらのエラーはマイグレーション実行時にKVStoreの証明書が失効している場合や、そのほかの理由でKVStore (mongod)の起動に失敗した場合に表示されます。
この問題はKVStore自体を無効化している場合でも、マイグレーション時に一時的に有効化されるため、発生します。
■証明書が失効している
証明書が失効した場合は、下記の手順で新規の証明書を生成してください。
1. 新たな証明書をSplunkServerDefaultCertの名で生成します。
# splunk createssl server-cert -d $SPLUNK_HOME/etc/auth -n SplunkServerDefaultCert
2. 念のため失効した証明書のバックアップを取ります。
# mv server.pem server.pem.expired
3. 作成したSplunkServerDefaultCertをデフォルトの証明書名(server.pem)に変更します。
# mv SplunkServerDefaultCert.pem server.pem
4. Splunkを起動します。
# splunk start
■SSLの鍵共有の設定にディフィー・ヘルマン鍵共有(DH)が設定されている
splunkdのSSL設定にディフィー・ヘルマン鍵共有(DH)が設定されており、KVStore (mongod)がこの方式に対応していないので、mongod.logファイルに下記エラーが記録されます。
E NETWORK [conn1] SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher
この場合、マイグレーションスクリプトが完了するまで、一旦splunkdのSSL設定を変更してください。
■ロックファイルが残っている
KVStore (mongod)のロックファイルが残ったままであるため、起動に失敗してしまう。
ERROR: [App Key Value Store migration] Service(36) terminated before the service availability check could complete. Exit code 1, waited for 0 seconds.
[App Key Value Store migration] Checking if migration is needed. Upgrade type 1. This can take up to 600 seconds.
ロックファイル($SPLUNK_HOME/var/lib/splunk/kvstore/mongo/mongod.lock)を手動で削除してください。
■KVStoreが破損している
KVStoreを無効化している場合は、$SPLUNK_HOME/var/lib/splunk/kvstore以下のデータを念のためバックアップし、このディレクトリ以下のデータを消去します。(KVStoreのデータは消去されます!)
KVStore内にデータがある場合はマイグレーション前に正常な状態にする必要がありますため、サポートへお問い合わせください。