- Elasticsearch Настройка — 2.1 Установка
- Установка Elasticsearch
- Установка Java
- Запуск и остановка Elasticsearch
- Mac OS X
- Запуск и остановка Elasticsearch
- Пакеты DEB и RPM
- Пакет Debian
- Пакет RPM
- Запуск и остановка Elasticsearch
- Примеры файлов конфигурации
- Заметка
- Проверка Elasticsearch
- Как установить ElasticSearch 7
- Установка Elasticsearch на Linux/Ubuntu
- Настройка Elasticsearch
- Удалённый доступ
- Установка ElasticSearch в Docker
- Установка Elasticsearch в Vagrant
- Установка Elasticsearch на Windows 10
- Резюме
- Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql
Elasticsearch Настройка — 2.1 Установка
Установка Elasticsearch
В этом разделе мы будем устанавливать Elasticsearch на локальном компьютере в виде одноузлового кластера. Как только мы начнем работу с кластером, мы научимся использовать API-интерфейсы для проверки работоспособности узлов. Разберем как установить в Windows, Mac OS и Debian / RPM .
Установка Java
Elasticsearch — это Java-приложение. Прежде чем мы сможем запустить Elasticsearch, мы должны убедиться, что у нас установлена Java. Вам требуется Java Runtime Environment ( JRE ). Elasticsearch рекомендует Oracle Java Development Kit ( JDK ) 1.8.0_73 или выше. Вы можете проверить версию Java, установленную на вашем компьютере, выполнив следующую команду в командной строке или терминале:
Если у вас нет установленной Java или у вас установлена более старая версия, следуйте инструкциям по следующей ссылке:
Пожалуйста, примите лицензионное соглашение и загрузите JDK в выборе формата вашего пакета. После того, как вы установили Java, проверьте версию Java с помощью этой java -version команды. Так же убедитесь что JAVA_HOME переменная среды установлена:
Давайте загрузим последнюю версию Elasticsearch в zip формате пакета с https://www.elastic.co/downloads/elasticsearch .
Elasticsearch 5.5.1 zip можно загрузить с тут:
После того, как вы загрузили ZIP-архив, распакуйте ZIP-архив в выбранный вами каталог.
Запуск и остановка Elasticsearch
Вы можете запустить Elasticsearch, используя двоичные скрипты в папке bin . Чтобы запустить экземпляр Elasticsearch, выполните следующие команды:
Если Elasticsearch запущен успешно, вы увидите started сообщение, показанное ниже:
Как видно из предыдущего сообщения журнала, работает Elasticsearch http://127.0.0.1:9200 . Мы только начали использовать Elasticsearch в качестве одноузлового кластера.
Так как вы запустили его из командной строки, вы можете просто прервать процесс, нажав Ctrl + C . Если все хорошо, вы увидите сообщение в консоли, аналогичное показанному ниже:
Mac OS X
Давайте загрузим последнюю версию Elasticsearch в tar.gz формате, выполнив следующую команду в вашем терминале:
После загрузки распакуйте в каталок по вашему усмотрению.
Запуск и остановка Elasticsearch
Вы можете запустить Elasticsearch, используя двоичные скрипты в папке bin . Чтобы запустить экземпляр Elasticsearch, выполните следующие команды:
Если Elasticsearch запущен успешно, вы увидите примерно тоже что в низу:
Как видно из сообщения Elasticsearch запущен по адресу http://127.0.0.1:9200 . Мы только начали использовать Elasticsearch в качестве одноузлового кластера.
Остановить можно нажав Ctrl + C . Если все хорошо вы увидите примерно следующее:
Пакеты DEB и RPM
Вы также можете установить Elasticsearch с помощью пакета Debian или RPM ( Red Hat Package Manager ). При установке с использованием пакетов DEB или RPM Elasticsearch будет установлен в /usr/share/elasticsearch . Обратите внимание, что структура каталогов отличается при установке с использованием пакета Debian или RPM по сравнению с файлом zip / tar.
Пакет Debian
Для операционной системы на базе Debian, такой как Ubuntu, вы можете загрузить пакет Debian непосредственно с веб-сайта Elasticsearch, используя следующую ссылку:
При использовании пакета Debian Elasticsearch будет установлен как служба. Про запуск и остановку будет чуть ниже.
Пакет RPM
Для операционных систем на базе RPM, таких как Centos и Red Hat, вы можете загрузить пакет RPM непосредственно с веб-сайта Elasticsearch, используя следующую ссылку:
После загрузки пакета вы можете установить Elasticsearch, используя следующую команду:
При использовании пакета RPM Elasticsearch будет установлен как служба.
Запуск и остановка Elasticsearch
Если вы устанавливаете Elasticsearch с помощью пакета Debian или RPM, вы можете запустить / остановить Elasticsearch с помощью команд управления сервисами.
Вы можете проверить log файл, чтобы убедиться, что Elasticsearch запущен / остановлен успешно.
Примеры файлов конфигурации
Если вы устанавливаете Elasticsearch, используя zip или .tar.gz , elasticsearch.yml файл находится в каталоге в основной папке elasticsearch-5.5.1 . Если вы устанавливаете Elasticsearch с использованием DEB / RPM, он по умолчанию находится в папке /etc/elasticsearch .
Если у вас пока только один узел, вам нужно установить имя кластера, имя узла и IP-адрес, к которому должен привязываться Elasticsearch. Если IP-адрес не указан, он будет привязан к localhost:
Если вы хотите настроить несколько узлов, наряду с вышеупомянутыми свойствами, вы также должны указать IP-адрес других узлов в кластере, чтобы они могли обнаружить друг друга.
Ниже приведена конфигурация для node1 :
Ниже приведена конфигурация для node2 :
Заметка
Обратите внимание, что имя кластера должно быть одинаковым для всех узлов в кластере. Внутренне узлы обмениваются данными друг с другом с использованием транспортного протокола, а номер порта для транспортного протокола — 9300.
Проверка Elasticsearch
По умолчанию Elasticsearch работает на 9200 HTTP-порту. После запуска Elasticsearch вы можете проверить его, забив в свой любимый браузер http://127.0.0.1:9200 . Вы должны увидеть ответ JSON, подобный следующему:
Из ответа JSON вы можете видеть, что имя узла A_TmR2p кластера elasticsearch , наряду с несколькими другими деталями. По умолчанию Elasticsearch назначает случайное имя ( A_TmR2p ) узлу при запуске.
Как установить ElasticSearch 7
Ввиду того, что в будущем я планирую выпустить несколько статьей, основанных на работе с ElasticSearch, в этой статье я решил показать самые распространённые варианты его установки. В этой статье собраны все варианты установки Elasticsearch 7: на Ubuntu 18.10, Windows 10, Docker, Vagrant Homestead. Многие ищут статьи на тему быстрого старта по работе с ES, однако, любой старт начинается именно с установки^^.
Установка Elasticsearch на Linux/Ubuntu
Для того, чтобы установить Elasticsearch на Ubuntu, нужно открыть страницу их офф.документации.
При установке я использую Ubuntu 18.10, но, даже, если у вас другая версия, то процесс не будет иметь кардинальных отличий.
Для работы Elasticsearch на Linux, нужно сначала установить Java 8 версии, или более новую. Для этого, выполните код:
И получите окно вывод примерно с таким содержимым:
После чего, приступим к установке самого Elasticsearch.
Сначала нужно выполнить:
В результате чего, эта команда должна вернуть ответ: OK .
Этой командой мы установим ElasticSearch 7 версии. Если вам нужна какая-то конкретная версия, или более старая версия, то измените версию на нужную, вместо 7.x
После чего, выполним следующие команды:
После выполнения этих команд, Elasticsearch будет установлен. Однако, он не запустится сразу после установки, запустить его придётся вручную, выполнив:
И теперь, для того, чтобы удостовериться, что Elasticsearch успешно установлен, можем отправить HTTP-запрос на 9200 порт, на котором висит ES. Запрос отправим с помощью curl:
И вы должны увидеть что-то вроде этого:
Сам запуск Elastsearch займёт где-то 5-10 секунд. Потому, если вы увидете сообщение curl: (7) Failed to connect to localhost port 9200: Connection refused , подождите несколько секунд, и повторите свой запрос.
Если эта ошибка не пропадает, то это означает, что сервис не удаётся запустить. Вероятно, это из-за недостатка оперативной памяти. Для того, чтобы посмотреть подробный лог Elasticsearch, можете выполнить команду: sudo journalctl -u elasticsearch
Но, уверен, что у вас всё запустилось, мои поздравления!
Настройка Elasticsearch
Если вам интересно, в какой директории Elasticsearch хранит данные, то они находятся в директории /var/lib/elasticsearch , конфигурационные данные в /etc/elasticsearch , а настройки Java для Elasticsearch расположены в файле /etc/default/elasticsearch .
По умолчанию Elasticsearch настроен только для локального доступа, для доступа только изнутри текущей системы, в которую он установлен. Вы не можете достучаться к нему удалённо. И, если клиент подключаемый к Elasticsearch запущен на том же сервере, что и сам Elasticsearch, вам не нужно менять конфигурационные файлы. Если это не так, то есть опция настройки удалённого доступа к Elasticsearch.
Удалённый доступ
Elasticsearch не имеет встроенной системы аутентификации, потому, если вы разрешите удалённый доступ, то получить информацию от Elasticsearch может кто угодно, кто имеет возможность выполнять HTTP-запросы к API. Если вы хотите разрешить удалённый доступ к серверу Elasticsearch, вам нужно настроить файрвол, и разрешить доступ к 9200 порту Elasticsearch сервера только для доверенных клиентов.
В Ubuntu стандартно установлено ПО по настройке файрвол UFW. По умолчанию, UFW установлен в систему, но не включён. Но, перед его включением, добавим одно правило для разрешения входящего трафика по SSH:
Теперь, разрешим удалённый доступ для доверенного IP адреса:
Вместо x.x.x.x напишите ваш реальный IP адрес. В моём случае, команда будет иметь вид sudo ufw allow from 134.249.138.171 to any port 9200
Если вы занимаетесь локальной разработкой, то можете не ограничивать доступ по конкретному IP, для этого, вместо предыдущей команды нужно выполнить: sudo ufw allow to any port 9200
Теперь можно включать UFW:
И последнее, проверим статус файрвола:
Где мы должны увидеть добавленное правило:
Теперь, когда файрвол настроен должным образом, следующим шагом будет редактирование конфигов Elasticsearch , и разрешение внешних подключения к Elasticsearch.
Для этого, откроем конфигурационный файл elasticsearch.yml :
Где нужно найти строку, которая содержит network.host , её нужно раскомментировать, и изменить значение на 0.0.0.0 , раскомментировать http.port и добавить некоторые параметры, чтобы конфигурация имела вид:
Для того, чтобы выйти из редактирования файла в редакторе nano , нужно нажать CTRL+C , напечатав символ согласия y .
Теперь, перезагрузим Elastisearch, чтобы изменения вступили в силу:
И это всё. Теперь у вас есть возможность подключения к Elastisearch удалённо.
И теперь, после всего проделанного, вы знаете, как настроить удалённое подключение к Elasticsearch. Теперь вы можете подключаться из любого места, и любого HTTP-клиента.
В этом пункте было показано, как установить Elasticsearch в Ubuntu 18.10. Теперь вы можете посетить офф.документацию для начала работы и более детального изучения основ работы с Elasticsearch.
Установка ElasticSearch в Docker
Если вы ещё не знакомы к Докером, то на сайте есть отличная статья по работе с ним.
Для начала, нужно скачать образ с предустановленным Elasticsearch:
Теперь, когда скачивание дойдёт до конца, его можно запустить командой:
В результате чего, Elasticsearch станет доступен по адресу localhost:9200.
Установка Elasticsearch в Vagrant
Для того, чтобы установить Elasticsearch в Vagrant (Homestead) нужно добавить опцию elasticsearch в файле Homestead.yaml , указав нужную поддерживаемую версию. При создании виртуальной машины, по умолчанию, будет создан кластер под названием homestead .
Вы не должны предоставлять Elasticsearch больше, чем половина вашей доступной оперативной памяти, потому, убедитесь, что ваш Homestead настроен в соответствии этому замечанию.
Для того, чтобы прокинуть порты для удалённого доступа, нужно дополнить Homestead.yaml:
И, аналогично, как описывалось в секции настройки удалённого доступа, нужно прописать в файл /etc/elasticsearch/elasticsearch.yml новые параметры, разрешив удалённый доступ.
Будьте внимательны, и не оставляйте дублирующих параметров. Т.е., удалите старые, по-умолчанию заданные параметры transport.host , http.port , и т.д.
После чего, удалённый доступ заработает. Учтите, что в этом случае, доступ к Elasticsearch будет осуществляться не по адресу localhost:9200, а по параметру IP, указанному в Homestead.yml. В моём случае, это 192.168.10.10:9200.
Установка Elasticsearch на Windows 10
Для установки Elasticsearch на Windows, перейдите на страницу и выберите нужную версия для скачивания (я предпочитаю *.msi версию).
Используя графический интерфейс, установите настройки: директории для хранения данных, логов, и конфигов, или же, используйте настройки по-умолчанию.
Потом, выберите, установка «as a service» или установка с ручной настройкой, если нужно. Когда установлено «as a service», вы можете так же настроить Windows аккаунт для запуска службы, а так же настроить поведение при старте вашей ОС (запускать ли автоматически и т.д.).
Основные системные настройки производятся на последней странице: указывается имя кластера, имя, размер ОЗУ и настройки сети.
На следующей странице выбора плагинов можно ничего не выбирать, осталось подтвердить начало установки, нажав на кнопку Install .
В конце установки, на вашем компьютере запустится служба Elasticsearch, и убедиться в этом можно, перейдя по адресу localhost:9200.
Резюме
В этой статье я показал, как устанавливать Elasticsearch 7 под разные операционные системы: Ubuntu и Windows. Так же, была рассмотрена установка, запуск и настройка Elasticsearch на Docker и Homestead Vagrant. Это была первая статья по работе с Elasticsearch, для того, чтобы в будущем показать подробные примеры по работе с ним.
Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql
Get the latest posts delivered right to your inbox