Не удается зарегистрировать хранилище моментальных снимков в Elasticsearch


Я использую Elasticsearch 1.4 и ubuntu 12.04.3 LTS.Попытка создать моментальный снимок для локального elasticsearch. Я ссылаюсь на этот Сайт

Этот веб-сайт шаги прекрасно работают на windows Elasticsearch. Если я зарегистрирую репозиторий на Ubuntu Elasticsearch. он выстрелил ниже сообщения.

Этот запрос, что я запускаю

curl -XPUT http://xx.xx.xx.xx:9200/_snapshot/es_snap -d '{
  "type": "fs",
  "settings": {
    "location": "/mount/backups/my_backup"
  }
}'

Я получил такой ответ.

{
  "error":"RepositoryException[[es_snap] failed to create repository]; 
            nested: CreationException[Guice creation errors:nn1) Error injecting constructor, org.elasticsearch.common.blobstore.BlobStoreException: 
            Failed to create directory at [
              D:/data/es_snapshot_bkup/es_snapshot_repo]n  
                at org.elasticsearch.repositories.fs.FsRepository.<init>(Unknown Source)n  
                while locating org.elasticsearch.repositories.fs.FsRepositoryn  
                while locating org.elasticsearch.repositories.Repositorynn1 error
            ]; 
            nested: BlobStoreException[Failed to create directory at [/mount/backups/my_backup]]; ",
  "status":500
}
3 2

3 ответа:

  1. Сначала создайте резервную папку (обычно эта папка создает домашнюю папку пользователя)

    mkdir ~/backup
    
  2. Дайте разрешение на эту папку

    chmod 777 ~/backup
    
  3. Создайте репозиторий (Repository is represent you path)

    curl -XPUT http://xx.xx.xx.xx:9200/_snapshot/es_snap -d 
    '{"type":"fs","settings":{"location":"home/user/backup"
    ,"compress":true}}'
    
  4. Снимок

    curl -XPUT "http://xx.xx.xx.xx:9200/_snapshot/en_snap/snapshot_1" -d 
    '{"indices":["index1","index2","index3"],"ignore_unavailable":true,
    "include_global_state": false,}'
    
  5. Восстановить

    curl -XPOST "http://xx.xx.xx.xx:9200/_snapshot/es_snap/snapshot_1/_restore" -d 
    '{"indices":["index1","index2"],"ignore_unavailable":true,
    "include_global_state": false}'
    

Получил ту же ошибку, и я должен был убедиться, что один и тот же путь доступен для записи на всех узлах (как один и тот же пользователь). Я смонтировал каталог непосредственно на одном из узлов и использовал nfs для монтирования на других. Для устранения неполадок perms отредактируйте /etc / passwd и измените оболочку входа для elasticsearch с /sbin/nolgin на /bin/bash, а затем запустите "su-elasticsearch". Затем попробуйте записать файл в каталог. Вы должны сделать это на всех узлах.

Ваш запрос выглядит хорошо. Но есть ли у вас соответствующие разрешения на создание репо по адресу "/mount/backups/my_backup". Попробуйте выполнить команду curl в качестве пользователя sudo. Это стоит того, чтобы попробовать !

Причина, по которой я думаю, что это проблема с разрешениями, заключается в следующем в вашем журнале ошибок. вложенный: BlobStoreException[не удалось создать каталог в [/mount / backups / my_backup]];", "status": 500}