Sådan installeres Elasticsearch på en Linux-server, tilføj Elastics officielle pakkelager, installer elasticsearch-pakken (8.x indeholder en sikker JDK), angiv kerne- og ulimit-parametre, konfigurer elasticsearch.yml (cluster.name, network.host, discovery.type), aktiver og start systemd-tjenesten, åbne porte 9200/9300, og bekræft med curl ved hjælp af de genererede legitimationsoplysninger og CA-certifikat.
Installation af Elasticsearch på en Linux-server giver dig en kraftfuld, hurtig og skalerbar søge- og analysemaskine til logfiler, metrikker og fuldtekstsøgning. Denne guide viser dig trin for trin, hvordan du installerer og konfigurerer Elasticsearch på Ubuntu/Debian og RHEL/CentOS/Rocky/Alma Linux, inklusive sikkerhed, ydeevnejustering og almindelige fejlfindingstips.
Hvad er Elasticsearch, og hvorfor implementerer du det på Linux?
Elasticsearch er en distribueret søge- og analysemaskine bygget på Apache Lucene. Det understøtter loganalyse, applikationssøgning, observerbarhed og sikkerhedsanalyse i stor skala. Linux er den foretrukne platform, fordi den tilbyder stærk ydeevne og forudsigelige ressourcer. management og førsteklasses support fra Elastics officielle pakker.
Forudsætninger for at installere Elasticsearch på Linux
- Understøttet OS: Ubuntu 20.04/22.04/24.04, Debian 11/12, RHEL/CentOS/Rocky/Alma 8/9.
- Ressourcer: Minimum 2 VCPU og 4 GB RAM til testning. Til produktion, 4+ vCPU og 8–32 GB RAM pr. node er almindelige.
- Root- eller sudo-rettigheder og udgående internetadgang til Elastics repository.
- Åbne porte: 9200 (HTTP) og 9300 (transport). Brug en firewall til at begrænse adgangen.
- Præcis tidssynkronisering (Chrony eller NTP) for at forhindre klyngeproblemer.
- Værtsnavn/FQDN er indstillet korrekt (især for klynger med flere noder).
Installer Elasticsearch på Ubuntu/Debian (Apt)
Elasticsearch 8.x leveres med en sikker JDK og aktiverer sikkerhed som standard. Brug det officielle Elastic APT-repository til stabile opdateringer.
# 1) Update and install prerequisites
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg
# 2) Add Elastic GPG key and repository
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
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
# 3) Install Elasticsearch
sudo apt update
sudo apt install -y elasticsearch
# 4) Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
# 5) Watch logs (first run prints security info)
sudo journalctl -u elasticsearch -fVed første opstart genererer Elasticsearch 8 brugeradgangskoden til elastic og et HTTP CA-certifikat. Disse vises i loggene. Hvis det er nødvendigt, nulstil adgangskoden interaktivt:
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -iInstaller Elasticsearch på RHEL/CentOS/Rocky/Alma (YUM/DNF)
Opret YUM/DNF-arkivet og installer RPM-pakken.
# 1) Create the Elastic repository
sudo tee /etc/yum.repos.d/elasticsearch.repo >/dev/null <<'EOF'
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 2) Install Elasticsearch
sudo dnf install -y elasticsearch || sudo yum install -y elasticsearch
# 3) Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
# 4) Follow logs
sudo journalctl -u elasticsearch -fHvis du har brug for at nulstille den elastiske brugeradgangskode senere:
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -iVigtige systemindstillinger (alle Linux)
Kernen og grænserne
Konfigurer antallet af Linux-hukommelseskort og filbeskrivelser for at undgå fejl under bootstrap-kontrol.
# Set vm.max_map_count
echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-elasticsearch.conf
sudo sysctl --system
# Increase file descriptors and processes for the elasticsearch user
sudo tee -a /etc/security/limits.d/90-elasticsearch.conf >/dev/null <<'EOF'
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
EOF
# Optional: allow memory locking for mlockall (if you enable it in elasticsearch.yml)
sudo systemctl edit elasticsearch <<'EOF'
[Service]
LimitMEMLOCK=infinity
EOFFirewallregler
Begræns adgang til betroede værter, især for produktionsklynger.
# UFW (Ubuntu/Debian)
sudo ufw allow 9200/tcp
sudo ufw allow 9300/tcp
# firewalld (RHEL/Rocky/Alma)
sudo firewall-cmd --add-port=9200/tcp --permanent
sudo firewall-cmd --add-port=9300/tcp --permanent
sudo firewall-cmd --reloadKonfigurer Elasticsearch (enkelt node eller klynge)
Rediger /etc/elasticsearch/elasticsearch.yml. For en udviklings- eller single-node-server skal du bruge discovery.type: single-node. For produktionsklynger skal du definere seed-værter og initiale masternoder.
sudo cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
sudo nano /etc/elasticsearch/elasticsearch.yml
# Example: single-node (dev/test)
cluster.name: my-es-dev
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node# Example: multi-node (production)
cluster.name: prod-es-cluster
node.name: es-node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.0.0.10
http.port: 9200
discovery.seed_hosts: ["10.0.0.10","10.0.0.11","10.0.0.12"]
cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3"]Genstart tjenesten efter ændringerne:
sudo systemctl restart elasticsearch
sudo systemctl status elasticsearch --no-pagerIndstil heapstørrelse (JVM) for ydeevne
Elasticsearchs ydeevne afhænger i høj grad af JVM heap-størrelsen. Indstil både Xms og Xmx til den samme værdi, typisk 50% af systemet. RAM op til 31 g (for at holde ups komprimeret).
# Edit JVM options (example: 4 GB server → 2 GB heap)
sudo nano /etc/elasticsearch/jvm.options
# Set:
-Xms2g
-Xmx2gGenstart Elasticsearch efter redigering for at anvende den.
Sikkerhed i Elasticsearch 8.x
Sikkerhed er som standard slået til i 8.x: TLS til HTTP, grundlæggende godkendelse og indbyggede brugere. Hent CA-certifikatet for sikre curl-anmodninger og manage adgangskoder med indbyggede værktøjer.
# Default CA certificate path (package installs)
ls -l /etc/elasticsearch/certs/http_ca.crt
# Reset the elastic user's password (if needed)
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
# Create an enrollment token for Kibana (optional)
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibanaBekræft installationen
Brug curl med den elastiske bruger og HTTP CA-certifikatet til at bekræfte, at noden er i orden.
# Replace <ELASTIC_PASSWORD> with your actual password
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:<ELASTIC_PASSWORD> https://localhost:9200
# Check cluster health
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:<ELASTIC_PASSWORD> https://localhost:9200/_cluster/health?prettyInstaller nyttige Elasticsearch-plugins
Udvid funktionaliteten med officielle plugins, og genstart derefter tjenesten.
# ICU analysis (internationalization)
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
# Ingest attachment (process PDFs/Office docs)
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
# Restart after plugin installs
sudo systemctl restart elasticsearchBedste praksis og ydeevnejustering
- Brug SSD-lager og monter med noatime for at reducere I/O-overhead.
- Afsæt 50% af RAM til JVM-heapen (maks. ~31 GB), hvilket efterlader resten til Lucene-sidecachen.
- Hold Xms og Xmx ens; undgå at bytte om. Overvej at aktivere hukommelseslåsning.
- Implementer 3+ master-berettigede noder for at undgå split-brain; brug ulige optællinger.
- Pin (Binding) CPU ressourcer eller brug cgroups for forudsigelig ydeevne på delte værter.
- Brug indekslivcyklus management (ILM) til at overføre og slette gamle data.
- Tag regelmæssigt snapshots til S3, GCS eller en NFS-deling til sikkerhedskopiering.
- Overvåg med Elastic Stack, Prometheus-eksportører og systemmålinger.
- Begræns http-eksponering; brug private netværk, VPN'er eller omvendte proxyer med godkendelse.
Fejlfinding af almindelige fejl
- Maks. antal virtuelle hukommelsesområder vm.max_map_count er for lavt: Indstil til 262144 og genindlæs sysctl.
- max file descriptors [4096] for elasticsearch-processen er for lav: Øg nofile til 65535.
- Bootstrap-tjek mislykkedes: Disse vises, når der bindes til ikke-loopback-adresser. Ret kernel/limits og JVM, og genstart derefter.
- BindException: Adresse allerede i brug: En anden proces bruger 9200/9300. Stop den eller skift porte.
- Tilladelse nægtet på datastien: Sørg for, at /var/lib/elasticsearch ejes af elasticsearch-brugeren.
- Godkendelsesfejl: Nulstil den elastiske adgangskode, og brug den genererede http_ca.crt med curl.
- Klynge dannes ikke: Valider network.host, discovery.seed_hosts og cluster.initial_master_nodes; tjek firewall og DNS.
Opgraderinger, ventepositioner og afinstallationer
Opgrader mellem 8.x-versioner
- Gennemgå udgivelsesnoterne, og sørg for, at alle plugins understøtter målversionen.
- Tag først et øjebliksbillede af dine data.
- Rullende opgradering: Opgrader én node ad gangen, vent på grønt helbred, og fortsæt derefter.
# Debian/Ubuntu
sudo apt update
sudo apt install elasticsearch
# RHEL family
sudo dnf upgrade elasticsearch || sudo yum update elasticsearchHold eller fastlås version
# Ubuntu/Debian
sudo apt-mark hold elasticsearch
# RHEL family (requires yum-plugin-versionlock)
sudo dnf install -y python3-dnf-plugin-versionlock || sudo yum install -y yum-plugin-versionlock
sudo dnf versionlock add elasticsearch || sudo yum versionlock add elasticsearchAfinstaller
# Stop and remove
sudo systemctl stop elasticsearch
sudo apt remove --purge -y elasticsearch && sudo apt autoremove -y
# or
sudo dnf remove -y elasticsearch || sudo yum remove -y elasticsearch
# Optional: remove data and logs (irreversible)
sudo rm -rf /var/lib/elasticsearch /var/log/elasticsearchSelvhostet vs. administreret Elasticsearch
At køre Elasticsearch selv giver fuld kontrol og omkostningseffektivitet, men du ejer patching, skalering og 24/7 overvågning. Administrerede muligheder reducerer den driftsmæssige byrde.
- Selvhostet: Maksimal fleksibilitet; ideel til brugerdefinerede plugins og streng datalokalitet. Kræver ekspertise i Linux, JVM og cluster operations.
- Administreret: Hurtigere til markedet; forudsigelige SLA'er; indbygget overvågning og backup. Lidt højere omkostninger, færre lavniveau-knapper.
Hvis du foretrækker et pålideligt fundament for selvhostede klynger, YouStable tilbyder SSD-drevet VPS og dedikerede servere med privat netværk og DDoS-beskyttelse – optimeret til Elasticsearch og Elastic Stack. Vores eksperter kan hjælpe med at dimensionere noder, finjustere JVM og sikre din klynge uden at overforbruge.
Brugsscenarier i den virkelige verden på Linux
- Loganalyse med Filebeat/Logstash-forsendelse til en hot-warm ILM-politik.
- Appsøgning med synonymfiltrering og ICU-analyse for flersproget indhold.
- Sikkerhedsanalyser, der indtager hændelser fra servere, firewalls og cloudplatforme.
- Metrikker og spor via Elastic APM til fejlfinding af ydeevneregressioner.
Ofte stillede spørgsmål: Installer Elasticsearch på Linux-server
1) Hvordan installerer jeg Elasticsearch hurtigt på Ubuntu 22.04?
Tilføj Elastics APT-repository, installer elasticsearch, aktiver tjenesten, og bekræft med curl ved hjælp af CA-certifikatet. Se afsnittet Ubuntu/Debian ovenfor for præcise kommandoer. Elasticsearch 8.x bundter en JDK og aktiverer sikkerhed som standard.
2) Hvad er minimumssystemkravene for Elasticsearch?
Til test: 2 VCPU, 4 GB RAMog 20 GB SSD. Til produktion: 4+ vCPU, 8–32 GB RAM pr. node, SSD-lager og en dedikeret datadisk. Alloker halvdelen af RAM til JVM-heapen (maks. ~31 GB).
3) Hvordan ændrer jeg Elasticsearch-heapstørrelsen på Linux?
Rediger /etc/elasticsearch/jvm.options og indstil -Xms og -Xmx til den samme værdi (f.eks. 2g). Genstart elasticsearch-tjenesten. Undgå swapping, og overvej at aktivere hukommelseslåning for at forhindre heap i at blive swapet ud.
4) Hvordan sikrer jeg Elasticsearch?
Elasticsearch 8 aktiverer TLS og godkendelse som standard. Brug den genererede http_ca.crt med curl, nulstil den elastiske adgangskode om nødvendigt, begræns adgang med firewalls/VPN'er, og undgå at eksponere port 9200 for internettet. For 7.x, aktiver xpack.security og konfigurer TLS manuelt.
5) Hvordan kan jeg bekræfte, at installationen er i orden?
Kør curl mod https://localhost:9200 ved hjælp af CA-certifikatet og elastic-legitimationsoplysningerne, og tjek derefter /_cluster/health og logs (journalctl -u elasticsearch). Tilstanden skal være grøn eller gul, ikke rød. Undersøg eventuelle shard-allokerings- eller bootstrap-advarsler.
6) Skal jeg bruge Elasticsearch eller OpenSearch på Linux?
Elasticsearch tilbyder de nyeste Elastic-funktioner og kommercielle muligheder; OpenSearch er en community fork, der er kompatibel med mange 7.x API'er. Vælg baseret på licenser, funktioner og økosystembehov. Bland ikke noder på tværs af produkter i den samme klynge.
7) Kan jeg køre Elasticsearch i en container på Linux?
Ja. Docker og Kubernetes er populære til orkestrering. Sørg for, at vm.max_map_count er indstillet på værten, alloker persistent storage, og finjuster ressourcer. For bare-metal-ydeevne og forudsigelig I/O foretrækker mange produktionsteams stadig VM eller dedikerede servere.
Konklusion
Med de officielle repositories er det ligetil at installere Elasticsearch på Linux. Prioritér sikre standardindstillinger, korrekte systemgrænser og korrekt heap-størrelse. Start småt, verificér med curl, og skalér derefter til en robust klynge med 3+ noder. Har du brug for et hurtigt og pålideligt fundament? YouStable's SSD VPS og dedikerede servere er et godt valg til Elasticsearch i produktionsklassen.