Како да инсталирате и конфигурирате Elasticsearch на Rocky Linux 9


Вовед

Elasticsearch е платформа за дистрибуирано пребарување и анализа на податоци во реално време. Тој е популарен избор поради неговата употребливост, моќни карактеристики и приспособливост.

Оваа статија ќе ве води низ инсталирање на Elasticsearch 8.x, конфигурирање за вашиот случај на употреба, обезбедување на вашата инсталација и почеток на работа со вашиот Elasticsearch сервер.

Предуслови

Пред да го следите ова упатство, ќе ви треба:

  • Роки Линукс 9 сервер со 2 GB RAM и 2 процесори поставени со корисник sudo кој не е root. Ова може да го постигнете со следење на почетното поставување на серверот со Rocky Linux 9

Elasticsearch може да има релативно високи барања бидејќи стандардно издвојува околу 1 GB RAM меморија, затоа имајте на ум дека можеби ќе треба да овозможите замена во средина со ограничена меморија. Количината на процесорот, RAM меморијата и складирањето што ќе ги бара вашиот сервер Elasticsearch зависи од тоа колку записи генерирате.

Чекор 1 - Инсталирање и конфигурирање на Elasticsearch

Пред да инсталирате Elasticsearch, ќе сакате да бидете сигурни дека имате инсталирано употреблив уредувач на текст. Стандардниот уредувач на текст што доаѓа со Rocky Linux 9 е vi. vi е исклучително моќен уредувач на текст, но може да биде донекаде тап за корисниците кои немаат искуство со него. Можеби ќе сакате да инсталирате уредник кој е попријатен за корисникот, како што е nano за да го олесните уредувањето на конфигурациските датотеки на вашиот сервер Rocky Linux 9:

  1. sudo dnf install nano -y

Сега можете да продолжите со инсталирање на Elasticsearch. Компонентите на Elasticsearch не се достапни во стандардните складишта на пакети на Роки. Наместо тоа, тие можат да бидат вклучени од складишта што ги одржува проектот Elasticsearch.

Сите пакети се потпишани со клучот за потпишување Elasticsearch со цел да се заштити вашиот систем од измама на пакети. Пакетите што се автентицирани со помош на клучот ќе се сметаат за доверливи од вашиот менаџер на пакети. Во овој чекор, ќе го увезете јавниот GPG клуч Elasticsearch и ќе го додадете изворниот список на пакети Elastic за да го инсталирате Elasticsearch.

За почеток, користете ја алатката за пакет rpm за да го увезете клучот од elastic.co:

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Следно, користејќи nano или вашиот омилен текстуален уредувач, креирајте датотека наречена elasticsearch.repo во директориумот /etc/yum.repos.d/ , така што вашиот менаџер на пакети може да се поврзе со складиштето Elasticsearch:

  1. sudo nano /etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

Делот gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch од датотеката му наложува на вашиот менаџер на пакети да го користи клучот што сте го презеле за да ги потврди информациите за складиштето и датотеките за пакетите Elasticsearch.

Зачувајте ја и затворете ја датотеката. Ако користите nano, можете да зачувате и да излезете со користење на Ctrl+X, потоа кога ќе биде побарано, Y и потоа Enter.

Конечно, инсталирајте го Elasticsearch со менаџерот на пакети dnf:

  1. sudo dnf install --enablerepo=elasticsearch elasticsearch

Притиснете y кога ќе биде побарано да ја потврдите инсталацијата.

Дел од излезот за инсталација на Elasticsearch треба да вклучува Информации за автоматска конфигурација за безбедност и, што е најважно, автоматско генерирана административна лозинка на Elasticsearch:

Output
--------------------------- Security autoconfiguration information ------------------------------ Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : CH77_qG8ji8QCxwUCr3w

Забележете ја оваа лозинка бидејќи ќе ја користите подоцна во ова упатство и ќе ви треба за да креирате други корисници на Elasticsearch. Elasticsearch сега е инсталиран и подготвен за конфигурирање.

Чекор 2 - Конфигурирање на Elasticsearch

За да го конфигурирате Elasticsearch, ќе ја уредите неговата главна конфигурациска датотека elasticsearch.yml, каде што се складирани повеќето од неговите опции за конфигурација. Оваа датотека се наоѓа во директориумот /etc/elasticsearch.

Отворете ја конфигурациската датотека на Elasticsearch, користејќи nano или вашиот омилен текстуален уредувач:

  1. sudo nano /etc/elasticsearch/elasticsearch.yml

Забелешка: Конфигурациската датотека на Elasticsearch е во формат YAML, што значи дека треба да ја одржувате синтаксата на вовлекување. Бидете сигурни дека нема да додавате дополнителни празни места додека ја уредувате оваа датотека.

Датотеката elasticsearch.yml обезбедува опции за конфигурација за вашиот кластер, јазол, патеки, меморија, мрежа, откривање и портал. Повеќето од овие опции се претходно конфигурирани во датотеката, но можете да ги менувате според вашите потреби. За целите на оваа конфигурација со еден сервер, ќе ги приспособите само поставките за мрежниот хост.

Elasticsearch слуша сообраќај од секаде на портата 9200. Ова не е толку проблем во Elasticsearch 8.x како што беше во претходните верзии, бидејќи Elasticsearch сега стандардно бара автентикација. Сепак, најверојатно ќе треба да го ограничите надворешниот пристап до вашиот примерок на Elasticsearch за да спречите надворешни лица да ги читаат вашите податоци или да го исклучат вашиот кластер Elasticsearch преку неговиот [REST API] (https://en.wikipedia.org/wiki/Representational_state_transfer). За да го ограничите пристапот, пронајдете ја линијата што ја одредува network.host, одкоментирајте со отстранување на # на почетокот на линијата и заменете ја вредност со localhost така што гласи вака:

. . .
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
. . .

Одредувањето на localhost му овозможува на Elasticsearch да слуша на сите интерфејси и врзани IP-адреси. Ако сакате да слуша само на специфичен интерфејс, можете да ја наведете неговата IP адреса наместо localhost. Зачувајте и затворете го elasticsearch.yml. Ако користите nano, можете да зачувате и да излезете со користење на Ctrl+X, потоа кога ќе биде побарано, Y и потоа Enter.

Ова се минималните поставки со кои можете да започнете за да го користите Elasticsearch. Сега можете да започнете со Elasticsearch за прв пат.

Стартувајте ја услугата Elasticsearch со systemctl. Дајте му на Elasticsearch неколку моменти за да започне. Во спротивно, може да добиете грешки поради тоа што не можете да се поврзете.

  1. sudo systemctl start elasticsearch

Следно, извршете ја следнава команда за да овозможите Elasticsearch да се стартува секогаш кога вашиот сервер ќе се подигне:

  1. sudo systemctl enable elasticsearch

Со овозможен Elasticsearch при стартување, да преминеме на следниот чекор за да разговараме за безбедноста.

Чекор 3 - Обезбедување на Elasticsearch

Elasticsearch може да биде контролиран од секој што може да пристапи до HTTP API. Ова не е нужно безбедносен ризик, бидејќи веќе сте го конфигурирале Elasticsearch да слуша само на localhost и затоа што Elasticsearch 8+ стандардно поставува административна лозинка.

Ако треба да дозволите далечински пристап до HTTP API, може да ја ограничите мрежната изложеност со firewalld. Овој заштитен ѕид веќе треба да биде овозможен ако ги следевте чекорите во предусловот, креирајте профил на заштитен ѕид што ја отвора или ограничува портата 9200.

Доколку сакате да инвестирате во дополнителна заштита, Elasticsearch го нуди комерцијалниот приклучок Shield за купување.

Чекор 4 - Тестирање на Elasticsearch

Досега, Elasticsearch треба да работи на портата 9200. Можете да го тестирате со поднесување стандардно барање HTTP GET до localhost:9200 со curl. Почнувајќи од Elasticsearch 8.x, Elasticsearch API стандардно бара автентикација на HTTPS, така што можете да го вклучите неговиот обезбеден сертификат во барањето со користење на аргументот --cacert. Конечно, вклучете го аргументот -u elastic за да го наведете стандардното корисничко име на администраторот, elastic.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200

Ќе ви биде побарано да ја внесете административната лозинка што ја добивте при инсталацијата. По автентичноста, треба да го добиете следниов одговор:

Output
{ "name" : "elasticrocky", "cluster_name" : "elasticsearch", "cluster_uuid" : "_hb4dLuuR-ipiloXHT_AMw", "version" : { "number" : "8.5.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "4ed5ee9afac63de92ec98f404ccbed7d3ba9584e", "build_date" : "2022-12-05T18:22:22.226119656Z", "build_snapshot" : false, "lucene_version" : "9.4.2", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }

Ако добиете одговор сличен на оној погоре, Elasticsearch работи правилно. Ако не, проверете дали правилно сте ги следеле упатствата за инсталација и сте оставиле малку време за целосно стартување на Elasticsearch.

За да извршите потемелна проверка на Elasticsearch, обидете се да ја побарате крајната точка _nodes и додајте ?pretty на крајот од барањето за да добиете форматирање на текст читлив за луѓе:

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_nodes?pretty
[secondary label Output]
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "7TgeSgV2Tma0quqd6Mw6hQ" : {
…

На овој начин, можете да ги потврдите сите тековни поставки за јазолот, кластерот, патеките на апликацијата, модулите и многу повеќе.

Чекор 5 - Користење Elasticsearch

За да започнете со користење на Elasticsearch, ајде прво да додадеме некои податоци. Elasticsearch користи RESTful API, кој одговара на вообичаените CRUD команди: create, read, update и d<elete. За да испратите податоци до API, повторно ќе користите curl, но овој пат ќе направите PUT наместо GET барање до специфицирање -X PUT и вклучување на некои податоци форматирани со JSON на командната линија користејќи -d.

Можете да го додадете вашиот прв запис вака:

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json' -d '{"counter" : 1, "tags" : ["red"]}'

Треба да го добиете следниов одговор:

Output
{ "_index" : "test", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }

Со cURL, испративте барање HTTP PUT до серверот Elasticsearch. URI на барањето беше /test/_doc/1 со неколку параметри:

  • тест е индекс на податоците во Elasticsearch.
  • _doc е типот.
  • 1 е ID на нашиот запис под горенаведениот индекс и тип.

Можете да го вратите овој прв запис со барање HTTP GET.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X GET "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json'

Ова треба да биде резултатот:

Output
{ "_index" : "test", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "counter" : 1, "tags" : [ "red" ] } }

За да измените постоечки запис, можете да користите барање HTTP PUT.

  1. curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT "https://localhost:9200/test/_doc/1?pretty" -k -H 'Content-Type: application/json' -d '{"counter" : 1, "tags" : ["blue"]}'

Elasticsearch треба да ја признае успешната модификација како оваа:

Output
{ "_index" : "test", "_id" : "1", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1 }

Во горниот пример ја изменивме пораката на првиот запис во \Здраво, Луѓе!. Со тоа, бројот на верзијата автоматски се зголеми на 2.

Можеби сте го забележале дополнителниот аргумент убав во горенаведените барања. Додава формат за форматирање за да можете да го напишете секое поле за податоци на нов ред. Без убав, излезот од Elasticsearch се враќа без прекини на линии или вдлабнатини. Ова е добро за комуникација со API, но потешко е да се прочита во излезот од командната линија.

Сега додадовте и побаравте податоци во Elasticsearch. За да дознаете за другите операции, ве молиме проверете ја документацијата на API.

Заклучок

Сега инсталиравте, конфигуриравте и почнавте да го користите Elasticsearch. За дополнително да ја истражите функционалноста на Elasticsearch, ве молиме погледнете ја официјалната документација на Elasticsearch.