Elasticsearch je open-source vyhledávač založený na Apache Lucene, nabízí distribuovaný fulltextový vyhledávač v reálném čase s webovým rozhraním HTTP a dokumenty JSON bez schémat.
Elasticsearch je vyvinut v Javě. Open-source verze Elasticsearch je vydána pod licencí Apache 2.0 a komerční verze je vydána pod licencí Elastic. V současnosti je to nejpopulárnější podnikový vyhledávač po Apache Solr.
Tento příspěvek vám pomůže nainstalovat Elasticsearch na CentOS 8 / RHEL 8.
Předpoklady
Elasticsearch je vytvořen pomocí Javy a balíček obsahuje přibalenou verzi OpenJDK, což znamená, že pro instalaci Elasticsearch nemusíte Javu instalovat samostatně. Přiložený OpenJDK se nachází v adresáři JDK domovského adresáře Elasticsearch /usr/share/elasticsearch.
Nainstalujte Javu
Chcete-li používat vlastní verzi Javy, nainstalujte si LTS verzi Javy a nastavte proměnnou prostředí JAVA_HOME ve vašem systému.
ČTĚTE :Jak nainstalovat Javu na CentOS 8 / RHEL 8
Ověřte verzi Java nainstalovanou v systému.
java -version
Výstup:
java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Nastavte JAVA_HOME pomocí níže uvedeného příkazu.
export JAVA_HOME=<JAVA_PATH>Po instalaci Elasticsearch do vašeho systému nastavte JAVA_HOME v souboru /etc/sysconfig/elasticsearch, aby Elasticsearch používal vlastní verzi Java.
Nastavení úložiště Elasticsearch
Elastic nabízí předpřipravený binární (rpm) balíček pro RHEL a jeho deriváty. Stáhněte a nainstalujte veřejný podpisový klíč Elastic.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Verze zdarma
Tento balíček je zdarma k použití. Obsahuje open source, bezplatné a placené komerční funkce. Při instalaci balíčku obdržíte základní licenci. Můžete navštívit stránku předplatného, kde najdete seznam všech funkcí zahrnutých v bezplatné a komerční verzi.
Můžete zahájit 30denní zkušební verzi a vyzkoušet všechny placené funkce. Na konci zkušební doby budou komerční funkce fungovat ve zhoršeném režimu. Můžete vrátit licenci na základní licenci, prodloužit zkušební verzi nebo zakoupit předplatné.
cat << EOF > /etc/yum.repos.d/elasticsearch.repo [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages 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 EOF
Verze s otevřeným zdrojovým kódem
Tento balíček je zdarma k použití a obsahuje pouze funkce, které jsou dostupné pod licencí Apache 2.0.
cat << EOF > /etc/yum.repos.d/elasticsearch.repo [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Nainstalujte Elasticsearch
Nainstalujte Elasticsearch (v7.x) pomocí následujícího příkazu.
Verze zdarma
yum install -y elasticsearch
Verze s otevřeným zdrojovým kódem
yum install -y elasticsearch-oss
Povolte automatické spouštění systému Elasticsearch během spouštění systému.
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
Jakmile spustíte službu Elasticsearch, počkejte alespoň minutu, než se plně rozběhne. Jinak se testování nezdaří.
Elastisearch by nyní měl naslouchat na portu 9200 pro zpracování požadavků HTTP. Pro získání odpovědi použijte curl.
curl -X GET 'http://localhost:9200'
Měli byste dostat odpověď jako níže.
{ "name" : "centos8.itzgeek.local", "cluster_name" : "elasticsearch", "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg", "version" : { "number" : "7.4.0", "build_flavor" : "oss", "build_type" : "rpm", "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910", "build_date" : "2019-09-27T08:36:48.569419Z", "build_snapshot" : false, "lucene_version" : "8.2.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Konfigurace elastického vyhledávání
Konfigurační soubory Elasticsearch se nacházejí v adresáři /etc/elasticsearch/. elasticsearch.yml je hlavní konfigurační soubor Elasticsearch a obsahuje výchozí nastavení pro běh vývojového clusteru. Protokoly Elasticsearch jsou uloženy v adresáři /var/log/elasticsearch.
Název clusteru
Nastavení cluster.name se používá k vyhledání a automatickému spojení uzlu s jinými uzly. Pokud má skupina uzlů Elasticsearch ve stejné síti stejný název clusteru, najdou se navzájem a vytvoří cluster.
Změňte výchozí název clusteru uzlu Elasticsearch, abyste se vyhnuli automatickému spojení s jinými uzly ve stejné síti. Ujistěte se, že používáte jedinečný název clusteru.
Upravte soubor elasticsearch.yml.
vi /etc/elasticsearch/elasticsearch.yml
Nahraďte els-cluster názvem svého clusteru Elasticsearch.
cluster.name: els-cluster
Název uzlu
Název node.name je jako název hostitele pro server Elasticsearch, dynamicky generovaný během spouštění služby. Název uzlu můžete nastavit aktualizací níže uvedeného řádku. Nahraďte els-cluster-node01 svým názvem uzlu Elasticsearch.
node.name: els-cluster-node01
Adresa pro poslech
Elasticsearch se ve výchozím nastavení váže na localhost (127.0.0.1) a naslouchá na portu číslo 9200 pro provoz HTTP. Pro komunikaci mezi uzly v rámci clusteru používá číslo portu 9300 – 9400.
Chcete-li vytvořit víceuzlový cluster Elasticsearch nebo přenést uzel Elasticsearch pro produkční použití, aby aplikace měly přístup k uzlu Elasticsearch, musíte nakonfigurovat Elasticsearch tak, aby naslouchal IP adrese systému.
### Listening on particular IPv4 ### network.host: 192.168.0.10
NEBO
### Listen on All IP Address ### network.host: 0.0.0.0
Musíte také aktualizovat níže uvedená nastavení pomocí vaší systémové IP adresy.
discovery.seed_hosts: ["192.168.0.10"]
Restartujte službu Elasticsearch.
systemctl restart elasticsearch
Jakmile službu Elasticsearch restartujete, počkejte alespoň minutu, než se Elasticsearch plně spustí.
Zkontrolujte, zda Elasticsearch naslouchá na portu 9200 na všech IP adresách nebo na konkrétní IP adrese pomocí příkazu netstat.
ČTĚTE: Příkaz netstat nebyl nalezen na CentOS 8 / RHEL 8
netstat -antup | grep -i 9200
Výstup:
tcp6 0 0 :::9200 :::* LISTEN 2143/java
Ověřte, že název uzlu i název clusteru byly správně nastaveny pomocí zvlnění.
curl -X GET 'http://192.168.0.10:9200'
Měli byste dostat odpověď jako níže.
{ "name" : "els-cluster-node01", "cluster_name" : "els-cluster", "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg", "version" : { "number" : "7.4.0", "build_flavor" : "oss", "build_type" : "rpm", "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910", "build_date" : "2019-09-27T08:36:48.569419Z", "build_snapshot" : false, "lucene_version" : "8.2.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Práce s Elasticsearch
Pojďme přidat některá data do Elasticsearch. Příkaz curl můžete použít ke čtení, přidávání, odstraňování a aktualizaci dat do Elasticsearch přes port 9200 pomocí RESTful API.
Dokumenty jsou uloženy v následujícím formátu
Elasticsearch ⇒ Indexy ⇒ Typy ⇒ Dokumenty ⇒ Pole
Indexy: Množné číslo indexu, kde jsou uložena data Elasticsearch.
Typy: Obsahuje více dokumentů a je jako typ dat.
Dokumenty: Obsahuje datová pole.
Pole: Skutečná data.
Přidat data
Pomocí následujícího příkazu curl přidejte data do našeho Elasticsearch.
curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d ' { "Title" : "Install Elasticsearch On RHEL 8", "Date" : "May 2019", "Tag" : "RHEL" }'
Měli byste obdržet následující odpověď s „výsledkem“:„vytvořeno.“
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
Kde,
itzgeek: Index clusteru Elasticsearch.
pokyny: Typ dokumentu
1: ID položky pod indexem howtos a itzgeek.
Číst data
K dotazu na data na Elasticsearch použijte následující příkaz.
curl -X GET 'http://localhost:9200/itzgeek/howtos/1'
Chcete-li získat formátovaný výstup, připojte k výše uvedenému příkazu ?pretty=true.
curl -X GET 'http://localhost:9200/itzgeek/howtos/1?pretty=true'
Výstup bude vypadat následovně.
{ "_index" : "itzgeek", "_type" : "howtos", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "Title" : "Install Elasticsearch On RHEL 8", "Date" : "May 2019", "Tag" : "RHEL" } }
Aktualizovat data
K aktualizaci dat použijte následující příkaz.
curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d ' { "Title" : "Install Elasticsearch On RHEL 8", "Date" : "May 2019", "Tag" : "RHEL" }'
V rejstříku, typu a dokumentu nedojde k žádné změně. Pole však budou mít upravená data.
Odpověď by měla vypadat následovně, obsahovat „_version“:2 a „result“:“updated“, což znamená, že dokument byl aktualizován.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}
Odebrat data
K odstranění dokumentu použijte následující příkaz.
curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'
Odpověď bude vypadat následovně. Pokud je dokument nalezen, dostanete „výsledek“:“vymazáno“.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":3,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}
Pokud dokument není nalezen, dostanete „result“:“not_found“.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":4,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}
Závěr
Doufám, že jste se naučili nainstalovat Elasticsearch na CentOS 8 / RHEL 8 a přidávat, číst, mazat a aktualizovat data v Elasticsearch. Můžete také nastavit víceuzlový cluster Elasticsearch pro zpracování velkého množství dat.