Elasticsearch Logo

В тази статия можете да намерите инструкции за инсталиране и използване на Elasticsearch версия 7 (софтуер за търсене/търсачка) чрез WebApps платформата. Версия 7 се използва от популярни приложения като Magento. За някои хостинг планове, Elasticsearch може да се инсталира директно през раздел "App Installer" на Контролния панел. Ако не го откривате в раздел "App Installer", тогава можете да го инсталирате ръчно, следвайки инструкциите от тази статия.

Важно: Elasticsearch използва много ресурси, така че дори и да го инсталирате ръчно, той може да не функционира правилно с някои планове поради недостиг на налични ресурси.

Подготовка

Преди да инсталирате Elasticsearch на Вашия акаунт, трябва да проверите и настроите акаунта си за следните неща:

  • Трябва да имате раздел "Уеб приложения" във Вашия хостинг Контролен панел. Ако нямате раздел "Уеб приложения" във Вашия Контролен панел, тогава инструкциите в тази статия не са валидни за Вашия акаунт и сървър. Можете да ни пишете за повече информация и съдействие.

  • "SSH достъп" и "Мрежови инструменти" трябва да са активирани за Вашия акаунт през раздел "SSH Достъп" на Контролния панел.

Инсталиране

За да инсталирате Elasticsearch, се свържете към Вашия акаунт чрез SSH и следвайте тези стъпки:

  1. Създайте директорията, в която желаете да инсталирате файловете на Elasticsearch (напр. "~/private/elastic") и влезте в тази директория, като използвате следните команди:

    mkdir /home/$USER/private/elastic
    cd /home/$USER/private/elastic
  2. Изтеглете на Вашия акаунт най-актуалния Linux x86_64 пакет за версия 7 на Elasticsearch от официалната страница. В момента на писане на тази статия, последната версия е 7.17.21. Линкът за изтегляне на тази версия е https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.21-linux-x86_64.tar.gz, така че можете да я изтеглите и разархивирате във Вашата директория за Elasticsearch с тези команди:

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.21-linux-x86_64.tar.gz
    tar zxf elasticsearch-7.17.21-linux-x86_64.tar.gz --strip-components=1
    rm elasticsearch-7.17.21-linux-x86_64.tar.gz

    Важно: Уверете се, че използвате линка за последната версия на Elasticsearch за Linux в горните команди.

  3. Създайте файл, който да стартира Elasticsearch приложението, при стартиране на WebApps проекта и му добавете права за изпълнение чрез следните команди:

    cat <<ELASTIC_START > /home/$USER/private/elastic/start.sh
    #!/bin/bash
    cd /home/$USER/private/elastic
    export ES_JAVA_OPTS="-Xms128m -Xmx128m"
    exec ./bin/elasticsearch
    ELASTIC_START
    chmod +x /home/$USER/private/elastic/start.sh
  4. Създайте WebApps проект с име "elastic" за Elasticsearch приложението, използвайки следната команда:

    sureapp project create \
        --engine "custom" \
        --engine-version "-" \
        --release-dir "/home/$USER/private/elastic/" \
        --start-cmd "sh /home/$USER/private/elastic/start.sh" \
        elastic
  5. Създайте втори WebApps проект с име "portholder" със следната команда, който ще запази втори (допълнителен) порт за Elasticsearch приложението, което ще добавим по-късно в неговите настройки:

    sureapp project create \
        --engine "custom" \
        --engine-version "-" \
        --release-dir "/home/$USER/private/" \
        portholder
  6. Изберете страницата, на която да е достъпно Elasticsearch приложението чрез раздел "Уеб приложения" на хостинг Контролния панел. Можете да направите това, като кликнете на бутона с иконка на молив (edit.gif) до проекта "elastic" и изберете домейна и поддомейна чрез съответните падащи менюта в показалия се екран.

    Elasticsearch WebApp.jpg

  7. Последната стъпка от подготовката на Elasticsearch приложението е да се добавят в настройките му двата порта на създадените WebApps проекти. Можете да направите това с изпълнение на следните команди:

    ELASTIC_PORT=$(sureapp project list | grep -E "/home/$USER/private/elastic"| awk '{print $NF}')
    TRANSPORT_PORT=$(sureapp project list | grep -E 'portholder +'| awk '{print $NF}')
    sed -i "s~^#http.port: 9200~http.port: $ELASTIC_PORT\ntransport.port: $TRANSPORT_PORT-$TRANSPORT_PORT~g" /home/$USER/private/elastic/config/elasticsearch.yml

    Ако желаете да направите тези промени ръчно, ще трябва да видите портовете на "elastic" и "portholder" проектите в раздел "Уеб приложения" на хостинг Контролния панел. След това заместете следния ред с код във файла "config/elasticsearch.yml" на Elasticsearch проекта (напр. "~/private/elastic/config/elasticsearch.yml"):

    #http.port: 9200
    със следните два реда код, като в тях заместите "ELASTIC_PORT" с порта на "elastic" проекта, а "TRANSPORT_PORT" с порта на "portholder" проекта:

    http.port: ELASTIC_PORT
    transport.port: TRANSPORT_PORT-TRANSPORT_PORT

    В дадения пример "elastic" проекта е с порт 10095, а порта на "portholder" проекта е 8822, така че добавените два реда код ще изглеждат така:


    http.port: 10095
    transport.port: 8822-8822

    Можете да направите тези ръчни промени във файла чрез редактор по Ваш избор (напр. раздел "Файлове" на хостинг Контролния панел).

  8. Стартирайте "elastic" проекта чрез следната SSH команда или чрез бутона с иконка на червен кръг (Enable app) до него в раздел "Уеб приложения" на хостинг Контролния панел.

    sureapp service manage --enable elastic

Изчакайте няколко минути, за да се стратира приложението. След това можете да проверите дали Elasticsearch работи правилно, отваряйки страницата, която сте избрали в стъпка №6. Можете да използвате и следната "curl" команда, за да достъпите проекта директно на порта на Elasticsearch приложението (напр. 10095):

curl localhost:10095

Трябва да видите подобен на следния резултат:

{
  "name" : "your_server.com",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "kOp_Sfh1TLWtMqodS3J97A",
  "version" : {
    "number" : "7.17.21",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d38e4b028f4a9784bb74de339ac1b877e2dbea6f",
    "build_date" : "2024-04-26T04:36:26.745220156Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.3",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}