Elasticsearch je open-source distribuovaný fulltextový vyhledávací a analytický nástroj. Podporuje operace RESTful a umožňuje vám ukládat, vyhledávat a analyzovat velké objemy dat v reálném čase. Elasticsearch je jedním z nejpopulárnějších vyhledávačů využívajících aplikace, které mají složité požadavky na vyhledávání, jako jsou velké obchody elektronického obchodu a analytické aplikace.
Tento tutoriál vysvětluje, jak nainstalovat Elasticsearch na CentOS 7.
Předpoklady #
Uživatel, pod kterým jste přihlášeni, musí mít oprávnění sudo, aby mohl instalovat balíčky.
Instalace Elasticsearch #
Doporučený způsob instalace Elasticsearch na CentOS 7 je instalace balíčku rpm z oficiálního úložiště Elasticsearch.
V době psaní tohoto článku je nejnovější verze Elasticsearch 6.7
a vyžaduje Java 8 nebo novější.
Chcete-li nainstalovat OpenJDK8 na váš systém CentOS, zadejte:
sudo yum install java-1.8.0-openjdk-devel
Ověřte instalaci Java vytištěním verze Java:
java -version
Výstup by měl vypadat nějak takto:
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
Nyní, když je Java nainstalována, je dalším krokem přidání úložiště Elasticsearch.
Importujte klíč GPG úložiště pomocí následujícího příkazu:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Otevřete textový editor a vytvořte následující repo soubor:
sudo nano /etc/yum.repos.d/elasticsearch.repo
Do souboru vložte následující obsah:
/etc/yum.repos.d/elasticsearch.repo[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Uložte soubor a zavřete textový editor.
Pokud chcete nainstalovat předchozí verzi Elasticsearch, změňte6.x
v příkazu výše s verzí, kterou potřebujete. Nyní můžete nainstalovat balíček Elasticsearch zadáním:
sudo yum install elasticsearch
Po dokončení procesu instalace spusťte a povolte službu spuštěním:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
To, že Elasticsearch běží, můžete ověřit odesláním požadavku HTTP na port 9200 na localhost pomocí následujícího příkazu curl:
curl -X GET "localhost:9200/"
Výstup bude vypadat podobně jako následující:
{
"name" : "fLVNqN_",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6zKcQppYREaRH0tyfJ9j7Q",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Spuštění služby může trvat 5–10 sekund. Pokud vidíte curl: (7) Failed to connect to localhost port 9200: Connection refused
, počkejte několik sekund a zkuste to znovu.
Chcete-li zobrazit zprávy zaznamenané službou Elasticsearch, můžete použít příkaz níže:
sudo journalctl -u elasticsearch
V tuto chvíli máte na svém serveru CentOS nainstalován Elasticsearch.
Konfigurace Elasticsearch #
Data Elasticsearch jsou uložena v /var/lib/elasticsearch
konfigurační soubory jsou umístěny v /etc/elasticsearch
.
Ve výchozím nastavení je Elasticsearch nakonfigurováno tak, aby naslouchalo pouze na localhost. Pokud klient připojující se k databázi také běží na stejném hostiteli a nastavujete cluster s jedním uzlem, nemusíte měnit výchozí konfigurační soubor.
Vzdálený přístup #
Po vybalení Elasticsearch neimplementuje ověřování, takže k němu může přistupovat kdokoli, kdo má přístup k HTTP API. Pokud chcete povolit vzdálený přístup k vašemu serveru Elasticsearch, budete muset nakonfigurovat bránu firewall a povolit přístup k portu Elasticsearch 9200 pouze důvěryhodným klientům.
Počínaje CentOS 7, Firewall nahrazuje iptables jako výchozí nástroj pro správu brány firewall.
Spuštěním následujícího příkazu umožníte posouzení ze vzdálené důvěryhodné IP adresy na portu 9200
:
Nezapomeňte změnitsudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
192.168.121.80
s vaší vzdálenou IP adresou. Později, pokud chcete povolit přístup z jiné IP adresy, použijte:
sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload
Jakmile je firewall nakonfigurován, dalším krokem je upravit konfiguraci Elasticsearch a umožnit Elasticsearch naslouchat externím připojením.
Chcete-li tak učinit, otevřete elasticsearch.yml
konfigurační soubor:
sudo nano /etc/elasticsearch/elasticsearch.yml
Vyhledejte řádek, který obsahuje network.host
, zrušte jeho komentář a změňte hodnotu na 0.0.0.0
:
network.host: 0.0.0.0
Pokud máte na svém počítači více síťových rozhraní, můžete zadat IP adresu rozhraní, která způsobí, že Elasticsearch bude naslouchat pouze na určeném rozhraní.
Restartujte službu Elasticsearch, aby se změny projevily:
sudo systemctl restart elasticsearch
A je to. Nyní se můžete připojit k serveru Elasticsearch ze svého vzdáleného umístění.