(I'm using this image: amazon/opendistro-for-elasticsearch:1.13.2)
Following the docs on setting up an azure repository:
- Added storage account name and key and reloaded settings (Azure Repository | Elasticsearch Plugins and Integrations [7.10] | Elastic)
# on the elasticsearch node; I have one node in this test cluster
bin/elasticsearch-keystore add azure.client.default.account
bin/elasticsearch-keystore add azure.client.default.key
curl -X POST "localhost:9200/_nodes/reload_secure_settings"
- Tried to register the Azure repository using the simplest settings (Repository settings | Elasticsearch Plugins and Integrations [7.10] | Elastic)
# on the elasticsearch node
curl -X PUT "localhost:9200/_snapshot/my_backups_repository" -H 'Content-Type: application/json' -d '{
"type": "azure"
}'
Getting
{
"error": {
"root_cause": [
{
"type": "repository_verification_exception",
"reason": "[my_backups_repository] path is not accessible on master node"
}
],
"type": "repository_verification_exception",
"reason": "[my_backups_repository] path is not accessible on master node",
"caused_by": {
"type": "null_pointer_exception",
"reason": "Cannot invoke \"String.length()\" because \"host\" is null"
}
},
"status": 500
}
and in the logs I see
[2021-09-10T13:50:42,456][WARN ][r.suppressed ] [elasticsearch-0] path: /_snapshot/my_backups_repository, params: {repository=my_backups_repository}
org.elasticsearch.repositories.RepositoryVerificationException: [my_backups_repository] path is not accessible on master node
at org.elasticsearch.repositories.blobstore.BlobStoreRepository.startVerification(BlobStoreRepository.java:1276) ~[elasticsearch-7.10.2.jar:7.10.2]
at org.elasticsearch.repositories.RepositoriesService$3.doRun(RepositoriesService.java:268) ~[elasticsearch-7.10.2.jar:7.10.2]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:743) [elasticsearch-7.10.2.jar:7.10.2]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.10.2.jar:7.10.2]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
at java.lang.Thread.run(Thread.java:832) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because "host" is null
at com.microsoft.azure.storage.core.Utility.isHostDnsName(Utility.java:533) ~[?:?]
at com.microsoft.azure.storage.core.Utility.determinePathStyleFromUri(Utility.java:521) ~[?:?]
at com.microsoft.azure.storage.StorageUri.<init>(StorageUri.java:71) ~[?:?]
at com.microsoft.azure.storage.core.PathUtility.appendPathToUri(PathUtility.java:124) ~[?:?]
at com.microsoft.azure.storage.core.PathUtility.appendPathToUri(PathUtility.java:108) ~[?:?]
at com.microsoft.azure.storage.blob.CloudBlobContainer.<init>(CloudBlobContainer.java:169) ~[?:?]
at com.microsoft.azure.storage.blob.CloudBlobClient.getContainerReference(CloudBlobClient.java:123) ~[?:?]
at org.elasticsearch.repositories.azure.AzureBlobStore.writeBlob(AzureBlobStore.java:333) ~[?:?]
at org.elasticsearch.repositories.azure.AzureBlobContainer.writeBlob(AzureBlobContainer.java:115) ~[?:?]
at org.elasticsearch.repositories.azure.AzureBlobContainer.writeBlobAtomic(AzureBlobContainer.java:123) ~[?:?]
at org.elasticsearch.repositories.blobstore.BlobStoreRepository.startVerification(BlobStoreRepository.java:1271) ~[elasticsearch-7.10.2.jar:7.10.2]
... 6 more
Can't figure out what host
might refer to. Are there more settings I need to provide?