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.