Как узнать версию elasticsearch linux

Обновлено: 02.07.2024

Elasticsearch – это платформа для распределенного поиска и анализа данных в режиме реального времени; она пользуется большой популярностью благодаря своей простоте, масштабируемости и большому количеству полезных функций.

Этот мануал поможет установить и настроить Elasticsearch на сервере Ubuntu 18.04 и начать работу с ним.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу. Прежде чем приступить к установке Elasticsearch, перейдите в сессию пользователя с доступом к sudo.
  • 4GB RAM и 2 CPU минимум.
  • OpenJDK 11 (инструкции по установке можно найти в мануале Установка Java с помощью apt в Ubuntu 18.04).

В этом мануале мы будем работать с минимальным количеством RAM и CPU, необходимым для запуска Elasticsearch. Обратите внимание, объем ресурсов, которые потребуются Elasticsearch, зависит от объема данных, которые вы хотите обрабатывать с его помощью.

1: Установка Elasticsearch

Пакетов Elasticsearch нет в стандартном репозитории Ubuntu. Чтобы установить этот пакет с помощью APT, можно добавить исходник пакета.

Все пакеты подписаны с помощью ключа Elasticsearch, чтобы защитить вашу систему от подделки. Пакеты, прошедшие проверку подлинности с помощью ключа, менеджер пакетов будет считать надежными. Давайте импортируем открытый GPG ключ Elasticsearch и добавим исходник пакета Elastic для установки Elasticsearch.

Теперь добавьте исходник 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

Обновите список пакетов, чтоб APT нашел исходник Elastic.

sudo apt update

Чтобы установить Elasticsearch, введите:

sudo apt install elasticsearch

Теперь Elasticsearch установлен, можно приступать к его настройке.

2: Настройка Elasticsearch

Чтобы настроить Elasticsearch, нужно отредактировать его основной файл конфигурации elasticsearch.yml, в котором хранится большинство его параметров. Этот файл находится в каталоге /etc/elasticsearch.

Используйте любой удобный текстовый редактор, чтобы открыть конфигурационный файл Elasticsearch.

sudo nano /etc/elasticsearch/elasticsearch.yml

Примечание: Конфигурационный файл Elasticsearch использует формат YAML. Проверьте отступы при редактировании этого файла.

Файл elasticsearch.yml предоставляет параметры для настройки кластера, ноды, путей, памяти, сети, обнаружения и шлюза. Большинство из этих параметров предварительно сконфигурированы в файле, но вы можете изменить их настройки в соответствии со своими потребностями. Поскольку мы используем один сервер, мы настроим только параметры сетевого хоста.

Elasticsearch прослушивает весь трафик через порт 9200. Рекомендуем ограничить внешний доступ к вашему экземпляру Elasticsearch, чтобы посторонние не могли читать ваши данные или повлиять на работу кластера Elasticsearch через REST API. Чтобы ограничить доступ и таким образом повысить безопасность, найдите строку network.host, раскомментируйте ее и замените ее значение на localhost:

Мы указали значение localhost, чтобы Elasticsearch прослушивал все интерфейсы и связанные IP-адреса. Если вы хотите, чтобы он прослушивал только определенный интерфейс, вместо localhost вы можете указать его IP. Сохраните и закройте файл elasticsearch.yml. Если вы используете nano, нажмите Ctrl + X, затем Y и Enter.

Это минимальные настройки, с которых вы можете начать свою работу с Elasticsearch. Теперь можно запустить Elasticsearch.

Запустите сервис Elasticsearch с помощью systemctl. Дайте Elasticsearch несколько минут, чтобы запуститься. В противном случае вы можете получить ошибку подключения.

sudo systemctl start elasticsearch

Затем выполните следующую команду, чтобы добавить Elasticsearch в автозагрузку:

sudo systemctl enable elasticsearch

Теперь Elasticsearch будет включаться при запуске сервера.

3: Защита Elasticsearch

sudo ufw allow from 198.51.100.0 to any port 9200

После этого вы можете включить UFW с помощью команды:

sudo ufw enable

Проверьте состояние UFW с помощью следующей команды:

sudo ufw status

Если вы правильно настроили брандмауэр, вывод должен выглядеть следующим образом:

Status: active
To Action From
-- ------ ----
9200 ALLOW 198.51.100.0
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)

Теперь UFW защищает порт Elasticsearch 9200 от посторонних.

Для дополнительной защиты Elasticsearch предлагает платный плагин Shield.

4: Тестирование Elasticsearch

Сейчас Elasticsearch запущен по порту 9200. Протестировать работу программы можно с помощью cURL и GET-запроса.

Вы должны увидеть такой ответ:

"node.name" : "My First Node",
"cluster.name" : "mycluster1",
"version" : "number" : "2.3.1",
"build_hash" : "bd980929010aef404e7cb0843e61d0665269fc39",
"build_timestamp" : "2020-04-04T12:25:05Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
>,
"tagline" : "You Know, for Search"
>

Если вы видите такой ответ, Elasticsearch работает правильно. Если нет, убедитесь, что вы правильно выполнили все инструкции по установке и запуску Elasticsearch.

Для более тщательной проверки работы Elasticsearch выполните следующую команду:

В выводе вышеприведенной команды вы можете проверить все текущие настройки ноды, кластера, путей к приложениям, модулей и многие другие параметры.

5: Начало работы с Elasticsearch

Чтобы начать использовать Elasticsearch, сначала нужно добавить какие-нибудь данные. Elasticsearch использует RESTful API, который отвечает на обычные команды CRUD (create, read, update и delete). Работать с ним можно с помощью команды cURL.

Вы можете добавить свою первую запись с помощью такой команды:

curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' -d '< "message": "Hello World!" >'

Вы должны получить такой результат:

  • tutorial – индекс данных Elasticsearch.
  • Helloworld – тип.
  • 1 – ID записи в индексе и типе.

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' -d '< "message": "Hello World!" >'

Вы получите такой результат:

Изменить данные в существующей записи можно при помощи запроса PUT.

curl -X PUT -H "Content-Type: application/json" 'localhost:9200/tutorial/helloworld/1?pretty' -d '
"message": "Hello, People!"
>'

Elasticsearch сообщит, что запрос выполнен успешно:

"_index" : "tutorial",
"_type" : "helloworld",
"_id" : "1",
"_version" : 2,
"_shards" : "total" : 2,
"successful" : 1,
"failed" : 0
>,
"created" : false
>

Возможно, вы заметили дополнительный аргумент pretty в приведенном выше запросе. Он обеспечивает удобочитаемый формат, благодаря чему вы можете записать каждое поле данных в новую строку. С помощью pretty вы также можете улучшить формат результатов при извлечении данных:

Теперь вывод будет удобно отформатирован:

"_index" : "tutorial",
"_type" : "helloworld",
"_id" : "1",
"_version" : 2,
"found" : true,
"_source" : "message" : "Hello, People!"
>
>

Теперь вы знакомы с базовыми операциями Elasticsearch. Чтобы узнать о других командах, обратитесь к документации.

Заключение

Вы установили и настроили Elasticsearch, а также ознакомились с базовыми командами. С первых своих версий Elasticsearch поддерживает три дополнительных инструмента – Logstash, Kabana и Beats – которые можно использовать вместе с Elasticsearch как часть Elastic Stack. Такой стек позволяет искать, анализировать и визуализировать логи из любых источников и в любом формате. Эта практика называется логированием.

В настоящее время я получаю следующие предупреждения:

Требуется обновление. Ваша версия Elasticsearch слишком старая. Для Kibana требуется Elasticsearch 0.90.9 или выше.

Может ли кто-нибудь сказать мне, есть ли способ найти точную установленную версию ELS?

Где числовое поле обозначает версию elasticsearch . Здесь elasticsearch версия 2.3.4

В большинстве случаев, за исключением DEV, ElasticSearch не будет находиться на том же узле, что и Kibana, по ряду причин. Поэтому, чтобы получить информацию о вашем ElasticSearch из Kibana, вы должны выбрать вкладку «Инструменты разработчика» слева и в консоли ввести команду: GET /

Чтобы проверить версию вашей беговой кибаны, попробуйте следующее:

Шаг 1. Запустите службу Kibana.

Шаг 2. Откройте браузер и введите строку ниже,

Шаг 3. Зайдите в настройки-> О программе

Вы можете проверить версию ElasticSearch с помощью следующей команды. Он также возвращает некоторую другую информацию:

curl -XGET 'localhost: 9200'

Здесь вы можете увидеть номер версии: 2.3.4

Обычно Kibana устанавливается в / opt / logstash / bin / kibana . Итак, вы можете получить версию кибаны следующим образом

Если вы вошли в свою Kibana, вы можете щелкнуть вкладку Management , и там будет показана ваша версия Kibana. Кроме того, вы можете нажать на маленький значок в виде трубки , и это покажет номер версии.

Если вы установили x-pack для защиты elasticsearch, запрос должен содержать действительные учетные данные.

Фактически, если безопасность включена, все последующие запросы должны следовать одному и тому же шаблону (должны быть предоставлены встроенные учетные данные).

Вы можете попробовать это, после запуска службы elasticsearch Введите строку ниже в своем браузере.

Я хотел бы добавить то, что не упоминается в ответах выше.

На консоли разработчика kibana нажмите следующую команду:

Это похоже на доступ к localhost:9200 из браузера.

Надеюсь, это кому-то поможет.

Перейдите в папку, в которую вы установили свою кибану если вы использовали yum для установки kibana , по умолчанию он будет размещен в следующем месте


Если у вас есть сервер данных, веб-сервер или веб-сайт, вы можете установить и настроить механизм Elasticsearch в своей системе для поиска параметров базы данных. Elasticsearch можно установить и настроить вместе с серверами и системами Linux для сортировки данных, улучшения результатов поиска, фильтрации параметров поиска. По сути, вы можете использовать движок Elasticsearch на своем сервере, чтобы делать всевозможные вещи для создания надежной поисковой системы.

Как работает Elasticsearch

Elasticsearch работает с инструментом управления производительностью приложений (APM) для сбора данных индекса, метаданных и других полей данных из исходной базы данных. Это также обеспечивает поддержку API для повышения производительности.

Elasticsearch позволяет создавать круговую диаграмму и другие графические представления ваших данных. Это не бизнес-аналитика, но данные довольно хорошо анализируются. Вы можете найти использование ЦП и памяти, обнаружить отклонения и сохранить данные с помощью Elasticsearch в системе Linux.

Установите Elasticsearch в Linux

Elasticsearch написан на Java, поэтому вам потребуется установить Java в вашей системе Linux, чтобы установить Elasticsearch в вашей системе. Он позволяет интегрировать API, чтобы вы могли использовать его в различных веб-приложениях. Вы можете установить Elasticsearch в системе Linux и настроить его с существующим сервером Apache или Nginx. В этом посте мы увидим, как установить и использовать эластичный поиск в системе Linux.

1. Установите Elasticsearch в Ubuntu / Debian Linux.

Установка Elasticsearch в системе Linux на базе Debian не является сложной задачей; Это просто и понятно. Вам необходимо знать несколько основных команд терминала и иметь привилегию root в вашей системе. Следующие шаги помогут вам установить Elasticsearch на Ubuntu и другие машины Debian Linux.

Шаг 1. Установите Java для Elasticsearch

Elasticsearch требует Java для настройки функций веб-библиотеки в системе Linux. Если в вашей системе не установлена ​​Java, вы можете запустить следующую команду терминала в своей оболочке, чтобы установить Java.

sudo apt установить openjdk-11-jre-headless


Когда установка Java завершится, не забудьте проверить версию Java, чтобы убедиться, что она установлена ​​правильно.

Шаг 2. Добавьте ключ GPG для Elasticsearch в Debian Linux

Для простой установки Elasticsearch вам необходимо добавить GPG-ключ (Gnu Privacy Guard) Elasticsearch в вашу систему Linux. Выполните следующую команду cURL в оболочке терминала, чтобы добавить ключ GPG.

Для дистрибутивов Dedina Elasticsearch доступен в репозитории Linux. Вам необходимо добавить его в системный репозиторий. Вы можете запустить следующую команду echo, чтобы добавить Elasticsearch в репозиторий вашей системы.


Когда команда echo завершится, обновите системный репозиторий и проверьте, добавлен ли он в ваше программное обеспечение. Вы можете найти свой системный репозиторий на вкладке «Другое программное обеспечение» в инструменте «Программное обеспечение и обновления».

sudo apt-get update


Шаг 3. Установите Elasticsearch в Debian / Ubuntu

После добавления ключа GPG и обновления репозитория установка Elasticsearch теперь осуществляется в несколько кликов. Теперь вы можете запустить следующую команду aptitude в оболочке терминала с привилегиями root, чтобы установить Elasticsearch в вашей системе Debian.

sudo apt установить elasticsearch


2. Установите Elasticsearch на рабочую станцию ​​Fedora.

Если вы используете систему Fedora Linux, следующие шаги помогут вам установить Elasticsearch на свой компьютер. Я протестировал следующие шаги на своей рабочей станции Fedora; эти шаги также могут быть выполнены в других системах на базе Red Hat.

Шаг 1. Установите Java на рабочую станцию ​​Fedora.

Как я упоминал ранее, для установки Elasticsearch требуется Java; Сначала мы установим Java в нашу систему. Если в вашей системе уже установлена ​​Java, вы можете пропустить ее установку. Чтобы убедиться, установлена ​​ли Java или нет, вы можете запустить команду быстрой проверки версии в оболочке терминала.

Если вы не видите взамен какую-либо версию Java, теперь вы можете запустить следующую команду DNF, чтобы установить ее в Fedora Linux.

sudo dnf установить java-11-openjdk


Шаг 2. Добавьте Gnu Privacy Guard для Elasticsearch

На этом этапе нам нужно добавить GPG-ключ для Elasticsearch в нашу систему. Вы можете запустить следующую команду в оболочке терминала, чтобы добавить ключ GPG.


Теперь нам нужно создать файл репозитория для Elasticsearch в каталоге /etc/yum.repos.d. Вы можете открыть файловую систему и создать новый скрипт текстового документа и переименовать его в elasticsearch.repo. Если у вас есть проблемы с разрешениями при создании нового файла репозитория, вы можете запустить следующую команду chown для доступа к файлу. Не забудьте заменить слово ubuntupit своим именем пользователя.

sudo chown ubuntupit elasticsearch.repo


Затем вам нужно скопировать и вставить следующий скрипт в файл elasticsearch.repo, сохранить и выйти из файла.


Шаг 3. Установите Elasticsearch в Fedora

После установки Java и добавления ключа GPG мы теперь установим Elasticsearch в нашу Fedora Linux. Перед установкой вам может потребоваться выполнить быструю команду очистки DNF, чтобы очистить метаданные репозитория из вашей системы. Затем выполните следующую команду YUM в своей оболочке с правами root, чтобы установить Elasticsearch в вашей системе.

sudo dnf clean
sudo yum install elasticsearch

Если у вас возникли проблемы с его установкой в ​​вашей системе, вы можете запустить следующую команду DNF, чтобы избежать ошибок.

sudo dnf установить elasticsearch-oss


После завершения установки вы можете запустить следующие команды управления системой в оболочке терминала, чтобы запустить и включить Elasticsearch на вашем компьютере с Linux.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Если все пойдет правильно, вы можете запустить следующую команду управления системой, чтобы проверить состояние Elasticsearch на вашем компьютере. Взамен вы увидите имя службы, основной PID, статус активации, сведения о задаче и время выполнения ЦП.

sudo systemctl статус elasticsearch


Настроить Elasticsearch в Linux

После установки Elasticsearch на машину Linux вам может потребоваться настроить его с IP-адресом вашего сервера, чтобы загрузить его вместе с вашим сервером. Здесь я использую адрес localhost (127.0.0.1) для его загрузки. Вы можете запустить следующую команду в оболочке терминала, чтобы открыть сценарий конфигурации.

sudo nano /etc/elasticsearch/elasticsearch.yml

Когда скрипт откроется, найдите параметр network.host и замените существующее значение на адрес вашего активного сервера. После изменения IP-адреса сохраните и выйдите из файла.


Теперь запустите и включите Elasticsearch в вашей системе Linux, чтобы перезагрузить его на вашем компьютере.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch


Когда вы добавляете новый IP-адрес с новым портом, всегда полезно добавить его в брандмауэр. Надо сказать, что по умолчанию Elasticsearch использует сетевые порты 9200-9300. Здесь я буду использовать порт 9200 для настройки Elasticsearch с адресом localhost.

Поскольку Ubuntu использует инструмент UFW для настройки брандмауэра, вы можете запустить следующие команды UFW в оболочке терминала, чтобы разрешить порт 9200 в вашей системе.

sudo ufw разрешить с 127.0.0.1 на любой порт 9200
sudo ufw enable

Теперь вы можете проверить статус UFW в оболочке терминала, чтобы проверить, добавлен ли порт в сетевой системе.

sudo ufw статус


Если вы используете Fedora, Red Hat Linux и другие дистрибутивы Linux, вы используете команду Firewalld, чтобы включить порт 9200 для вашей среды. Сначала включите Firewalld в вашей системе Linux.

Теперь добавьте правило в настройки Firewalld. Затем перезапустите систему Angular CLI.

Начать работу с Elasticsearch


Мы можем попытаться вставить строковые данные в базу данных Elasticsearch и извлечь данные, чтобы проверить, работает ли она правильно или нет. Выполните следующую команду cURL, чтобы протолкнуть данные внутрь системы.

Чтобы получить строковые данные через Elasticsearch, выполните следующую команду в оболочке терминала вашей системы.

Выводы


Эта статья является первой в серии статей по стеку Elasticsearch, Logstash, Kibana (ELK). Цикл статей ориентирован на тех, кто только начинает знакомится со стеком ELK, и содержит минимально необходимый набор знаний, чтобы успешно запустить свой первый кластер ELK.

В рамках данного цикла будут рассмотрены такие темы, как:

установка и настройка компонентов ELK,

безопасность кластера, репликация данных и шардирование,

конфигурирование Logstash и Beat для сборки и отправки данных в Elasticsearch,

визуализация в Kibana

запуск стека в Docker.

В данной статье будет рассмотрена процедура установки Elasticsearch и конфигурирование кластера.

План действий:

Скачиваем и устанавливаем Elasticsearch.

Запускаем и проверяем работоспособность кластера.

Делаем важные настройки.

Скачиваем и устанавливаем Elasticsearch

Существует множество вариантов установки Elasticsearch, под любые нужды и желания. С перечнем можно ознакомится на официальном сайте. Не смотря на то, что на своем стенде я использовал установку из Deb пакетов, считаю правильным так же описать установку из RPM пакетов и архива tar.gz для Linux системы.

Установка из Deb пакетов

Импортируем Elasticsearch PGP ключ:

Перед установкой пакета необходимо добавить репозиторий Elastic:

Устанавливаем Elasticsearch из пакета:

Настраиваем Elasticsearch для автоматического запуска при запуске системы:

Установка из RPM пакетов

Импортируем Elasticsearch PGP ключ:

В директории /etc/yum.repos.d/ создаем файл репозитория Elasticsearch elasticsearch.repo :

Устанавливаем Elasticsearch c помощью пакетного менеджера в зависимости от операционной системы, yum или dnf для CentOS , Red Hat , Fedora или zypper для OpenSUSE :

Установка из архива tar.gz

Скачиваем архив с Elasticsearch

Извлекаем данные из архива и переходим в каталог с Elasticsearch:

Текущий каталог считается, как $ES_HOME .

Конфигурационные файлы лежать в каталоге $ES_HOME/config/ .

На этом шаге установка из архива считается завершенной.

Для запуска Elasticsearch можно создать отдельного пользователя, предоставив все необходимые права к каталогу с Elasticsearch и указывая данного пользователя при настройке файловых дескрипторов.

Настраиваем кластер

На текущем этапе у нас есть три хоста с установленным Elasticsearch. Следующим и самым важным этапом является настройка каждого узла для объединения их в единый кластер.

Для настройки Elasticsearch используется YAML файл, который лежит по следующему пути /etc/elasticsearch/elasticsearch.yml при установке из Deb или RPM пакетов или $ES_HOME/config/elasticsearch.yml - при установке из архива.

Ниже будут приведены пример конфигурации для узла es-node01. Аналогичные настройки необходимо сделать на каждом узле, указав соответствующие имя и адрес.

Указываем имя узла и определяем роли. Укажем для узла роли master и data :

master Данная роль дает возможность узлу быть избранным, как управляющий узел кластера

data узел с данной ролью содержит данные и выполняет операции с этими данными

Со списком всех ролей узла можно ознакомится тут.

Настраиваем адрес и порт, на которых узел будет принимать запросы:

Если указать 0.0.0.0 или просто 0 , то Elasticsearch будет принимать запросы на всех интерфейсах.

Определяем имя кластера и начальный список узлов в голосовании по выбору master узла:

cluster.initial_master_nodes

При начальной загрузке кластера определяются узлы, участвующие в голосовании по выбору мастера, поэтому в новом кластере мы должны указать перечень этих узлов. Если данный параметр оставить пустым (по умолчанию), то узел будет ожидать подключения к уже созданному кластеру.

Данный параметр следует удалить после создания кластера и не использовать при добавлении новых узлов в существующий кластер.

Указываем список master узлов кластера:

До версии 7.0 в конфигурации Elasticsearch также использовался параметр discovery.zen.minimum_master_nodes , который можно увидеть и сейчас в некоторых конфигурациях. Этот параметр был необходим, чтобы защитится от Split Brain, и определял минимальное количество master узлов для голосования. Начиная с версии 7.0 данный параметр игнорируется, так как кластер автоматически защищает себя. Более подробно о том, как это работает, можно прочитать в данной статье.

Определяем, где будем хранить данные и логи

На выходе мы должны получить следующий конфигурационный файл:

При необходимости настраиваем межсетевой экран на хосте:

9300-9400 - порты (по умолчанию) для коммуникации между узлами кластера. Elasticsearch будет использовать первый свободный из данного диапазона (для настройки данного порта в Elasticsearch можно использовать параметр transport.port ).

Запускаем и проверяем

Запускаем на каждом узле службу elasticsearch :

Для установки из архива используем:

или если мы хотим запустить Elasticsearch как демон, то:

Для выключения службы используйте Ctrl-C для первого варианта запуска (из архива) или pkill -F pid для второго варианта.

После запуска первого узла в логах можно увидеть, что узел ожидает подключение других узлов, чтобы определить, кто возьмет роль master :

После включения остальных узлов в логах появится запись о том, что кластер собрался:

Проверяем состояние кластера, обратившись к любому его узлу:

Узнаем, какой узел взял на себя роль master . В нашем примере это узел es-node02 :

Делаем важные настройки

Для нормальной работы кластера необходимо произвести еще некоторые настройки.

Heap size

Так как Elasticsearch написан на Java, то для работы необходимо настроить размер «кучи» ( heap size ). В каталоге установки Elasticsearch имеется файл jvm.options , в котором уже указаны размеры, по умолчанию - это 1 Гб. Однако, для настройки рекомендуется указать новые параметры в файле каталога jvm.options.d , который находится там же.

Пример выше использует минимальный Xms и максимальный Xmx размер heap size , равный 16 Гб. Для настройки данных параметров следует использовать следующие рекомендации:

установите значения Xmx и Xms не более 50% от имеющейся физической памяти узла. Оставшуюся память Elasticsearch будет использовать для других целей. Чем больше heap size , тем меньше памяти используется под системные кеш;

устанавите значение не более того значения, которое использует JVM для сжатия указателей, он же compressed object pointers . Данное значение составляет около 32 Гб. Стоит также отметить, что рекомендуется ограничивать heap size еще одним параметром JVM , а именно zero-based compressed oops (обычно размер около 26 Гб). Узнать подробнее об этих параметрах можно тут.

Отключаем подкачку

Подкачка негативно сказывается на производительности и стабильности работы Elasticsearch, ведь система может выгрузить страницы JVM на диск. Есть несколько вариантов работы с подкачкой:

Полное отключение подкачки. Перезапуск Elasticseach при этом не требуется.

Ограничение подкачки через значение vm.swappiness=1 для sysctl .

Использование mlockall для блокировки адресного пространства в оперативной памяти.

Чтобы включить mlockall в конфигурации Elasticseach elasticsearch.yml указываем для параметра bootstrap.memory_lock значение true .

Перезапускаем Elasticsearch и проверяем настройки через запрос к любому узлу:

Если перезапуск Elasticsearch завершился ошибкой вида:

или проверка показывает, что данная настройка не применилась, необходимо сделать следующее в зависимости от способа установки:

Установка из архива

Установите ulimit -l unlimited перед запуском Elasticsearch или значению memlock устанвоите unlimited в файле /etc/security/limits.conf .

Установка из пакета RPM или Deb

Установите значение параметра MAX_LOCKED_MEMORY как unlimited в /etc/sysconfig/elasticsearch для rpm или /etc/default/elasticsearch для dep .

Если вы используете systemd для запуска Elasticsearch, то лимиты должны быть указаны через настройку параметра LimitMEMLOCK . Для этого выполните команду:

и укажите следующее значение:

Настройка файловых дескрипторов

Elasticsearch работает с большим количеством файловых дескрипторов, и их нехватка может катастрофически сказаться на его работе. Согласно официальной документации необходимо указать значение файловых дескрипторов не ниже 65 536.

Если Elasticsearch установлен из RPM или Deb пакетов, то настройка не требуется.

Для установки из архива необходимо в файле /etc/security/limits.conf установить параметр nofile для пользователя, который осуществляет запуск Elasticsearch. В примере ниже таким пользователем является elasticsearch :

Проверить установленные значения можно следующим образом:

Настройка виртуальной памяти

Elasticsearch по умолчанию использует каталог mmapfs для хранения индексов, и ограничение операционной системы по умолчанию для счетчиков mmap может привести к нехватки памяти. Для настройки запустите из-под root следующую команду:

Чтобы настройка сохранилась после перезапуска системы, необходимо указать параметр vm.max_map_count в файле /etc/sysctl.conf .

Если Elasticsearch установлен из RPM или Deb пакетов, то настройка не требуется.

Настройка потоков

Необходимо убедиться, что количество потоков, которые Elasticsearch может создавать, было не менее 4096.

Это можно сделать, установив ulimit -u 4096 или установив значение nproc равным 4096 в файле /etc/security/limits.conf .

Если Elasticsearch работает под управлением systemd , то настройка не требуется.

DNS кеширование

Временный каталог для JNA

Elasticsearch использует Java Native Access (JNA) для запуска кода, необходимого в его работе, и извлекает этот код в свой временный каталог директории /tmp . Следовательно, если каталог смонтирован с опцией noexec , то данный код невозможно будет выполнить.

В данном случае необходимо или перемонтировать каталог /tmp без опции noexec , или изменить настройку JVM , указав другой путь через опцию -Djna.tmpdir=<new_path> .

На этом шаге дополнительные настройки Elasticsearch окончены.

Заключение

Дойдя до этого места, вы должны иметь работоспособный кластер Elasticsearch.

В следующей статье будут описаны процедуры установки и настройки Kibana и Logstash. А в качестве проверки работоспособности кластера соберём данные из файла и посмотрим на них с помощью Kibana.

Читайте также: