предисловие
В этой статье в основном представлено руководство по установке кластера ElasticSearch и kinaba.
Введение в эластичный поиск
ElasticSearch — это поисковый сервер, основанный на Lucene, фактически он инкапсулирует Lucene и предоставляет рабочий интерфейс REST API. ElasticSearch представляет собой хорошо масштабируемую систему полнотекстового поиска и анализа с открытым исходным кодом, которую можно использовать для быстрого хранения, поиска и анализа больших данных. Основные функции ElasticSearch: распределенный, высокодоступный, асинхронная запись, несколько API, ориентированный на документы. Основные концепции ElasticSearch: почти в реальном времени, кластер, узел (сохранение данных), индекс, сегментирование (сегментирование индекса), копирование (сегментирование может создавать несколько копий). Он может быстро хранить, искать и анализировать массивные данные. Варианты использования ElasticSearch: Википедия, Stack Overflow, Github и т. д.
Установка кластера ElasticSearch
1. Экологический отбор
Установка кластера ElasticSearch зависит от JDK. Версия ElasticSearch в этой статье 6.5.4, и соответствующая Kibana тоже 6.5.4. Кстати, версия Kibana не должна быть ниже версии ElasticSearch, а версия JDK составляет 1,8.
ссылка на скачивание:
ElasticSearch-6.5.4: Artifacts.elastic.co/downloads/ о…
Kibana-6.5.4: Artifacts.elastic.co/downloads/…
JDK1.8 : Woohoo. Сеть Oracle.com/tech…
ElasticSearch имеет несколько важных атрибутов узла, главный узел, узел данных, узел запроса и узел загрузки. Среди них наиболее важными являются главный узел и узел данных. Поэтому в этой статье в основном представлена только установка этих двух узлов, а остальные атрибуты узла находятся в файле конфигурации, описанном в блоке.
Форма установки кластера ElasticSearch:
2. Конфигурация Linux
Перед установкой ElasticSearch нам нужно внести некоторые коррективы в среду Linux, чтобы предотвратить некоторые проблемы в последующем процессе!
1. Изменить максимальный предел памяти
Измените файл sysctl.conf
vim /etc/sysctl.conf
В конце добавьте следующую конфигурацию:
vm.max_map_count = 655360
vm.swappiness=1
Затем сохраните и выйдите, введите следующую команду, чтобы она вступила в силу.
sysctl -p
Сохраните и выйдите, введите следующую команду, чтобы она вступила в силу.
sysctl -p
Используйте команду для просмотра:
tail -3 /etc/sysctl.conf
2. Изменить максимальное количество потоков
Измените файл 90-nproc.conf.
vim /etc/security/limits.d/90-nproc.conf
Примечание: 90-nproc.conf может иметь разные имена файлов на разных Linux-серверах.Рекомендуется проверить имя файла в /etc/security/limits.d/ перед внесением изменений.
поставить следующее
soft nproc 2048
превратиться в
soft nproc 4096
Используйте команду для просмотра:
tail -3 /etc/security/limits.d/90-nproc.conf
3. Изменить максимальное количество открытых файлов
Изменить лимиты.conf
vim /etc/security/limits.conf
В конце добавьте следующее:
hard nofile 65536
soft nofile 65536
4. Отключите брандмауэр
Примечание. На самом деле вы можете установить разрешения, не закрывая брандмауэр, но для облегчения доступа брандмауэр закрывается. Каждая машина так делает! ! !
команда для отключения брандмауэра ЦенОС 6 Запрос состояния брандмауэра: [root@localhost ~]# статус службы iptables Остановите брандмауэр: [root@localhost ~]# служба iptables остановлена Запустите брандмауэр: [root@localhost ~]# запуск службы iptables Перезапустите брандмауэр: [root@localhost ~]# перезапуск службы iptables Навсегда отключить брандмауэр: [root@localhost ~]# chkconfig iptables выключен Включить после постоянного отключения: [root@localhost ~]# chkconfig iptables на
ЦенОС 7 отключить брандмауэр systemctl остановить firewalld.service
3. Установка JDK
1. Подготовка документов
Разархивируйте загруженный JDK tar -xvf jdk-8u144-linux-x64.tar.gz Перейдите в папку opt/java, создайте новую, если нет, затем переименуйте папку в jdk1.8.
mv jdk1.8.0_144 /opt/java
mv jdk1.8.0_144 jdk1.8
2. Конфигурация среды
Сначала введите java -версию Проверить установлен ли JDK, если установлен, но версия не подходит, удалить
войтиrpm -qa | grep java
Посмотреть информацию
Затем введите:
rpm -e --nodeps “你要卸载JDK的信息”
如: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
Убедившись, что больше нет, разархивируйте загруженный JDK
tar -xvf jdk-8u144-linux-x64.tar.gz
Перейдите в папку opt/java, создайте новую, если нет, а затем переименуйте папку в jdk1.8.
mv jdk1.8.0_144 /opt/java
mv jdk1.8.0_144 jdk1.8
Затем отредактируйте файл профиля и добавьте следующую конфигурацию Тип: vim/etc/профиль
export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
После успешного добавления введите:
source /etc/profile
Сделайте так, чтобы конфигурация вступила в силу, затем просмотрите информацию о версии и введите:
java -version
В-четвертых, установка ElasticSearch
1. Подготовка документов
Разархивируйте загруженный файл elasticsearch
войти:
tar -xvf elasticsearch-6.5.4.tar.gz
Затем перейдите в папку /opt/elk, создайте ее без нее и переименуйте папку в masternode.
Введите в /opt/elk:
mv elasticsearch-6.5.4 /opt/elk
mv elasticsearch-6.5.4 masternode
2. Модификация конфигурации
Поскольку elasticsearch должен работать под пользователем без полномочий root, а права доступа к папке elasticsearch также являются разрешениями без полномочий root, поэтому нам нужно создать пользователя для работы, мы создаем эластичного пользователя и даем разрешения для каталога. Команда выглядит следующим образом:
adduser elastic
chown -R elastic:elastic /opt/elk/masternode
Здесь мы кстати укажем путь к хранилищу данных и журнала ElasticSearch.Мы можем сначала использовать команду df -h, чтобы увидеть, где находится основной диск текущего системного диска, а затем подтвердить путь к хранилищу данных и журнала, если он находится в каталоге /home., мы создадим папки данных и журналов ElasticSearch в домашнем каталоге.Чтобы различать, мы можем создавать разные папки в соответствии с разными узлами. Создание папки здесь создается с пользователем, которого мы только что создали, переключитесь на эластичного пользователя, а затем создайте папку.
su elastic
mkdir /home/elk
mkdir /home/elk/masternode
mkdir /home/elk/masternode/data
mkdir /home/elk/masternode/logs
mkdir /home/elk/datanode1
mkdir /home/elk/datanode1/data
mkdir /home/elk/datanode1/logs
Конфигурация главного узла (мастера)
После успешного создания мы сначала изменим конфигурацию узла masternode.После завершения модификации скопируем его в каталог того же уровня с именем datanode1, а затем нужно будет только немного изменить конфигурацию узла datanode. Здесь нам нужно изменить файлы elasticsearch.yml и jvm.options! Обратите внимание, что это все еще эластичный пользователь!
cd /opt/elk/
vim masternode/config/elasticsearch.yml
vim masternode/config/jvm.options
Файл elasticsearch.yml мастерноды настроен следующим образом:
cluster.name: pancm
node.name: master
path.data: /home/elk/masternode/data
path.logs: /home/elk/masternode/logs
network.host: 0.0.0.0
network.publish_host: 192.169.0.23
transport.tcp.port: 9301
http.port: 9201
discovery.zen.ping.unicast.hosts: ["192.169.0.23:9301","192.169.0.24:9301","192.169.0.25:9301"]
node.master: true
node.data: false
node.ingest: false
index.number_of_shards: 5
index.number_of_replicas: 1
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
http.max_content_length: 1024mb
Описание конфигурации параметров файла Elasticsearch.yml:
-
cluster.name: имя кластера, конфигурация узла одного и того же кластера должна быть согласованной. es автоматически обнаружит es в одном сегменте сети.Если в одном сегменте сети есть несколько кластеров, вы можете использовать этот атрибут, чтобы различать разные кластеры.
-
node.name: имя узла. path.data: путь, по которому хранятся данные. path.logs: путь, по которому хранятся журналы.
-
network.host: установите IP-адрес, который может быть ipv4 или ipv6, по умолчанию 0.0.0.0.
-
network.publish_host: Установите IP-адрес других узлов, взаимодействующих с этим узлом. Если он не установлен, он будет оцениваться автоматически. Значение должно быть реальным IP-адресом.
-
transport.tcp.port: Установите tcp-порт для взаимодействия между узлами, по умолчанию 9300.
-
http.port: Установите http-порт для внешних служб, по умолчанию 9200.
-
discovery.zen.ping.unicast.hosts: установите начальный список главных узлов в кластере, который можно использовать для автоматического обнаружения новых узлов, присоединяющихся к кластеру.
-
node.master: указывает, имеет ли узел право быть избранным в качестве узла, значение по умолчанию — true. node.data: Указывает, хранит ли узел данные индекса, значение по умолчанию — true.
-
node.ingest: указывает, использует ли узел конвейер. Значение по умолчанию — true.
-
index.number_of_shards: установите количество осколков индекса по умолчанию, по умолчанию 5 осколков.
-
index.number_of_replicas: установите количество реплик индекса по умолчанию, по умолчанию — 1 реплика.
-
discovery.zen.minimum_master_nodes: Установите этот параметр, чтобы гарантировать, что узлы в кластере могут знать о других N узлах, квалифицированных мастером. Значение по умолчанию — 1. Для больших кластеров можно установить большее значение (2–4).
-
bootstrap.memory_lock: установите значение true, чтобы заблокировать память. Поскольку эффективность es будет снижена, когда jvm начнет подкачку, чтобы убедиться, что она не подкачивается, вы можете установить две переменные среды ES_MIN_MEM и ES_MAX_MEM в одно и то же значение и убедиться, что на машине достаточно памяти, выделенной для es. При этом также необходимо разрешить процессу elasticsearch блокировать память.Под линуксом можно пройти
ulimit -l unlimited
Заказ. http.max_content_length: Установите максимальную емкость контента, по умолчанию 100 МБ. -...
Кстати, вот свойства ноды ElasticSearch.
-
node.master: правда и node.data: правда
Эта комбинация означает, что этот узел имеет право стать главным узлом и хранить данные.
Если узел выбран в качестве реального главного узла, то он также должен хранить данные, что оказывает большее давление на этот узел. ElasticSearch по умолчанию использует эту конфигурацию для каждого узла, что не является проблемой в тестовой среде. Не рекомендуется устанавливать это в реальной работе, потому что это равносильно смешению ролей главного узла и узла данных. -
node.master: ложь и node.data: правда
Эта комбинация означает, что этот узел не имеет права стать главным узлом, поэтому он не участвует в выборах, а только хранит данные. Мы называем этот узел узлом данных (data). Несколько таких узлов необходимо настроить отдельно в кластере для хранения данных и последующего предоставления услуг хранения и запросов. -
node.master: правда и node.data: ложь
Эта комбинация означает, что этот узел не будет хранить данные, имеет право стать главным узлом, может участвовать в выборах и может стать настоящим главным узлом.Этот узел называется главным узлом. -
node.master: false node.data: false
Эта комбинация означает, что этот узел не станет ни мастер-узлом, ни хранилищем данных.Смысл этого узла в том, чтобы действовать как клиентский (клиентский) узел, в основном для балансировки нагрузки при массовых запросах. -
node.ingest: правда Выполняет конвейер предварительной обработки и не несет ответственности за данные и вещи, связанные с кластером. Он предварительно обрабатывает документы перед индексированием, перехватывает массовые запросы и запросы на индексирование документов и преобразовывает их. Передавая документы обратно в массовые и индексные API, пользователь может определить конвейер, указав ряд препроцессоров.
Пример схемы конфигурации файла elasticsearch.yml
Будуjvm.optionsМеняем конфигурацию Xms и Xmx на 2G, конфигурация следующая:
-Xms2g
-Xmx2g
Дополнительные сведения о настройке ElasticSearch см. в официальной документации ElasticSearch!
Конфигурация узла узла данных (данные)
После настройки ElasticSearch узла masternode давайте снова настроим узел datanode.Мы скопируем узел masternode и переименуем его в datanode1, а затем просто изменим его в соответствии с красным полем на приведенном выше примере рисунка. Команда выглядит следующим образом:
cd /opt/elk/
cp -r masternode/ datanode1
vim datanode1/config/elasticsearch.yml
vim datanode1/config/jvm.options
datanodeФайл elasticsearch.yml настроен следующим образом:
cluster.name: pancm
node.name: data1
path.data: /home/elk/datanode/data
path.logs: /home/elk/datanode/logs
network.host: 0.0.0.0
network.publish_host: 192.169.0.23
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.169.0.23:9301","192.169.0.24:9301","192.169.0.25:9301"]
node.master: false
node.data: true
node.ingest: false
index.number_of_shards: 5
index.number_of_replicas: 1
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
http.max_content_length: 1024mb
Измените конфигурацию jvm.options Xms и Xmx на 8G, конфигурация следующая:
-Xms8g
-Xmx8g
Примечание: после завершения настройки вам нужно использовать команду ll, чтобы проверить, принадлежат ли разрешения masternode и datanode1 эластичному пользователю.Если нет, вы можете использовать команду chown -R elastic:elastic + path для предоставления разрешений.
После завершения вышеуказанной настройки вы можете использовать тот же метод для работы на других машинах один раз, или использовать инструмент ftp для передачи, или использовать команду scp для удаленной передачи файлов, а затем вносить различные изменения в зависимости от разных машин. Пример команды scp:
перенос среды jdk:
scp -r /opt/java root@slave1:/opt
scp -r /opt/java root@slave2:/opt
Транспорт среды ElasticSearch:
scp -r /opt/elk root@slave1:/opt
scp -r /home/elk root@slave1:/opt
scp -r /opt/elk root@slave2:/opt
scp -r /home/elk root@slave2:/opt
3. Запустите ElasticSearch
Для запуска по-прежнему необходимо использовать эластичного пользователя, и каждый узел каждой машины должен работать! Введите в каталоге /opt/elk:
su elastic
cd /opt/elk
./masternode/bin/elasticsearch -d
./datanode1/bin/elasticsearch -d
После успешного запуска вы можете ввести команду jps для просмотра или ввести ip+9200 или ip+9201 в браузере для просмотра. Следующий интерфейс указывает на успех!
В-четвертых, установка Kibana
Установку kinaba нужно развернуть только на одном компьютере, и ею можно управлять напрямую через пользователя root.Следует отметить, что kinaba необходимо пропинговать с сетью сервера ElasticSearch.
1. Подготовка документов
Разархивируйте загруженный файл конфигурации kibana-6.5.4-linux-x86_64.tar.gz. По типу линукса:
tar -xvf kibana-6.5.4-linux-x86_64.tar.gz
Затем перейдите в /opt/elk и переименуйте папку в kibana6.5.4. войти:
mv kibana-6.5.4-linux-x86_64 /opt/elk
mv kibana-6.5.4-linux-x86_64 kibana6.5.4
2. Модификация конфигурации
Перейдите в папку и измените файл конфигурации kibana.yml:
cd /opt/elk/kibana6.5.4
vim config/kibana.yml
Вставьте в файл конфигурации:
server.host: "localhost"
изменить на:
server.host: "192.169.0.23"
Затем добавьте новую строку, эта строка означает вход без использования пароля учетной записи.
xpack.security.enabled: false
Сохранить и выйти!
3. Кинаба начинает
Начните с пользователя root. Введите в директорию папки kibana6.5.4:
nohup ./bin/kibana >/dev/null 2>&1 &
Вход через браузер:
Пять, решение проблемы с ошибкой
1, максимальное количество областей виртуальной памяти vm.max_map_count [65530] слишком мало, увеличьте как минимум до [262144]
Причина: Слишком маленький лимит памяти! Решение: Измените максимальный лимит памяти, см. первый пункт конфигурации среды Linux!
2, максимальное количество потоков [2048] для пользователя [эластик] слишком мало, увеличьте как минимум до [4096]
Причина: Лимит потока слишком мал! Решение: Измените ограничение на максимальное количество потоков, см. вторую статью о настройке среды Linux!
3. максимальное количество файловых дескрипторов [65535] для процесса elasticsearch, вероятно, слишком низкое, увеличьте как минимум до [65536]
Причина: Слишком мало открытых файлов! Решение: Изменить количество наиболее открытых файлов, см. третью статью по настройке среды Linux!
4. ОШИБКА: проверка начальной загрузки не удалась
Причина: Память не заблокирована.
Решение: на машине ошибокelasticsearch.ymlдобавить в конфигурационный файлbootstrap.memory_lock: true
Настроить!
разное
Установка ElasticSearch и головного плагина для Windows:
блог woo woo woo.cn на.com/nothingness/fear/…
музыкальная рекомендация
Оригинал не просто, если вы чувствуете себя хорошо, я надеюсь дать рекомендацию! Ваша поддержка - самая большая мотивация для моего письма! Уведомление об авторских правах: Автор: ничтожество Источник блога сада:www.cnblogs.com/xuwujingИсточник CSDN:blog.csdn.net/qazwsxpcm Источник личного блога:www.panchengming.com