Table of Contents
Установка и настройка Elasticsearch в Ubuntu 20.04
Elasticsearch – это платформа для распределенного поиска и анализа данных в режиме реального времени. Она пользуется популярностью благодаря удобству в использовании, наличию мощных характеристик и возможности масштабирования.
Предварительные требования
Для работы с этим обучающим руководством вам потребуется следующее:
- Сервер Ubuntu 20.04 с 8 ГБ оперативной памяти и 2 процессорами, а также настроенный пользователь без прав root с привилегиями sudo.
- Установленный OpenJDK 11.
Устанавливаем OpenJDK 11
sudo apt-get install openjdk-11-jdk
В этом обучающем руководстве мы будем использовать минимальное количество процессоров и оперативной памяти, необходимое для работы с Elasticsearch. Обратите внимание, что требования сервера Elasticsearch к количеству процессоров, оперативной памяти и системе хранения данных зависят от ожидаемого объема журналов.
Установка и настройка Elasticsearch
Компоненты Elasticsearch отсутствуют в репозиториях пакетов Ubuntu по умолчанию. Однако их можно установить с помощью APT после добавления списка источников пакетов Elastic.
Для начала воспользуемся cURL, инструмент командной строки для передачи данных с помощью URL, для импорта открытого ключа Elasticsearch GPG в APT. Обратите внимание, что мы используем аргументы -fsSL для подавления всех текущих и возможных ошибок (кроме сбоя сервера), а также, чтобы разрешить cURL подать запрос на другой локации при переадресации.
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Затем добавим список источников Elastic в директорию sources.list.d
, где APT будет искать новые источники:
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 update
И установим Elasticsearch
sudo apt install elasticsearch
Настройка Elasticsearch
Для настройки Elasticsearch, изменим его основной файл конфигурации elasticsearch.yml
, где хранится большинство вариантов конфигурации. Этот файл находится в директории /etc/elasticsearch
<WRAP center round tip 90%>
Nota Bene! Файл конфигурации Elasticsearch представлен в формате YAML. Это означает, что нам нужно сохранить формат отступов. Не добавляйте никакие дополнительные пробелы при редактировании этого файла.
</WRAP>
Файл elasticsearch.yml
предоставляет варианты конфигурации для кластера, узла, пути, памяти, сети, обнаружения и шлюза. Большинство из этих вариантов уже настроены в файле, но их можно изменить в соответствии с потребностями. В нашем случае для демонстрации односерверной конфигурации мы будем регулировать настройки только для хоста сети.
Elasticsearch прослушивает весь трафик порта 9200. По желанию можно ограничить внешний доступ к экземпляру Elasticsearch, чтобы посторонние не смогли прочесть данные или отключить кластер Elasticsearch через REST API. Для ограничения доступа и повышения безопасности найдите строку с указанием network.host
, уберите с нее значок комментария и замените значение на localhost, чтобы она выглядела следующим образом:
network.host: localhost
Был указан localhost, и теперь Elasticsearch прослушивает все интерфейсы и связанные IP-адреса. Если нужно, чтобы прослушивался только конкретный интерфейс, то следует указать его IP-адрес вместо localhost.
Это минимальные настройки, с которыми можно начинать использовать Elasticsearch. Теперь запустим Elasticsearch в первый раз. Запуск Elasticsearch может занять некоторое время.
sudo systemctl start elasticsearch
Тестирование Elasticsearch
Сейчас система Elasticsearch должна работать на порту 9200. Протестировать ее с помощью cURL и запроса GET.
curl -X GET 'http://localhost:9200'
Должны получить следующий ответ:
{ "name" : "graylog", "cluster_name" : "elasticsearch", "cluster_uuid" : "j0zLk5V8TtGhVXMYBMytAA", "version" : { "number" : "7.15.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "79d65f6e357953a5b3cbcc5e2c7c21073d89aa29", "build_date" : "2021-09-16T03:05:29.143308416Z", "build_snapshot" : false, "lucene_version" : "8.9.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Для более тщательной проверки Elasticsearch выполните следующую команду:
curl -XGET 'http://localhost:9200/_nodes?pretty'
В выводе команды, указанной выше, можно проверить все текущие настройки для узла, кластера, путей приложения, модулей и т. д