Elasticsearch 8 to potężny i elastyczny silnik wyszukiwania i analiz typu open source, znany ze skalowalności, szybkości i możliwości indeksowania danych w czasie rzeczywistym. Wersja 8.x wprowadza znaczące ulepszenia, w tym ulepszone funkcje bezpieczeństwa z prostym zarządzaniem certyfikatami, wzbogaconymi możliwościami wyszukiwania tekstu i wydajniejszym wykonywaniem zapytań. Wprowadzono także natywną obsługę pól wykonawczych, ułatwiając dostosowywanie sposobu indeksowania i przeszukiwania danych bez zmiany podstawowego schematu. Te udoskonalenia sprawiają, że Elasticsearch 8.xa jest solidnym rozwiązaniem do zarządzania i analizowania dużych ilości danych.
Aby zainstalować Elasticsearch 8 na Debianie 12, 11 lub 10, możesz skorzystać z oficjalnego repozytorium APT dostarczonego przez Elasticsearch. Ten przewodnik przeprowadzi Cię przez kolejne etapy konfiguracji Elasticsearch, zapewniając dostęp do najnowszych funkcji i ulepszeń.
Zaktualizuj Debiana przed instalacją Elasticsearch
W pierwszym kroku musisz upewnić się, że Twój system Debian Linux jest zaktualizowany. Ten krok zaktualizuje całe istniejące oprogramowanie do najnowszych wersji i przygotuje system do instalacji.
Uruchom następujące polecenie, aby zaktualizować system Debian:
sudo apt update && sudo apt upgrade
Instalowanie niezbędnych pakietów
Przed zainstalowaniem Elasticsearch 8 na Debianie musimy spełnić określone wymagania wstępne. Wiąże się to z zainstalowaniem kilku wymaganych pakietów, takich jak software-properties-common, apt-transport-https i curl. Pakiety te ułatwiają zarządzanie oprogramowaniem i przesyłanie danych w sieci.
Zainstaluj niezbędne pakiety, uruchamiając następujące polecenie:
sudo apt install software-properties-common apt-transport-https curl -y
Dodaj repozytorium Elasticsearch 8 APT w Debianie
Następnie dodamy repozytorium Elasticsearch APT do naszego systemu Debian Linux. W pierwszej kolejności zaimportujemy klucz GPG dla Elasticsearch, który zapewni autentyczność instalowanego oprogramowania. Uruchom następujące polecenie, aby zaimportować klucz GPG:
curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null
Następnie zaimportujmy repozytorium Elasticsearch. Umożliwi nam to zainstalowanie Elasticsearch bezpośrednio przy użyciu pliku apt
menedżer pakietów:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list
Aktualizowanie pamięci podręcznej indeksu APT
Musimy zaktualizować indeks pakietu APT po dodaniu repozytorium Elasticsearch do naszego systemu. Dzięki temu APT będzie wiedział o nowych pakietach z nowo dodanego repozytorium. Uruchom następujące polecenie, aby zaktualizować indeks APT:
sudo apt update
Zainstaluj Elasticsearch 8 za pomocą polecenia APT
Teraz, gdy nasz system jest już przygotowany, a indeks APT zaktualizowany, możemy zainstalować Elasticsearch 8. Użyj następującego polecenia, aby zainstalować Elasticsearch:
sudo apt install elasticsearch
Uwaga: Jeśli w tym samym repozytorium Elasticsearch istnieją dwa wpisy, podczas aktualizacji apt wystąpi błąd. Jeśli natkniesz się na błąd „Zduplikowany wpis source.list”, sprawdź /etc/apt/sources.list.d/elasticsearch-8.x.list pod kątem zduplikowanego wpisu lub znajdź zduplikowany wpis wśród plików w /etc/ apt/sources.list.d/ i plik /etc/apt/sources.list.
Włącz Elasticsearch w Debianie po instalacji
Po instalacji usługa Elasticsearch jest domyślnie wyłączona podczas uruchamiania i nieaktywna. Aby włączyć usługę Elasticsearch i ustawić ją tak, aby uruchamiała się automatycznie przy rozruchu, użyj poniższych poleceń systemctl
Komenda:
sudo systemctl enable elasticsearch.service --now
Skonfiguruj Elasticsearch 8
Kolejnym etapem zarządzania Elasticsearch 8 w systemie Debian Linux jest jego konfiguracja.
Zapoznanie się z domyślnymi ustawieniami Elasticsearch
W przypadku świeżej instalacji Elasticsearch oprogramowanie umieszcza przetworzone i przechowywane dane w katalogu /var/lib/elasticsearch. Jeśli potrzebujesz modyfikacji konfiguracji, katalogiem, do którego się udasz, będzie /etc/elasticsearch. Jeśli opcje uruchamiania Java wymagają dostosowania, ustawienia te można dostosować w pliku konfiguracyjnym /etc/default/elasticsearch.
Te standardowe ustawienia pasują do samodzielnych serwerów, na których Elasticsearch działa wyłącznie na hoście lokalnym. Jeśli jednak Twoim celem jest utworzenie klastra Elasticsearch lub zezwolenie na połączenia zdalne, konieczne są modyfikacje konfiguracji domyślnej.
Udoskonalanie pliku konfiguracyjnego Elasticsearch
Plik konfiguracyjny Elasticsearch zawiera wiele parametrów, które można dostosować do własnych potrzeb. Aby otworzyć ten plik, wykonaj następujące polecenie:
sudo nano /etc/elasticsearch/elasticsearch.yml
Ważnym parametrem jest klaster.nazwa, który określa nazwę klastra, do którego należy Twój węzeł. Domyślnie jest to „elasticsearch”, ale w środowisku produkcyjnym zalecana jest bardziej wyrazista nazwa.
Oto przykład:
cluster.name: my_application
Opcja node.name to kolejna ważna opcja, która ustawia nazwę węzła Elasticsearch. Nazwa ta jest niezbędna do sprawnego administrowania i zarządzania, szczególnie podczas pracy z wieloma węzłami.
Oto przykład:
node.name: node-1
Skonfiguruj Elasticsearch 8 z HTTPS w Debianie
Poniżej omówiono konfigurowanie protokołu HTTPS dla instalacji Elasticsearch. Szyfrowanie jest niezbędne do zabezpieczenia danych, a włączenie Elasticsearch 8 do korzystania z protokołu HTTPS zapewnia bezpieczną transmisję danych między węzłami i klientami.
Generuj certyfikaty SSL
Pierwszym krokiem w konfiguracji Elasticsearch dla HTTPS jest wygenerowanie certyfikatu SSL. Ten certyfikat służy do szyfrowania danych między Twoim serwerem a klientami. Elasticsearch ma wbudowane narzędzie o nazwie Elasticsearch-certutil, którego można użyć do wygenerowania certyfikatu z podpisem własnym. Uruchom następujące polecenie:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12
Spowoduje to utworzenie pliku .p12 w katalogu konfiguracyjnym. Plik ten zawiera zarówno klucz prywatny, jak i certyfikat publiczny. Ważne jest, aby chronić ten plik i upewnić się, że nie jest on dostępny dla nieupoważnionych użytkowników.
Zaktualizuj konfigurację Elasticsearch 8
Następnie musisz zaktualizować plik konfiguracyjny Elasticsearch znajdujący się w /etc/elasticsearch/elasticsearch.yml, aby uwzględnić ścieżki do Twojego certyfikatu i klucza prywatnego. Otwórz plik konfiguracyjny i dodaj następujące wiersze:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
Ustawienia te włączają SSL dla warstwy transportowej, określają, że do weryfikacji SSL używamy certyfikatów oraz definiują ścieżki do certyfikatu i klucza prywatnego.
Zezwalanie na dostęp zdalny (opcjonalnie)
Elasticsearch jest domyślnie skonfigurowany tak, aby nasłuchiwał tylko hosta lokalnego. Można to jednak dostosować w przypadkach, gdy wymagany jest zdalny dostęp. Poszukaj sekcji Sieć i odkomentuj linię network.host, usuwając znak # z przodu. Zastąp istniejącą wartość swoim wewnętrznym prywatnym adresem IP lub zewnętrznym adresem IP.
Oto przykład:
# network.host: 192.168.0.1
W tym przykładzie plik network.host został odkomentowany i dostosowany do wewnętrznego prywatnego adresu IP.
Ze względów bezpieczeństwa wskazane jest podanie indywidualnych adresów IP. Można jednak zmienić interfejs sieciowy tak, aby nasłuchiwał wszystkich, ustawiając go na 0.0.0.0 dla wielu wewnętrznych lub zewnętrznych adresów IP łączących się z serwerem.
Po dokonaniu niezbędnych zmian zapisz plik konfiguracyjny (CTRL+O aby zapisać, CTRL+X aby wyjść).
Aby wymusić zmiany w pliku konfiguracyjnym, zrestartuj usługę Elasticsearch za pomocą polecenia:
sudo systemctl restart elasticsearch
Modyfikowanie reguł zapory UFW dla połączeń zdalnych
Jeśli skonfigurowałeś Elasticsearch tak, aby zezwalał na połączenia zdalne, dostosowanie reguł zapory sieciowej do obsługi tych połączeń jest niezbędne. Nieskomplikowana zapora sieciowa (UFW) może w tym pomóc.
Możesz zezwolić określonemu adresowi IP na połączenie z Elasticsearch, wykonując to polecenie:
sudo ufw allow from <IP Address> to any port 9200
Nie zapomnij wymienić z rzeczywistym adresem IP, z którego chcesz zezwolić na połączenia. To polecenie otworzy port 9200 dla określonego adresu IP, umożliwiając mu interakcję z Elasticsearch.
Na przykład, jeśli chcesz zezwolić na połączenie z adresem IP 192.168.0.2, polecenie będzie wyglądać następująco:
sudo ufw allow from 192.168.0.2 to any port 9200
Następnie Twój serwer Debian zezwoli ruchowi z 192.168.0.2 na dostęp do Elasticsearch przez port 9200. Pamiętaj, że bezpieczeństwo Twoich serwerów jest najważniejsze, więc upewnij się, że udzielasz dostępu tylko zaufanym adresom IP.
Weryfikacja konfiguracji Elasticsearch 8
Po zmodyfikowaniu konfiguracji Elasticsearch ważne jest sprawdzenie, czy zmiany zostały poprawnie zaimplementowane i czy instancja Elasticsearch działa zgodnie z oczekiwaniami.
Sprawdzanie stanu usługi Elasticsearch 8
Najpierw sprawdź status usługi Elasticsearch, aby potwierdzić, że jest aktywna i działa. Można to zrobić za pomocą następującego polecenia:
sudo systemctl status elasticsearch
To polecenie wyświetli informacje o usłudze Elasticsearch, w tym o tym, czy jest ona aktywna i działa. Jeśli nie, może być konieczne rozwiązanie problemu lub przejrzenie zmian w konfiguracji.
Testowanie dostępu zdalnego (opcjonalnie)
Jeśli włączyłeś dostęp zdalny, możesz go przetestować, próbując połączyć się z instancją Elasticsearch ze zdalnego komputera. Jak omówiono w poprzedniej sekcji, adres IP, z którego się łączysz, musi być dozwolony w regułach zapory sieciowej.
W tym celu możesz użyć polecenia curl:
curl https://<Your_Elasticsearch_IP>:9200
Zastępować z adresem IP Twojego serwera Elasticsearch. Jeśli się powiedzie, to polecenie powinno zwrócić informacje o instancji Elasticsearch.
Sprawdzanie integralności danych
Na koniec ważne jest, aby zweryfikować integralność danych Elasticsearch, zwłaszcza jeśli dokonałeś zmian w katalogu danych w swojej konfiguracji. Elasticsearch udostępnia interfejsy API, których można używać do sprawdzania stanu swoich danych.
Na przykład, aby uzyskać status wszystkich indeksów, użyj następującego polecenia:
curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"
To polecenie wyświetla listę wszystkich indeksów w instancji Elasticsearch i ich stan. Sprawdź stan swoich indeksów, aby mieć pewność, że Twoje dane są bezpieczne i dostępne.
Uwaga: pamiętaj, że utrzymanie integralności i bezpieczeństwa Twoich danych powinno zawsze być najwyższym priorytetem. Zawsze dokładnie sprawdzaj wprowadzone zmiany, sprawdzaj konfigurację i regularnie monitoruj instancję Elasticsearch. Pomoże Ci to w utrzymaniu niezawodnego, wydajnego i bezpiecznego systemu zarządzania danymi za pomocą Elasticsearch.
Interakcja z Elasticsearch 8 poprzez cURL
W tej sekcji omówimy typowe polecenia współpracujące z instancją Elasticsearch 8. Skorzystamy z curl
narzędzie wiersza poleceń, elastyczna biblioteka do przesyłania danych przy użyciu różnych protokołów.
Usuwanie indeksu
Indeks Elasticsearch to zbiór dokumentów o podobnych cechach. Jeśli masz indeks o nazwie próbki, który chcesz usunąć, możesz to zrobić za pomocą następującego polecenia:
curl -X DELETE 'https://localhost:9200/samples'
To polecenie wysyła żądanie HTTP DELETE do określonego adresu URL, które informuje Elasticsearch o usunięciu indeksu próbek.
Lista wszystkich indeksów
Aby pobrać listę wszystkich indeksów w instancji Elasticsearch, użyj punktu końcowego _cat/indices z żądaniem GET w następujący sposób:
curl -X GET 'https://localhost:9200/_cat/indices?v'
W odpowiedzi zostaną wyświetlone wszystkie indeksy, w tym ich stan, stan, rozmiar i liczba dokumentów.
Pobieranie dokumentów z indeksu
Aby pobrać wszystkie dokumenty z określonego indeksu, powiedzmy przykład, użyj punktu końcowego _search:
curl -X GET 'https://localhost:9200/sample/_search'
To polecenie pobiera wszystkie dokumenty zapisane w przykładowym indeksie.
Wyszukiwanie według parametrów adresu URL
Możesz użyć składni zapytań Lucene do podstawowego wyszukiwania tekstowego. Na przykład, jeśli chcesz znaleźć dokumenty, w których dziedziną szkoły jest Harvard, użyjesz:
curl -X GET https://localhost:9200/samples/_search?q=school:Harvard
To polecenie wysyła żądanie GET do punktu końcowego _search przy użyciu parametru q dla zapytania.
Wyszukiwanie za pomocą Elasticsearch Query DSL
W przypadku bardziej złożonych zapytań możesz preferować użycie Query DSL Elasticsearch, które pozwala używać JSON do definiowania zapytań. Ten format jest bardziej czytelny i łatwiejszy do debugowania złożonych zapytań.
Oto przykład:
curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
"query" : {
"match" : { "school": "Harvard" }
}
}'
To polecenie działa tak samo jak poprzednie, ale używa JSON do definicji zapytania. Dzięki temu polecenie jest bardziej czytelne, szczególnie w przypadku bardziej złożonych zapytań.
Dodawanie i aktualizacja dokumentów
Aby dodać nowy dokument do indeksu, możesz użyć metody PUT wraz z punktem końcowym _doc. Na przykład, aby dodać dokument o identyfikatorze 1 i kierunku szkolnym Harvard do indeksu próbek, należy użyć:
curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
"school" : "Harvard"
}'
Aby zaktualizować dokument, możesz użyć metody POST z punktem końcowym _update. Na przykład, aby dodać pole uczniów do właśnie utworzonego dokumentu, użyj:
curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
"students": 50000}
}'
To polecenie informuje Elasticsearch, aby zaktualizował dokument o identyfikatorze 1 w indeksie próbek, dodając pole studentów o wartości 50000.
Te polecenia to tylko niewielka próbka tego, co można osiągnąć za pomocą Elasticsearch. Zapytanie Elasticsearch DSL
Zarządzaj Elasticsearch 8 na Debianie 12, 11 lub 10
Ten segment dotyczy procesu usuwania Elasticsearch 8 z serwera Debian Linux. Możesz chcieć to zrobić z kilku powodów, np. oprogramowanie nie spełnia już Twoich wymagań lub planujesz przejście na alternatywne rozwiązanie. Niezależnie od powodów, kroki opisane poniżej przeprowadzą Cię przez ten proces.
Usuwanie Elasticsearch 8 z Debiana
Usunięcie Elasticsearch z serwera wymaga prostego polecenia. Pamiętaj jednak, że ta czynność jest nieodwracalna i spowoduje usunięcie wszystkich powiązanych danych. Oto polecenie do wykonania:
sudo apt remove elasticsearch
Uruchomienie powyższego polecenia skutecznie odinstaluje Elasticsearch, zwalniając wszelkie wcześniej przydzielone zasoby systemowe.
Usuń repozytorium Elasticsearch APT
Repozytorium Elasticsearch pozostanie w systemie po dezinstalacji. Jeśli masz pewność, że nie będziesz w przyszłości ponownie instalować Elasticsearch, równie dobrze możesz się go pozbyć, aby uniknąć niepotrzebnego bałaganu.
Oto jak usunąć repozytorium Elasticsearch:
sudo rm /etc/apt/sources.list.d/elasticsearch-8.list
Powyższe polecenie usunie repozytorium Elasticsearch 8 z serwera Debian Linux.
Odświeżanie listy repozytoriów
Ostatnim krokiem jest odświeżenie listy pakietów apt. Ten krok jest niezbędny, aby mieć pewność, że Twój system nie weźmie pod uwagę Elasticsearch 8 przy przyszłych aktualizacjach lub instalacjach.
Polecenie aktualizacji listy repozytoriów jest następujące:
sudo apt update
Wniosek
Po pomyślnym zainstalowaniu Elasticsearch 8 w systemie Debian możesz wykorzystać jego zaawansowane możliwości wyszukiwania i analizy do wydajnego zarządzania i analizowania danych. Regularnie aktualizuj Elasticsearch, aby korzystać z najnowszych funkcji i ulepszeń zabezpieczeń. Ciesz się potężnymi funkcjonalnościami Elasticsearch 8.x, dostosowanymi do wymagań nowoczesnego zarządzania danymi i analityki.