Jak nainstalovat Elasticsearch na Ubuntu 22.04 s SSL. Elasticsearch 8 je výkonné škálovatelné distribuované vyhledávání a analýza dat v reálném čase. Zde se dozvíte, jak nakonfigurovat SSL pro vaši instalaci Elasticsearch pomocí reverzního proxy Nginx na Ubuntu 22.04.
Vytvoříte si subdoménu pro svou službu Elasticsearch a nainstalujete bezplatný certifikát Let’s Encrypt SSL pomocí Certbota.
Toto nastavení je testováno na Google Cloud Platform se systémem Ubuntu 22.04 LTS. Tato příručka tedy bude perfektně fungovat na jiných poskytovatelích cloudových služeb, jako je AWS, Azure nebo jakékoli VPS nebo dedikované servery.
Předpoklady
- Server s minimálně 2 GB RAM a 2vCPU
- Uživatel s právy sudo.
Počáteční nastavení serveru
Začněte aktualizací softwarových balíčků serveru na nejnovější dostupnou verzi.
sudo apt update sudo apt upgrade
Konfigurovat subdoménu
Ujistěte se, že pro přístup k instalaci Elasticsearch používáte subdoménu.
Přejděte do sekce správy DNS a vytvořte nový A
záznam s názvem, který si přejete pro svou subdoménu (například search
) a hodnotu IP adresy vašeho serveru.
Vaše subdoména tedy bude vypadat podobně jako ta níže. Pokud chcete nakonfigurovat svou hlavní doménu, můžete to udělat také.
search.yourdomain.com
Krok 1:Nainstalujte ElasticSearch
Java je již součástí balíčku Elasticsearch, takže nemusíte Javu instalovat ručně. Přečtěte si další informace o instalaci Javy na Ubuntu 22.04.
Zde nainstalujeme Elasticsearch 8.
Začněte importem klíče GPG úložiště Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Přidejte úložiště do seznamu zdrojů vašeho serveru nebo systému Ubuntu.
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Aktualizujte seznam balíčků a nainstalujte ElasticSearch.
sudo apt update sudo apt install elasticsearch
Po dokončení instalace obdržíte heslo superuživatele, poznamenejte si ho a zabezpečte jej.
------------------- Security autoconfiguration information ---------------------- Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : houbJ1uivo5b=aVYYPa5 If this node should join an existing cluster, you can reconfigure this with '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>' after creating an enrollment token on your existing cluster. You can complete the following actions at any time: Reset the password of the elastic built-in superuser with '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'. Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'. Generate an enrollment token for Elasticsearch nodes with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'. ---------------------------------------------------------------------------------
Služba Elasticsearch se po instalaci nespouští automaticky, ke konfiguraci služby Elasticsearch tak, aby se automaticky spouštěla pomocí systemd, musíte provést níže uvedené příkazy.
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Jakmile je Elasticsearch nainstalováno, můžete omezit port 9200
z vnějšího přístupu úpravou elasticsearch.yml file
a odkomentujte network.host
a nahraďte hodnotu Internal IP or any IP or localhost
.
sudo nano /etc/elasticsearch/elasticsearch.yml
Takže to vypadá takto..
network.host: INTERNAL_IP
Můžete také použít localhost
jako hostitele nebo libovolné IP adresy.
Stiskněte Ctrl+X
následuje Y
a Enter
pro uložení souboru a ukončení.
Nyní spusťte a povolte Elasticsearch při spouštění serveru.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Nyní se ujistěte, že vaše služba Elasticsearch běží.
sudo systemctl status elasticsearch
Krok 2:Ověřte, zda Elasticsearch funguje
Otestujte svou instalaci odesláním požadavku HTTPs připojením certifikátu pomocí níže uvedeného příkazu.
Poznamenejte si heslo, které jste obdrželi dříve, budete jej muset použít, až budete vyzváni.
sudo su curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200
Na výzvu zadejte heslo.
Obdržíte odpověď, jak je uvedeno níže.
{ "name" : "elasticsearch-vm", "cluster_name" : "elasticsearch", "cluster_uuid" : "vGrj3z4rQEWRBUdd9IhZWA", "version" : { "number" : "8.2.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef", "build_date" : "2022-05-25T15:47:06.259735307Z", "build_snapshot" : false, "lucene_version" : "9.1.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }
Krok 3:Nainstalujte a nakonfigurujte Nginx pro Elasticsearch
Nyní je čas nainstalovat a nakonfigurovat Nginx. Spusťte níže uvedený příkaz a nainstalujte Nginx.
sudo apt install nginx
Nyní můžete nakonfigurovat reverzní proxy Nginx pro vaše Elasticsearch.
Odebrat výchozí konfigurace
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Vytvořte nový konfigurační soubor Nginx.
sudo nano /etc/nginx/sites-available/search.conf
Vložte následující.
Poznámka:Musíte použít přesně stejný IP
nebo localhost
které jste použili v hostiteli konfigurace Elasticsearch.
server { listen [::]:80; listen 80; server_name search.yourdomain.com; location / { proxy_pass http://INTERNAL_IP:9200; proxy_redirect off; proxy_read_timeout 90; proxy_connect_timeout 90; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; }
Uložte a ukončete soubor.
Povolte konfiguraci vytvořením symbolického odkazu.
sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf
Krok 4:Instalace Let’s Encrypt SSL
HTTPS je protokol pro zabezpečenou komunikaci mezi serverem (instance) a klientem (webovým prohlížečem). Díky zavedení Let’s Encrypt, který poskytuje bezplatné certifikáty SSL, si HTTPS osvojí všichni a také poskytuje důvěru vašemu publiku.
sudo apt install python3-certbot-nginx
Nyní jsme nainstalovali Certbot by Let’s Encrypt pro Ubuntu 22.04, spusťte tento příkaz, abyste získali své certifikáty.
sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com
Tento příkaz nainstaluje bezplatné SSL, nakonfiguruje přesměrování na HTTPS a restartuje server Nginx.
Krok 5:Obnovení certifikátu SSL
Certifikáty poskytované Let’s Encrypt jsou platné pouze 90 dní, takže je musíte často obnovovat. Pojďme tedy otestovat funkci obnovení pomocí následujícího příkazu.
sudo certbot renew --dry-run
Tento příkaz otestuje vypršení platnosti certifikátu a nakonfiguruje funkci automatického obnovení.
Připravte se na roli odborníka na informační technologie s operačním systémem Linux
Závěr
Nyní jste se naučili, jak nainstalovat Elasticsearch 8 a zabezpečit jej pomocí bezplatného ssl Let’s Encrypt na Ubuntu 22.04.
Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.