Elasticsearch 8 är en kraftfull och flexibel sök- och analysmotor med öppen källkod känd för sin skalbarhet, hastighet och dataindexering i realtid. 8.x-versionen medför betydande förbättringar, inklusive förbättrade säkerhetsfunktioner med enkel certifikathantering, utökade textsökningsmöjligheter och effektivare körning av frågor. Den introducerar också inbyggt stöd för körtidsfält, vilket gör det lättare att anpassa hur data indexeras och söks utan att ändra det underliggande schemat. Dessa framsteg gör Elasticsearch 8.xa till en robust lösning för att hantera och analysera stora datamängder.
För att installera Elasticsearch 8 på Debian 12, 11 eller 10 kan du använda det officiella APT-förrådet som tillhandahålls av Elasticsearch. Den här guiden leder dig genom stegen för att ställa in Elasticsearch, vilket säkerställer att du har tillgång till de senaste funktionerna och förbättringarna.
Uppdatera Debian före installationen av Elasticsearch
I det första steget måste du se till att ditt Debian Linux-system är uppdaterat. Detta steg kommer att uppdatera all befintlig programvara till de senaste versionerna och förbereda ditt system för installation.
Kör följande kommando för att uppdatera ditt Debian-system:
sudo apt update && sudo apt upgrade
Installera nödvändiga paket
Innan vi installerar Elasticsearch 8 på Debian måste vi uppfylla specifika förutsättningar. Detta innebär att du installerar några nödvändiga paket, som software-properties-common, apt-transport-https och curl. Dessa paket underlättar mjukvaruhantering och dataöverföring över nätverket.
Installera nödvändiga paket genom att köra följande:
sudo apt install software-properties-common apt-transport-https curl -y
Lägg till Elasticsearch 8 APT Repository på Debian
Därefter lägger vi till Elasticsearch APT-förvaret till vårt Debian Linux-system. Först importerar vi GPG-nyckeln för Elasticsearch, som säkerställer äktheten hos programvaran du installerar. Kör följande kommando för att importera GPG-nyckeln:
curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null
Låt oss sedan importera Elasticsearch-förrådet. Detta gör att vi kan installera Elasticsearch direkt med hjälp av apt
pakethanterare:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list
Uppdaterar APT Index Cache
Vi måste uppdatera APT-paketindexet efter att vi lagt till Elasticsearch-förrådet i vårt system. Detta säkerställer att APT känner till de nya paketen från det nyligen tillagda arkivet. Kör följande kommando för att uppdatera APT-indexet:
sudo apt update
Installera Elasticsearch 8 via APT Command
Nu när vårt system är förberett och APT-indexet är uppdaterat kan vi installera Elasticsearch 8. Använd följande kommando för att installera Elasticsearch:
sudo apt install elasticsearch
Obs: Om det finns två poster för samma Elasticsearch-förråd, kommer du att stöta på ett fel under apt-uppdateringen. Om du stöter på ett "Duplicate sources.list entry"-fel, kontrollera /etc/apt/sources.list.d/elasticsearch-8.x.list för dubblettposten eller leta reda på dubblettposten bland filerna i /etc/ apt/sources.list.d/ och filen /etc/apt/sources.list.
Aktivera Elasticsearch på Debian efter installationen
Efter installationen är Elasticsearch-tjänsten inaktiverad vid uppstart och inaktiv som standard. För att aktivera Elasticsearch-tjänsten och ställa in den att starta automatiskt vid uppstart, använd följande systemctl
kommando:
sudo systemctl enable elasticsearch.service --now
Konfigurera Elasticsearch 8
Nästa steg av att hantera Elasticsearch 8 på ditt Debian Linux-system är att konfigurera det.
Bekanta dig med standardinställningarna för Elasticsearch
På en ny Elasticsearch-installation placerar programvaran sina bearbetade och lagrade data i katalogen /var/lib/elasticsearch. Om du behöver modifieringar av konfigurationen, är /etc/elasticsearch din go-to-katalog. Om Java-startalternativen behöver justeras, kan dessa inställningar justeras i /etc/default/elasticsearch-konfigurationsfilen.
Dessa standardinställningar passar fristående servrar där Elasticsearch enbart arbetar på localhost. Men om ditt sikte är inställt på att etablera ett Elasticsearch-kluster eller tillåta fjärranslutningar, är ändringar av standardkonfigurationen nödvändiga.
Förfina Elasticsearch-konfigurationsfilen
Elasticsearch-konfigurationsfilen innehåller många parametrar som kan justeras för att möta dina unika behov. För att öppna den här filen, kör följande kommando:
sudo nano /etc/elasticsearch/elasticsearch.yml
En viktig parameter är cluster.name, som anger klusternamnet som din nod tillhör. Som standard är detta "elasticsearch", men ett mer distinkt namn är att rekommendera i en produktionsmiljö.
Här är ett exempel:
cluster.name: my_application
Alternativet node.name är en annan viktig som anger namnet på Elasticsearch-noden. Detta namn är viktigt för smidig administration och hantering, särskilt när du arbetar med flera noder.
Här är ett exempel:
node.name: node-1
Konfigurera Elasticsearch 8 med HTTPS på Debian
Följande täcker konfigurering av HTTPS för din Elasticsearch-installation. Kryptering är väsentligt för att säkra data, och att göra det möjligt för Elasticsearch 8 att använda HTTPS säkerställer att data överförs säkert mellan noder och klienter.
Generera SSL-certifikat
Det första steget i att konfigurera Elasticsearch för HTTPS är att generera ett SSL-certifikat. Detta certifikat är det som kommer att kryptera data mellan din server och klienter. Elasticsearch har ett inbyggt verktyg som heter elasticsearch-certutil som du kan använda för att generera ett självsignerat certifikat. Kör följande kommando:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12
Detta kommer att skapa en .p12-fil i config-katalogen. Den här filen innehåller både den privata nyckeln och det offentliga certifikatet. Det är viktigt att skydda den här filen och se till att den inte är tillgänglig för obehöriga användare.
Uppdatera Elasticsearch 8-konfiguration
Därefter måste du uppdatera Elasticsearch-konfigurationsfilen som finns på /etc/elasticsearch/elasticsearch.yml för att inkludera sökvägarna till ditt certifikat och din privata nyckel. Öppna konfigurationsfilen och lägg till följande rader:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
Dessa inställningar aktiverar SSL för transportlagret, anger att vi använder certifikat för SSL-verifiering och definierar sökvägarna till certifikatet och den privata nyckeln.
Tillåta fjärråtkomst (valfritt)
Elasticsearch är konfigurerat att endast lyssna på localhost som standard. Detta kan dock justeras i de fall där fjärråtkomst krävs. Leta efter avsnittet Nätverk och avkommentera raden network.host genom att ta bort # framför. Ersätt det befintliga värdet med din interna privata IP-adress eller externa IP-adress.
Här är ett exempel:
# network.host: 192.168.0.1
I det här exemplet har network.host inte kommenterats och justerats till en intern privat IP-adress.
Av säkerhetsskäl är det lämpligt att ange individuella IP-adresser. Du kan dock ändra nätverksgränssnittet för att lyssna på alla genom att ställa in det till 0.0.0.0 för flera interna eller externa IP-adresser som ansluter till servern.
När du har gjort de nödvändiga ändringarna, spara konfigurationsfilen (CTRL+O för att spara, CTRL+X för att avsluta).
För att genomdriva ändringarna av konfigurationsfilen, starta om Elasticsearch-tjänsten med kommandot:
sudo systemctl restart elasticsearch
Ändra UFW-brandväggsreglerna för fjärranslutningar
Om du har konfigurerat Elasticsearch för att tillåta fjärranslutningar är det viktigt att justera dina brandväggsregler för att passa dessa anslutningar. Den okomplicerade brandväggen (UFW) kan hjälpa till med detta.
Du kan tillåta en specifik IP-adress att ansluta till Elasticsearch genom att utföra detta kommando:
sudo ufw allow from <IP Address> to any port 9200
Glöm inte att byta ut med den faktiska IP-adressen du vill tillåta anslutningar från. Detta kommando öppnar port 9200 för den angivna IP-adressen, vilket gör att den kan interagera med Elasticsearch.
Om du till exempel vill tillåta IP-adressen 192.168.0.2 att ansluta, skulle kommandot vara:
sudo ufw allow from 192.168.0.2 to any port 9200
Efter detta kommer din Debian-server att tillåta trafik från 192.168.0.2 för att komma åt Elasticsearch via port 9200. Kom ihåg att säkerheten för dina servrar är av största vikt, så se till att du endast ger åtkomst till betrodda IP-adresser.
Verifierar Elasticsearch 8-konfigurationen
Efter att ha modifierat din Elasticsearch-konfiguration är det viktigt att verifiera att ändringarna har implementerats korrekt och att din Elasticsearch-instans fungerar som förväntat.
Kontrollera Elasticsearch 8 Service Status
Kontrollera först statusen för din Elasticsearch-tjänst för att bekräfta att den är aktiv och igång. Du kan göra detta med följande kommando:
sudo systemctl status elasticsearch
Det här kommandot matar ut information om Elasticsearch-tjänsten, inklusive om den är aktiv och igång. Om inte kan du behöva felsöka problemet eller granska dina konfigurationsändringar.
Testa fjärråtkomst (valfritt)
Om du har aktiverat fjärråtkomst kan du testa det genom att försöka ansluta till din Elasticsearch-instans från en fjärrdator. Som diskuterats i föregående avsnitt måste IP-adressen du ansluter från vara tillåten i dina brandväggsregler.
Du kan använda curl-kommandot för detta ändamål:
curl https://<Your_Elasticsearch_IP>:9200
Byta ut med IP-adressen till din Elasticsearch-server. Om det lyckas bör detta kommando returnera information om din Elasticsearch-instans.
Validerar dataintegritet
Slutligen är det viktigt att verifiera integriteten hos dina Elasticsearch-data, särskilt om du har gjort ändringar i datakatalogen i din konfiguration. Elasticsearch tillhandahåller API:er som du kan använda för att kontrollera din datas status.
Till exempel, för att få status för alla index, använd följande kommando:
curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"
Detta kommando listar alla index i din Elasticsearch-instans och deras hälsostatus. Kontrollera hälsostatusen för dina index för att säkerställa att din data är säker och tillgänglig.
Obs: Kom ihåg att upprätthållande av integriteten och säkerheten för dina data alltid bör ha högsta prioritet. Dubbelkolla alltid dina ändringar, validera din konfiguration och övervaka din Elasticsearch-instans regelbundet. Detta hjälper dig att upprätthålla ett tillförlitligt, effektivt och säkert datahanteringssystem med Elasticsearch.
Interagera med Elasticsearch 8 via cURL
Det här avsnittet kommer att utforska vanliga kommandon som interagerar med din Elasticsearch 8-instans. Vi kommer att använda curl
kommandoradsverktyg, ett flexibelt bibliotek för överföring av data med olika protokoll.
Ta bort ett index
Ett Elasticsearch-index är en uppsättning dokument som har liknande egenskaper. Om du har ett index med namnet samples som du vill ta bort, kan du göra det med följande kommando:
curl -X DELETE 'https://localhost:9200/samples'
Det här kommandot skickar en HTTP DELETE-begäran till den angivna URL:en, som talar om för Elasticsearch att ta bort provindexet.
Listar alla index
För att hämta en lista över alla index i din Elasticsearch-instans, använd slutpunkten _cat/index med en GET-begäran så här:
curl -X GET 'https://localhost:9200/_cat/indices?v'
Svaret kommer att lista alla index, inklusive indexets hälsa, status, storlek och antal dokument.
Hämta dokument från ett index
För att hämta alla dokument från ett specifikt index, säg exempel, använd slutpunkten _search:
curl -X GET 'https://localhost:9200/sample/_search'
Detta kommando hämtar alla dokument som är lagrade i exempelindexet.
Söker med URL-parametrar
Du kan använda Lucenes frågesyntax för grundläggande textsökningar. Om du till exempel vill hitta dokument där skolområdet är Harvard, skulle du använda:
curl -X GET https://localhost:9200/samples/_search?q=school:Harvard
Detta kommando skickar en GET-begäran till _search-slutpunkten med hjälp av q-parametern för frågan.
Söka med Elasticsearch Query DSL
För mer komplexa frågor kanske du föredrar att använda Elasticsearchs Query DSL, som låter dig använda JSON för att definiera frågor. Det här formatet är mer läsbart och mer tillgängligt för felsökning av komplexa frågor.
Här är ett exempel:
curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
"query" : {
"match" : { "school": "Harvard" }
}
}'
Det här kommandot gör samma sak som det föregående men använder JSON för frågedefinitionen. På så sätt är kommandot mer läsbart, särskilt när det hanteras mer komplexa frågor.
Lägga till och uppdatera dokument
För att lägga till ett nytt dokument till ett index kan du använda PUT-metoden tillsammans med _doc-slutpunkten. Till exempel, för att lägga till ett dokument med ID 1 och ett skolområde från Harvard till provindexet, skulle du använda:
curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
"school" : "Harvard"
}'
För att uppdatera ett dokument kan du använda POST-metoden med slutpunkten _update. Till exempel, för att lägga till ett elevfält i dokumentet vi just skapade, skulle du använda:
curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
"students": 50000}
}'
Det här kommandot säger åt Elasticsearch att uppdatera dokumentet med ett ID på 1 i provindexet och lägga till ett studentfält med ett värde på 50000.
Dessa kommandon är bara ett litet exempel på vad du kan åstadkomma med Elasticsearch. Elasticsearch Query DSL
Hantera Elasticsearch 8 på Debian 12, 11 eller 10
Detta segment fördjupar sig i Elasticsearch 8-borttagningsprocessen från din Debian Linux-server. Du kanske vill göra detta av flera skäl, som att programvaran inte längre passar dina krav eller att du planerar att byta till en alternativ lösning. Oavsett dina skäl kommer stegen nedan att leda dig genom processen.
Borttagning av Elasticsearch 8 från Debian
Att radera Elasticsearch från din server innebär ett enkelt kommando. Kom dock ihåg att denna åtgärd är oåterkallelig och kommer att radera all associerad data. Här är kommandot att köra:
sudo apt remove elasticsearch
Genom att köra kommandot ovan avinstalleras Elasticsearch effektivt, vilket frigör alla tidigare tilldelade systemresurser.
Ta bort Elasticsearch APT Repository
Elasticsearch-förvaret kommer att finnas kvar på ditt system efter avinstallationen. Om du är säker på att du inte kommer att installera om Elasticsearch i framtiden, kan du lika gärna bli av med det för att undvika onödigt skräp.
Så här tar du bort Elasticsearch-förvaret:
sudo rm /etc/apt/sources.list.d/elasticsearch-8.list
Kommandot ovan kommer att ta bort Elasticsearch 8-förvaret från din Debian Linux-server.
Uppdaterar arkivlistan
Det sista steget är att uppdatera apt-paketlistan. Detta steg är viktigt för att säkerställa att ditt system inte överväger Elasticsearch 8 för framtida uppdateringar eller installationer.
Kommandot för att uppdatera din förvarslista är som följer:
sudo apt update
Slutsats
Med Elasticsearch 8 framgångsrikt installerat på ditt Debiansystem kan du utnyttja dess avancerade sök- och analysfunktioner för att hantera och analysera dina data effektivt. Uppdatera Elasticsearch regelbundet för att dra nytta av de senaste funktionerna och säkerhetsförbättringarna. Njut av de kraftfulla funktionerna i Elasticsearch 8.x, skräddarsydda för att möta kraven från modern datahantering och analys.