Проблема с установкой Elastic Enterprise / App Search в ubuntu
Я запускаю бродячий ящик, который запускает ubuntu внутри vm (с использованием окна Laravel Homestead)
Я пытаюсь установить продукт Elastic для поиска приложений.
Первое требование - установить эластичный поиск, что я делал несколько раз. Я сделал следующие шаги:https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
Я использую конфигурацию systemd:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
Я запускаю curl localhost:9200, и все работает.
Затем я пытаюсь установить эластичный поиск приложений. https://www.elastic.co/guide/en/app-search/current/installation.html. У которого нет инструкций для систем debian. Но у него есть установочный файл.deb. Я загрузил файл и поместил его в маршрут своего проекта.
Я запустил dpkg -i для файла и, похоже, он установился. Когда я запускаю команду, чтобы проверить расположение файла, она показывает следующее:
dpkg -L enterprise-search
/.
/etc
/etc/init.d
/etc/init.d/enterprise-search
/var
/var/log
/var/log/enterprise-search
/usr
/usr/share
/usr/share/enterprise-search
/usr/share/enterprise-search/README.md
/usr/share/enterprise-search/bin
/usr/share/enterprise-search/bin/vendor
/usr/share/enterprise-search/bin/vendor/filebeat
/usr/share/enterprise-search/bin/vendor/filebeat/filebeat-linux-x86_64
/usr/share/enterprise-search/bin/enterprise-search
/usr/share/enterprise-search/filebeat
/usr/share/enterprise-search/filebeat/ecs-template.json
/usr/share/enterprise-search/filebeat/filebeat-ecs.yml
/usr/share/enterprise-search/lib
/usr/share/enterprise-search/lib/require_java_version.sh
/usr/share/enterprise-search/lib/enterprise-search.war
/usr/share/enterprise-search/jetty
/usr/share/enterprise-search/jetty/webserver-ssl.xml
/usr/share/enterprise-search/jetty/webserver-ssl-with-redirect.xml
/usr/share/enterprise-search/jetty/webserver.xml
/usr/share/enterprise-search/LICENSE
/usr/share/enterprise-search/config
/usr/share/enterprise-search/config/env.sh
/usr/share/enterprise-search/config/enterprise-search.yml
/usr/share/enterprise-search/NOTICE.txt
/usr/share/doc
/usr/share/doc/enterprise-search
/usr/share/doc/enterprise-search/changelog.gz
/usr/lib
/usr/lib/systemd
/usr/lib/systemd/system
/usr/lib/systemd/system/enterprise-search.service
Я не совсем уверен, что это правильное место? Я хочу, чтобы он находился в том же месте, что и моя установка elasticsearch, но на самом деле я не уверен. Я выполнил все следующие шаги для процесса установки и запустил:./usr/share/enterprise-search/bin/elasticsearch
Но это дает мне ошибку:
Could not find java in PATH
Меня это очень смущает, так как основная установка elasticsearch работает, и для нее также нужна java? Также я хочу, чтобы он работал с автоматическим включением systemd, и я хочу, чтобы он был доступен с запуском / остановкой поисковой системы предприятия. Не знаю, как с этим справиться.
1 ответ
Похоже, это пакет Debian, поэтому его можно установить на ubuntu, но некоторые вещи могут отличаться. Я бы сказал, что вы можете:
- Просто переключитесь на использование debian VM (здесь вы можете получить vagrant для одного: https://app.vagrantup.com/debian/boxes/stretch64)
- Отлаживать. Из того, что я вижу, этот пакет запускает elasticsearch-env до того, как запустится сам. Java выглядит так:
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
if [ ! -x "$JAVA" ]; then
echo "could not find java in $JAVA_TYPE at $JAVA" >&2
exit 1
fi
Поэтому я бы посоветовал установить JAVA_HOME в стартовом скрипте (или перед запуском двоичного файла) и посмотреть, поможет ли это.
Я решил это, добавив другую версию Java, Elastichsearch имеет встроенную установку java, а не отдельную, поэтому установка поиска приложений не может достичь этой версии. Чувствует себя очень грязным, но все заработало!