Self-Hosted Suchmaschinen

Elasticsearch unter Debian 13 installieren – Die vollständige Schritt-für-Schritt-Anleitung

Elasticsearch gehört zu den beliebtesten Open-Source-Suchmaschinen und Analyseplattformen. Ob Volltextsuche, Log-Management, Monitoring, Business Intelligence oder moderne KI-Anwendungen – Elasticsearch bildet häufig das Herzstück datengetriebener Systeme.

3 min Lesezeit
Elasticsearch unter Debian 13 erfolgreich einrichten

In diesem Artikel zeige ich die Installation von Elasticsearch unter Debian 13 (Trixie) anhand einer echten Serverinstallation. Dabei gehe ich auch auf typische Fehler und Besonderheiten ein, die in der Praxis häufig auftreten.


Was ist Elasticsearch?

Elasticsearch ist eine verteilte Such- und Analyse-Engine auf Basis von Apache Lucene.

Typische Einsatzgebiete:

  • Volltextsuche für Webseiten
  • Log-Management (ELK Stack)
  • Monitoring und Observability
  • Business Intelligence
  • Vektor-Suche für KI-Anwendungen
  • Wissensdatenbanken
  • Dokumentensuche

Besonders interessant ist Elasticsearch als Suchbackend für eigene Anwendungen oder als Ergänzung zu KI-Systemen wie Ollama, OpenWebUI oder Retrieval-Augmented-Generation-Systemen (RAG).


Voraussetzungen

Für eine kleine Installation empfiehlt sich:

KomponenteEmpfehlungCPU2 vCPUsRAMmindestens 4 GBSpeicherSSDBetriebssystemDebian 13Root-ZugrifferforderlichSystem aktualisieren

Zunächst sollte das System auf den aktuellen Stand gebracht werden:

apt update
apt upgrade -y

Anschließend empfiehlt sich ein Neustart:

reboot

Wichtiger Hinweis zu Root und sudo

Viele Anleitungen verwenden Befehle mit sudo.

Auf vielen Debian-Servern arbeitet man jedoch direkt als root.

Prüfen:

whoami

Ausgabe:

root

In diesem Fall können alle sudo-Befehle einfach ohne sudo ausgeführt werden.


Elasticsearch Repository einrichten

GPG-Schlüssel importieren

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Repository hinzufügen

Falls der Befehl tee auf dem System nicht verfügbar ist, kann die Datei direkt erstellt werden:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" > /etc/apt/sources.list.d/elastic-9.x.list

Paketlisten aktualisieren:

apt update

Elasticsearch installieren

apt install elasticsearch -y

Die Installation kann einige Minuten dauern.


Kernelparameter anpassen

Elasticsearch benötigt erhöhte Speicher-Mappings.

Datei erstellen:

nano /etc/sysctl.d/99-elasticsearch.conf

Inhalt:

vm.max_map_count = 262144

Aktivieren:

sysctl --system

Prüfen:

sysctl vm.max_map_count

Ausgabe:

vm.max_map_count = 262144

Elasticsearch konfigurieren

Datei öffnen:

nano /etc/elasticsearch/elasticsearch.yml

Für einen Einzelserver genügt:

cluster.name: my-cluster

node.name: node-1

network.host: 0.0.0.0

http.port: 9200

discovery.type: single-node

Heap-Speicher konfigurieren

Die JVM benötigt einen sinnvoll dimensionierten Heap.

Server mit 4 GB RAM:

-Xms2g
-Xmx2g

Server mit 8 GB RAM:

-Xms4g
-Xmx4g

Die Einstellungen befinden sich normalerweise unter:

/etc/elasticsearch/jvm.options

oder

/etc/elasticsearch/jvm.options.d/

Wichtig:

  • Xms und Xmx müssen identisch sein.
  • Maximal 50 % des verfügbaren RAM verwenden.

Elasticsearch starten

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Status prüfen:

systemctl status elasticsearch

Beispiel:

Active: active (running)

Besonderheit: elasticsearch-Befehl nicht gefunden

Viele Administratoren erwarten:

elasticsearch --version

Dies führt häufig zu:

-bash: elasticsearch: Kommando nicht gefunden

Der Grund:

Der Elasticsearch-Binärpfad liegt nicht im PATH.

Stattdessen:

/usr/share/elasticsearch/bin/elasticsearch --version

Passwort für den elastic-Benutzer setzen

Neuere Elasticsearch-Versionen aktivieren die Sicherheitsfunktionen standardmäßig.

Passwort zurücksetzen:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Interaktiv:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i

Achtung:

Ein häufiger Fehler ist ein falsch gesetzter Zeilenumbruch:

Falsch:

/usr/share/elasticsearch/bin/elasticsearch-reset-password \ -u elastic

Richtig:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Verbindung testen

Falls TLS aktiviert ist:

curl -k https://localhost:9200

Mit Benutzer:

curl -k -u elastic https://localhost:9200

oder

curl -k -u elastic:PASSWORT https://localhost:9200

Clusterstatus prüfen

curl -k -u elastic:PASSWORT \
https://localhost:9200/_cluster/health?pretty

Gesunder Cluster:

{
  "status" : "green"
}

Firewall absichern

Bei Verwendung von UFW:

Nur interne Netze erlauben:

ufw allow from 192.168.0.0/24 to any port 9200 proto tcp

Port 9200 sollte niemals ungeschützt aus dem Internet erreichbar sein.


Beispielindex anlegen

Index erstellen:

curl -k -u elastic:PASSWORT \
-X PUT https://localhost:9200/mein-index

Dokument speichern:

curl -k -u elastic:PASSWORT \
-X POST https://localhost:9200/mein-index/_doc \
-H "Content-Type: application/json" \
-d '
{
  "titel": "Hallo Elasticsearch",
  "inhalt": "Dies ist ein Test."
}'

Logs anzeigen

Systemd-Logs:

journalctl -u elasticsearch -f

Direkte Elasticsearch-Logs:

tail -f /var/log/elasticsearch/*.log

Häufige Fehler

sudo: Kommando nicht gefunden

Du arbeitest bereits als root.

Einfach sudo entfernen.


tee: Kommando nicht gefunden

Repository-Datei direkt mit echo > datei erstellen.


elasticsearch: Kommando nicht gefunden

Elasticsearch befindet sich unter:

/usr/share/elasticsearch/bin/

Dienst startet nicht

Log prüfen:

journalctl -xeu elasticsearch

Oft sind folgende Ursachen verantwortlich:

  • Zu wenig RAM
  • vm.max_map_count nicht gesetzt
  • Fehler in elasticsearch.yml
  • Portkonflikte


Die Installation von Elasticsearch unter Debian 13 ist grundsätzlich unkompliziert. Die häufigsten Probleme entstehen nicht durch Elasticsearch selbst, sondern durch Unterschiede zwischen verschiedenen Debian-Installationen, fehlende PATH-Einträge oder falsch übernommene Befehle aus allgemeinen Linux-Anleitungen.

Wer die oben beschriebenen Schritte befolgt, erhält eine moderne, sichere und leistungsfähige Suchplattform, die sich sowohl für klassische Suchanwendungen als auch für moderne KI-Projekte hervorragend eignet.

Für deinen Blog würde ich zusätzlich noch einen Abschnitt „Elasticsearch zusammen mit Kibana installieren“ ergänzen, da die meisten Leser nach der Elasticsearch-Installation direkt mit einer Weboberfläche weiterarbeiten möchten.