GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Elasticsearch na Debian 11 Bullseye

Elasticsearch je vysoce škálovatelný open source fulltextový vyhledávač a analytický nástroj . Software podporuje operace RESTful, které vám umožňují ukládat, vyhledávat a analyzovat velké objemy dat rychle a téměř v reálném čase. Elasticsearch je oblíbený a oblíbený mezi sysadminy a vývojáři, protože je to mocný vyhledávač založený na knihovně Lucene. Obecně se používá jako základní motor/technologie, která pohání aplikace s komplexními vyhledávacími funkcemi a požadavky.

V následujícím tutoriálu se dozvíte, jak nainstalovat Elastic Search na Debian 11 Bullseye .

Předpoklady

  • Doporučený operační systém: Debian 11 Bullseye
  • Uživatelský účet: Uživatelský účet s přístupem sudo nebo root.
  • Požadované balíčky: Curl a Java

Instalace Curl

Zvlnění je potřeba pro některé části této příručky. Chcete-li nainstalovat tento balíček, zadejte následující příkaz:

sudo apt install curl -y

Instalace Java

Chcete-li úspěšně nainstalovat, a co je důležitější, použijte Elasticsearch , je třeba nainstalovat Java . Postup je docela snadný.

Chcete-li nainstalovat OpenJDK , zadejte následující příkaz balíček:

sudo apt install default-jdk

Ukázkový výstup s balíčky k instalaci:

Chcete-li pokračovat v instalaci, zadejte (Y) poté stiskněte (ENTER) klíč.

Dále ověřte nainstalovanou verzi Java a sestavení pomocí následujícího příkazu:

java -version

Ukázkový výstup níže:

Instalace Elasticsearch

Elasticsearch není k dispozici ve standardních repozitářích Debianu 11, takže jej budete muset nainstalovat z repozitáře Elasticsearch APT.

Před přidáním úložiště importujte klíč GPG pomocí následujícího příkazu:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Příklad výstupu s (OK) potvrzení, že bylo úspěšné:

Nyní, když jste přidali klíč GPG, budou úložiště Elasticsearch nyní důvěryhodná. Pokračujte v instalaci oficiálního úložiště pomocí následujícího příkazu terminálu:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

V době vytváření výukového programu je Elasticsearch 7.13.4 nejnovější verzí, ale časem se změní a úložiště, které jste přidali, bude v budoucnu fungovat pro všechny verze 7.x.x.

Dále aktualizujte seznam úložišť a nainstalujte Elasticsearch následovně:

sudo apt update && sudo apt install elasticsearch

Ve výchozím nastavení je služba Elasticsearch při spouštění zakázána a není aktivní. Chcete-li službu spustit a povolit při spouštění systému, zadejte následující (systemctl) příkaz:

sudo systemctl enable elasticsearch.service --now

Dále, abyste ověřili, že Elasticsearch běží správně, použijete curl příkaz k odeslání požadavku HTTP na port 9200 na localhost takto:

curl -X GET "localhost:9200/"

Ukázkový výstup pro ověření správného fungování Elasticsearch:

Chcete-li zobrazit systémovou zprávu, kterou Elasticsearch přihlásí do vašeho systému, zadejte následující příkaz:

sudo journalctl -u elasticsearch

Příklad protokolu výstupu:

Konfigurace elastického vyhledávání

Data Elasticsearch jsou uložena ve výchozím umístění adresáře (/var/lib/elasticsearch) . Chcete-li zobrazit nebo upravit konfigurační soubory, najdete je v umístění adresáře (/etc/elasticsearch) a možnosti spouštění jazyka Java lze nakonfigurovat v (/etc/default/elasticsearch) konfigurační soubor.

Výchozí nastavení jsou většinou v pořádku pro jednotlivé operační servery, protože Elasticsearch běží na localhost pouze. Pokud se však chystáte nastavit cluster, budete muset upravit konfigurační soubor tak, aby umožňoval vzdálená připojení.

Nastavení vzdáleného přístupu (volitelné)

Ve výchozím nastavení Elasticsearch naslouchá pouze localhost. Chcete-li to změnit, otevřete konfigurační soubor následovně:

sudo nano /etc/elasticsearch/elasticsearch.yml

Dále přejděte dolů a najděte sekci Síť a zrušte komentář (#) následující řádek a nahraďte jej adresou Internal Private IP nebo External IP takto:

V příkladu jsme zrušili komentář (#) (network.host) a změnil ji na interní soukromou IP adresu.

Z bezpečnostních důvodů je ideální pro specifikaci adres; pokud však máte na server více interních nebo externích IP adres, změňte síťové rozhraní tak, aby naslouchalo všem zadáním (0.0.0.0) takto:

Dále uložte konfigurační soubor (CTRL+O) poté ukončete (CLTR+X) .

Aby se změny projevily, budete muset restartovat službu Elasticsearch pomocí následujícího příkazu:

sudo systemctl restart elasticsearch

Nakonfigurujte UFW Firewall tak, aby umožňoval vzdálená připojení

Pokud povolíte vzdálená připojení, budete muset povolit vaší bráně firewall, aby umožnila připojení těchto IP adres. To lze provést pomocí následujícího příkazu:

sudo ufw allow from <IP Address> to any port 9200

Více informací o Debianu a UFW firewallu lze nalézt pro konfiguraci UFW firewallu v Debianu.

Jak používat Elasticsearch

Chcete-li použít Elasticsearch pomocí příkazu curl je přímočarý proces. Níže jsou uvedeny některé z nejčastěji používaných:

Smazat index

Pod indexem je název vzorky .

curl -X DELETE 'http://localhost:9200/samples'

Seznam všech indexů

curl -X GET 'http://localhost:9200/_cat/indices?v'

Seznam všech dokumentů v indexu

curl -X GET 'http://localhost:9200/sample/_search'

Dotaz pomocí parametrů adresy URL

Zde používáme formát dotazu Lucene k zápisu q=school:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Dotaz pomocí JSON alias Elasticsearch Query DSL

Můžete se dotazovat pomocí parametrů na adrese URL. Ale můžete také použít JSON, jak je znázorněno v dalším příkladu. JSON by bylo snazší číst a ladit, když máte složitý dotaz než jeden obrovský řetězec parametrů URL.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Vypsat mapování indexů

Všechna pole Elasticsearch jsou indexy. Toto uvádí seznam všech polí a jejich typů v indexu.

curl -X GET http://localhost:9200/samples

Přidat data

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Aktualizovat dokument

Zde je návod, jak přidat pole do existujícího dokumentu. Nejprve vytvoříme nový. Poté jej aktualizujeme.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Index zálohy

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Hromadné načítání dat ve formátu JSON

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Zobrazit stav clusteru

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agregace a agregace segmentů

Pro webový server Nginx to vytváří počty návštěv webu podle města uživatele:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Tím se to rozšiřuje na počet kódů odezvy produktu podle města v protokolu webového serveru Nginx

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Použití ElasticSearch se základním ověřováním

Pokud jste zapnuli zabezpečení pomocí ElasticSearch, musíte ke každému příkazu curl zadat uživatele a heslo, jak je uvedeno níže:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Krásný tisk

Chcete-li JSON pěkně vytisknout, přidejte k libovolnému vyhledávání ?pretty=true. Takhle:

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Pro dotaz a vrácení pouze určitých polí

Chcete-li vrátit pouze určitá pole, vložte je do pole _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Na dotaz podle data

Pokud je pole typu datum, můžete použít matematiku data takto:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Odinstalace Elasticsearch

Pokud již Elasticsearch nepotřebujete, můžete software odebrat pomocí následujícího příkazu:

sudo apt remove elasticsearch

Odeberte úložiště apt následovně:

sudo rm /etc/apt/sources.list.d/elastic-7.x.list

Poté aktualizujte svůj seznam úložišť, aby odrážel změny:

sudo apt update

Debian
  1. Jak nainstalovat Elasticsearch na Debian Linux

  2. Jak nainstalovat Python 3.8 na Debian 11 Bullseye

  3. Jak nainstalovat Python 3.9 na Debian 11 Bullseye

  1. Jak nainstalovat R na Debian 9

  2. Jak nainstalovat Elasticsearch na Debian 9

  3. Jak nainstalovat Elasticsearch na Debian 10

  1. Jak nainstalovat R na Debian 10

  2. Jak nainstalovat Debian 11 (Bullseye) krok za krokem

  3. Jak nainstalovat Debian 11