Elasti c Проблема с установкой поиска Enterprise / App на ubuntu - PullRequest
2 голосов
/ 11 июля 2020

Я использую бродячий ящик, который запускает ubuntu внутри виртуальной машины (используя Laravel Homestead box)

Я пытаюсь установить продукт Elasti c для поиска приложений.

Первое требование - установить поиск Elasti c, что я делал несколько раз. Я сделал следующие шаги: 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, и все работает.

Затем я пытаюсь установить поиск приложений elasti c. https://www.elastic.co/guide/en/app-search/current/installation.html#installation самоуправляемый . У которого нет инструкций для систем 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

I ' m это очень смущает, так как основная установка elasticsearch работает и для этого также требуется java? Также я хочу, чтобы он работал с автоматическим включением systemd, и я хочу, чтобы он был доступен с запуском / остановкой поисковой системы предприятия. Не знаю, как с этим справиться.

1 Ответ

1 голос
/ 17 июля 2020

Похоже, это пакет Debian, поэтому его можно установить на ubuntu, но некоторые вещи могут отличаться. Я бы сказал, что вы можете:

  1. Просто переключитесь на использование debian VM для этого (здесь вы можете получить vagrant для одного: https://app.vagrantup.com/debian/boxes/stretch64)
  2. Debug. Из того, что я вижу, этот пакет запускает 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 в стартовом скрипте (или перед запуском двоичного файла) и посмотреть, поможет ли это.

...