Jak zainstalować i skonfigurować Elasticsearch na Rocky Linux 8

Elasticsearch to otwartoźródłowy silnik wyszukiwania i analizy danych, który wyróżnia się dużą skalowalnością, rozproszoną architekturą i obsługą zapytań opartych na REST API. Jest powszechnie stosowany w aplikacjach wymagających wyszukiwania w czasie rzeczywistym, analizy danych, agregacji oraz prezentacji wyników. Jego elastyczność i wysoka efektywność czynią go idealnym rozwiązaniem do przetwarzania ogromnych zbiorów danych.

Ten przewodnik krok po kroku pokaże, jak zainstalować i skonfigurować Elasticsearch na systemie Rocky Linux 8. Zademonstrujemy także, jak uruchomić i sprawdzić działanie klastra Elasticsearch.

Wymagania wstępne

  • Serwer z systemem Rocky Linux 8
  • Konto użytkownika z uprawnieniami administratora (sudo)
  • Połączenie z internetem

Proces instalacji Elasticsearch

1. Dodanie repozytorium Elasticsearch

Zanim przejdziemy dalej, musimy dodać repozytorium Elasticsearch do naszego systemu. Wykonaj poniższe polecenie:

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

Następnie utwórz plik konfiguracyjny repozytorium /etc/yum.repos.d/elasticsearch.repo za pomocą polecenia:

sudo nano /etc/yum.repos.d/elasticsearch.repo

W otwartym pliku dodaj następującą konfigurację:

[elastic-repo]
name=Elasticsearch repository for Rocky Linux 8 - $releasever
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

2. Instalacja Elasticsearch

Po dodaniu repozytorium, możemy przystąpić do instalacji Elasticsearch za pomocą komendy:

sudo dnf install elasticsearch

3. Uruchomienie Elasticsearch

Po zakończeniu instalacji, uruchom usługę Elasticsearch za pomocą polecenia:

sudo systemctl start elasticsearch

4. Automatyczne uruchamianie Elasticsearch

Aby usługa Elasticsearch automatycznie startowała po każdym uruchomieniu systemu, użyj komendy:

sudo systemctl enable elasticsearch

Konfiguracja Elasticsearch

1. Zmiana domyślnego portu TCP

Domyślnie Elasticsearch działa na porcie TCP 9200. Jeśli zachodzi potrzeba jego zmiany, należy otworzyć plik konfiguracyjny /etc/elasticsearch/elasticsearch.yml, używając polecenia:

sudo nano /etc/elasticsearch/elasticsearch.yml

Wyszukaj sekcję network.host i zmień przypisaną wartość na pożądany numer portu. Przykładowo, aby ustawić port na 9300, dokonaj następujących zmian:

network.host: 0.0.0.0
http.port: 9300

2. Konfiguracja pamięci podręcznej

Elasticsearch korzysta z pamięci podręcznej do przechowywania często wykorzystywanych danych. Rozmiar tej pamięci można ustawić, modyfikując parametry indices.fielddata.cache.size oraz indices.query_cache.size w pliku /etc/elasticsearch/elasticsearch.yml. Na przykład, aby ustawić rozmiar każdej z pamięci podręcznych na 100 MB, użyj poniższej konfiguracji:

indices.fielddata.cache.size: 100mb
indices.query_cache.size: 100mb

3. Zmiana lokalizacji przechowywania danych

Domyślnie dane Elasticsearch są przechowywane w katalogu /var/lib/elasticsearch. Jeśli potrzebujesz zmienić tę ścieżkę, otwórz plik /etc/elasticsearch/elasticsearch.yml i zmodyfikuj wartość parametru path.data. Na przykład, aby zmienić ścieżkę na /data/elasticsearch, ustaw następującą konfigurację:

path.data: /data/elasticsearch

Uruchamianie i testowanie klastra Elasticsearch

1. Tworzenie klastra

Do utworzenia klastra Elasticsearch wymagane jest uruchomienie co najmniej trzech węzłów. Jeden z nich pełni funkcję węzła głównego, który zarządza metadanymi klastra oraz innymi węzłami. Pozostałe węzły (dane) służą do przechowywania rzeczywistych danych.

2. Testowanie klastra

Po uruchomieniu klastra można zweryfikować jego działanie, wysyłając zapytanie HTTP do jego punktu końcowego. Użyj poniższego polecenia curl, aby wysłać zapytanie typu ping do klastra:

curl -XGET 'http://localhost:9300/_cluster/health'

W odpowiedzi otrzymasz informacje o stanie klastra i liczbie dostępnych węzłów.

Zaawansowane konfiguracje klastra Elasticsearch

1. Dodawanie użytkowników

Możliwe jest dodawanie użytkowników do klastra Elasticsearch, aby zarządzać dostępem do danych i funkcji. Otwórz plik /etc/elasticsearch/elasticsearch.yml i dodaj następujące ustawienia:

xpack.security.enabled: true
xpack.security.authc.realms.native.type: native
xpack.security.authc.realms.native.order: 0

Następnie utwórz plik /etc/elasticsearch/users i wstaw tam wiersze w formacie:

username:passwordhash

2. Tworzenie indeksów

Indeksy w Elasticsearch służą do przechowywania i organizacji danych. Aby utworzyć indeks, użyj następującego polecenia curl:

curl -XPUT 'http://localhost:9300/my_index' -H 'Content-Type: application/json' -d '{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}'

3. Dodawanie dokumentów

Po utworzeniu indeksu, możesz zacząć do niego dodawać dokumenty. Użyj poniższego polecenia curl:

curl -XPOST 'http://localhost:9300/my_index/my_type/1' -H 'Content-Type: application/json' -d '{
"title": "Elasticsearch Tutorial",
"author": "John Doe",
"date": "2023-03-08"
}'

Podsumowanie

W tym przewodniku omówiliśmy krok po kroku proces instalacji i konfiguracji Elasticsearch na serwerze z systemem Rocky Linux 8. Pokazaliśmy, jak uruchomić i sprawdzić działanie klastra Elasticsearch, a także jak wprowadzić bardziej zaawansowane ustawienia, takie jak dodawanie użytkowników, tworzenie indeksów i przesyłanie dokumentów.

Elasticsearch to potężne narzędzie do wyszukiwania i analizy danych, które dzięki swojej skalowalności, wydajności i elastyczności idealnie nadaje się do przetwarzania dużych ilości danych. Mamy nadzieję, że ten przewodnik ułatwił Ci rozpoczęcie pracy z Elasticsearch.

Często zadawane pytania

1. Czy Elasticsearch jest dostępny bezpłatnie?

Tak, Elasticsearch jest oprogramowaniem typu open source i można go używać za darmo.

2. W jakim celu stosuje się Elasticsearch?

Elasticsearch jest skalowalnym, rozproszonym silnikiem wyszukiwania i analizy danych o otwartym kodzie źródłowym. Używa się go do wyszukiwania w czasie rzeczywistym, analizy danych, agregacji i wizualizacji.

3. Jakie są wymagania sprzętowe dla Elasticsearch?

Wymagania sprzętowe dla Elasticsearch zależą od wielkości danych i obciążenia. Zalecane jest minimum 2 GB pamięci RAM, dwurdzeniowy procesor i 10 GB wolnego miejsca na dysku.

4. Jak mogę monitorować klaster Elasticsearch?

Monitorowanie klastra Elasticsearch jest możliwe za pomocą narzędzi takich jak Kibana lub Elasticsearch Head.

5. Jak wykonać kopię zapasową klastra Elasticsearch?

Kopię zapasową klastra Elasticsearch można utworzyć, korzystając z Elasticsearch Snapshot/Restore API lub Elasticsearch Curator.

6. Jak przywrócić klaster Elasticsearch?

Klaster Elasticsearch można odzyskać, przywracając jego kopię zapasową za pomocą Elasticsearch Snapshot/Restore API.

7. Jak zoptymalizować wydajność klastra Elasticsearch?

Wydajność klastra Elasticsearch można zoptymalizować, dostosowując różne ustawienia, np. liczbę węzłów, rozmiar pamięci podręcznej oraz ścieżkę przechowywania danych.

8. Jak można skalować klaster Elasticsearch?

Klaster Elasticsearch można skalować, dodając kolejne węzły i modyfikując ustawienia, takie jak liczba shardów i replik.