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.servicesudo 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 --permanentsudo firewall-cmd --reloadsudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanentsudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanentsudo 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> --permanentsudo 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í.