Technologieführer

Apache Solr auf AlmaLinux 9 installieren, optimieren und sichern

7 min read DevOps Aktualisiert 01 Oct 2025
Apache Solr auf AlmaLinux 9 installieren und sichern
Apache Solr auf AlmaLinux 9 installieren und sichern

  • Diese Anleitung zeigt Schritt für Schritt, wie Sie Apache Solr 9 auf einem AlmaLinux 9-Server installieren, konfigurieren und mit Basic Authentication sichern. Folgen Sie zuerst den Java- und Solr-Installationsschritten, passen Sie Heap, ulimits und Firewall an und legen Sie anschließend Sicherheits- und Betriebsregeln fest.
  • Am Ende finden Sie Checklisten für Administratoren, Troubleshooting-Schritte, Sicherheits-Härtungsempfehlungen und Akzeptanzkriterien für die erste Indexanlage.

Wichtig: Führen Sie die Befehle mit einem Benutzer aus, der sudo-Rechte hat. Test-IPs und Passwörter im Tutorial sind Beispiele; ersetzen Sie sie in Produktionsumgebungen.

Übersichtsdiagramm von Apache Solr auf Servern

Apache Solr (häufig nur Solr genannt) ist eine Suchplattform für Unternehmensanwendungen, basierend auf der Apache Lucene Bibliothek. Solr ist in Java geschrieben und bietet Funktionen wie Replikation, Ausfallsicherheit und verteiltes Indexieren. Solr eignet sich für hohe Lasten und ist in vielen Produkt- und Analyse-Workflows etabliert.

Diese Anleitung behandelt:

  • Voraussetzungen und Systemanforderungen
  • Installation von OpenJDK 11
  • Installation von Apache Solr 9 (offizielles Binary)
  • Optimierung: Heap, große Seiten, ulimits
  • Firewall-Regeln
  • Absicherung mit Basic Authentication
  • Erstellen eines ersten Cores (Index)
  • Betriebs- und Sicherheits-Checklisten, Troubleshooting und Abnahmekriterien

Voraussetzungen

Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:

  • AlmaLinux 9 Server mit mindestens 2–4 GB RAM. Dieses Beispiel verwendet einen Server mit Hostname almalinux9 und 8 GB RAM.
  • Ein nicht-root Benutzer mit sudo-Rechten.
  • Netzwerkzugriff auf Port 8983 (oder entsprechend konfigurierten Port).

Java OpenJDK 11 installieren

Apache Solr 9 benötigt mindestens die Java Runtime (JRE) in Version 11. Installieren Sie OpenJDK 11 aus dem AlmaLinux AppStream:

sudo dnf install java-11-openjdk java-11-openjdk-devel

Installation von OpenJDK über DNF

Prüfen Sie die Installation:

java --version

Wenn die Ausgabe eine installierte Java 11 bestätigt, können Sie mit der Solr-Installation fortfahren.

Apache Solr installieren

Installieren Sie zunächst Hilfspakete, die für das Installationsskript nützlich sind:

sudo dnf install curl lsof chkconfig -y

Laden Sie das offizielle Binary-Paket von Solr 9.2.1 herunter (Beispiel-Version in dieser Anleitung):

curl -qO https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz

Entpacken Sie das Installationsskript aus dem Archiv:

tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh --strip-components=2

Sie sollten nun das Skript install_solr_service.sh im aktuellen Verzeichnis sehen.

Installationsskript von Solr

Starten Sie die Installation:

sudo bash ./install_solr_service.sh solr-9.2.1.tgz

Nach erfolgreicher Installation läuft Solr standardmäßig auf Port 8983 und SOLR_HOME ist /var/solr/data.

Wenn ein Solr-Prozess bereits läuft, stoppen Sie ihn (Beispiel-PID):

kill -9 12084

Starten Sie anschließend den Dienst mit:

sudo service solr start

Starten des Solr-Dienstes

Prüfen Sie den Status:

sudo service solr status

Prüfen des Solr-Dienststatus

Installation optimieren: Heap, HugePages und Netzwerkbindung

Für Production- oder Testumgebungen sollten Sie Heap, Shared Memory und die Jetty-Hostbindung anpassen.

In diesem Beispiel setzen wir den Max-Heap auf 4 GB und binden Solr an die interne IP 192.168.10.15.

Erhöhen Sie zunächst Kernel-Parameter für geteilten Speicher und HugePages (nur temporär bis Neustart; für Persistenz in /etc/sysctl.conf eintragen):

sudo sh -c 'echo 4294967295 > /proc/sys/kernel/shmmax'
sudo sh -c 'echo 1536 > /proc/sys/vm/nr_hugepages'

Öffnen Sie die Solr-Konfigurationsdatei:

sudo nano /etc/default/solr.in.sh

Passen Sie folgende Parameter an. Wenn die Zeilen auskommentiert sind, entfernen Sie das führende # und setzen die Werte entsprechend Ihrer Umgebung:

SOLR_HEAP="4g"
SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

Speichern und schließen Sie die Datei. Starten Sie Solr neu, damit die Änderungen Anwendung finden:

sudo service solr restart

Konfiguration von Solr-Heap und Host

Prüfen Sie den Dienststatus und achten Sie auf die gelistete Java-Heapgröße:

sudo service solr status

Überprüfung der ulimit- und Heap-Konfiguration

Hinweis: Passen Sie den Heap an die Gesamtmenge an RAM an. Als Faustregel kann ein Wert zwischen 25%–60% des verfügbaren RAM sinnvoll sein — testen Sie Last und Garbage Collection (GC).

Ulimits konfigurieren und Firewall öffnen

Solr profitiert von hohen Limits für offene Dateien und Prozesse. Setzen Sie die Limits für den solr-Benutzer in /etc/security/limits.conf.

sudo nano /etc/security/limits.conf

Fügen Sie ans Ende:

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

Speichern und schließen. Testen Sie die Werte als solr-Benutzer:

sudo -H -u solr bash -c "ulimit -aH"

Prüfung von ulimit für den solr-Benutzer

Starten Sie Solr neu, um Warnungen zu beseitigen:

sudo service solr restart

Öffnen Sie Port 8983 in firewalld (persistente Regel):

sudo firewall-cmd --add-port=8983/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Wenn die Konfiguration erfolgreich ist, sollte 8983 in der Firewall-Liste erscheinen.

firewalld-Regeln bestätigen

Öffnen Sie anschließend im Browser: http://192.168.10.15:8983/ (ersetzen Sie die IP durch Ihre Server-IP). Sie sollten das Solr-Admin-UI sehen.

Solr-Admin-Dashboard

Apache Solr mit Basic Authentication sichern

Standardmäßig ist Solr ohne Authentifizierung installiert. Sie können verschiedene Methoden einsetzen (Basic, Kerberos, JWT, Rule-Based). Hier zeigen wir Basic Auth als Einstiegsoption.

Erstellen Sie die Datei security.json im SOLR_HOME (/var/solr/data):

sudo nano /var/solr/data/security.json

Beispielkonfiguration für einen Benutzer solr mit Beispielpasswort SolrRocks (ersetzen Sie dieses Passwort in Produktion):

{  
  "authentication":{  
    "blockUnknown": true,  
    "class":"solr.BasicAuthPlugin",  
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},  
    "realm":"My Solr users",  
    "forwardCredentials": false  
  },  
  "authorization":{  
    "class":"solr.RuleBasedAuthorizationPlugin",  
    "permissions":[{"name":"all", "role":"admin"}],  
    "user-role":{"solr":"admin"}  
  }  
}

Speichern, schließen und starten Sie Solr neu:

sudo service solr restart

Aktualisieren Sie das Admin-UI im Browser: Sie sollten nun ein Login-Fenster sehen.

Login-Fenster von Solr

Melden Sie sich mit solr / SolrRocks an (ersetzen Sie durch sichere Zugangsdaten). Unter Security sehen Sie, dass das Plugin basic_auth aktiv ist.

Security-Konfiguration im Solr-UI

Wichtig: Das hier gezeigte credentials-Feld enthält Hashes. Verwenden Sie in echten Umgebungen sichere Passwörter, Passwort-Manager und Rotation.

Ersten Core (Index) anlegen

Aktivieren Sie in /etc/default/solr.in.sh die Auth-Variablen, damit lokale solr-Befehle die Auth verwenden:

sudo nano /etc/default/solr.in.sh

Setzen Sie:

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

Speichern und starten Sie Solr neu:

sudo service solr restart

Erstellen Sie einen neuen Core test1_core mit dem Beispiel-Configset Test1Core:

su - solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"

Wenn der Core erstellt wurde, sehen Sie die Bestätigung Created new core test1_core. Im Admin-UI erscheint der Core unter Core Admin.

Verifizierter Core im UI

Betriebs- und Sicherheits-Checklisten

Admin-Checkliste vor Produktionsstart:

  • Java-Version prüfen (>=11).
  • Solr-Heap entsprechend RAM setzen (in solr.in.sh).
  • ulimits für solr-Benutzer setzen (nofile, nproc).
  • Firewall-Regeln prüfen (Port 8983 oder andere Tunnel/Proxy verwenden).
  • Authentifizierung aktivieren (Basic, LDAP, JWT, Kerberos je nach Bedarf).
  • HTTPS (TLS) vor das Admin-Interface setzen (empfohlen: Reverse Proxy mit certs).
  • Backups und Snapshots für SOLR_HOME konfigurieren.

DevOps-Checkliste für Betrieb:

  • Monitoring (CPU, Heap, GC-Pausen, Latenzen) einrichten.
  • Log-Rotation und zentrale Log-Sammlung aktivieren.
  • Replikation testen (falls Clusterbetrieb).
  • Konfigurationsmanagement (Ansible/Chef) für wiederholbare Deployments.
  • Notfall-Runbook für Neustart, Rollback und Restore pflegen.

Sicherheits-Härtungsempfehlungen

Wichtige Maßnahmen, die über Basic Auth hinausgehen:

  • TLS/HTTPS: Schützen Sie das Admin-UI mit TLS. Setzen Sie Solr hinter einen Reverse-Proxy (Nginx/HAProxy) mit validen Zertifikaten.
  • Netzwerksegmentierung: Beschränken Sie den Zugriff auf Port 8983 auf verwaltete Subnetze oder VPNs.
  • Rollenbasierte Zugriffskontrolle: Verwenden Sie Rule-Based Authorization und differenzierte Rechte für read/write/admin.
  • Audit-Logs: Protokollieren Sie Admin-Aktionen und Authentifizierungsversuche.
  • Geheimnisverwaltung: Speichern Sie Passwörter in einem Secrets-Manager, nicht in Klartext auf Servern.
  • Regelmäßige Updates: Halten Sie Java und Solr aktuell, um Sicherheitsfixes zu erhalten.

Troubleshooting: Häufige Probleme und Lösungen

Problem: Solr startet nicht oder stürzt mit OOM (OutOfMemory) ab.

  • Prüfen Sie die JVM-Heap-Einstellungen in /etc/default/solr.in.sh.
  • Reduzieren oder erhöhen Sie SOLR_HEAP entsprechend verfügbarem RAM.
  • Prüfen Sie gc.log (falls aktiviert) auf langen Full-GC-Zeiten.

Problem: Ulimit-Warnungen beim Solr-Start.

  • Stellen Sie sicher, dass /etc/security/limits.conf die Werte für den solr-Benutzer enthält.
  • Prüfen Sie, ob die Limits vom Login-Manager (PAM) übernommen werden.

Problem: Admin-UI nicht erreichbar, obwohl Dienst läuft.

  • Prüfen Sie, ob Jetty an die richtige IP gebunden ist (SOLR_JETTY_HOST).
  • Prüfen Sie Firewall- und SELinux-Regeln.

Problem: Authentifizierung verweigert lokale Solr-Befehle.

  • Stellen Sie sicher, dass SOLR_AUTHENTICATION_OPTS die richtigen credentials enthält oder verwenden Sie erzeugte BasicAuth-Credentials.

Schnelle Debug-Befehle:

sudo journalctl -u solr -f
sudo tail -n 200 /var/solr/logs/solr.log
sudo -u solr /opt/solr/bin/solr status

Akzeptanzkriterien für die Erstinbetriebnahme

  • Solr-Dienst läuft und antwortet auf http://:8983/ mit dem Admin-UI.
  • SOLR_HEAP in solr.in.sh ist gesetzt und im laufenden Prozess sichtbar.
  • ulimits für solr zeigen die konfigurierten Werte (nofile, nproc).
  • Port 8983 ist in der Firewall geöffnet oder durch Proxy erreichbar.
  • Basic Authentication ist aktiv und der Admin-Login funktioniert.
  • Ein Core test1_core ist erstellt und im Admin-UI sichtbar.

Mini-Methodologie: Sichere Inbetriebnahme in 6 Schritten

  1. System-Check: Ressourcen, Nutzer, Netzwerke prüfen.
  2. Basis-Installation: Java und Solr installieren.
  3. Betriebs-Tuning: Heap, HugePages, ulimits setzen.
  4. Netzwerk & Sicherheit: Firewall, Proxy, TLS konfigurieren.
  5. Auth & Rechte: Authentifizierung und Authorization einführen.
  6. Test & Handover: Core anlegen, Monitoring konfigurieren, Abnahme durchführen.

Alternativen und Entscheidungshilfe

Wenn Sie eine andere Plattform erwägen, prüfen Sie:

  • Elasticsearch / OpenSearch: Gut für enge Integration mit ELK/Observability-Stacks.
  • Managed Suchdienste (Cloud): Wenn Sie Hosting, Skalierung und Security outsourcen möchten.

Entscheidungstipp: Wählen Sie Solr, wenn Sie Lucene-basierte Features, flexible Schema-Definitionen und bewährte Replikationsmechanismen benötigen.

Kompatibilität und Migration

  • Solr 9 benötigt Java 11 oder neuer.
  • Prüfen Sie benutzerdefinierte Plugins und ConfigSets bei Major-Upgrades.
  • Testen Sie Upgrades in einer Staging-Umgebung vor Produktion.

Kurze Begriffsübersicht

  • Core: Eine einzelne Index-Instanz in Solr.
  • SOLR_HOME: Verzeichnis mit Indexdaten und Konfiguration (standardmäßig /var/solr/data).
  • Jetty: Der in Solr integrierte Servlet-Container.
  • Heap: Speichermenge, die der JVM zugewiesen ist.

Abschließende Zusammenfassung

Sie haben nun eine vollständige Anleitung, um Apache Solr 9 auf AlmaLinux 9 zu installieren, zu optimieren und abzusichern. Folgen Sie der Checkliste vor dem Produktionsstart, konfigurieren Sie Monitoring und Backup und sichern Sie das Admin-Interface mit TLS und einer geeigneten Authentifizierungslösung.

Wichtig: Ersetzen Sie Beispiel-Passwörter und IP-Adressen durch Ihre produktiven Werte. Testen Sie Änderungen in einer Staging-Umgebung, bevor Sie sie in Produktion übernehmen.


Kurzer Anker für Betreiber: Wenn Sie möchten, kann diese Anleitung in ein automatisierbares Playbook (Ansible) umgewandelt werden. Kontaktieren Sie Ihr Team, um Konfigurationsvorlagen und Secrets-Management zu vereinheitlichen.

Autor
Redaktion

Ähnliche Materialien

iPhone: Eigene Klingeltöne in iOS 26 einstellen
Anleitungen

iPhone: Eigene Klingeltöne in iOS 26 einstellen

Speicherintegrität deaktiviert: Fehler beheben
Windows Support

Speicherintegrität deaktiviert: Fehler beheben

ONLYOFFICE auf Manjaro installieren
Linux Anleitung

ONLYOFFICE auf Manjaro installieren

Windows 11 USB-Installer per Eingabeaufforderung
Anleitung

Windows 11 USB-Installer per Eingabeaufforderung

Videos aus dem Internet herunterladen
How-to

Videos aus dem Internet herunterladen

Pixlr: Kreatives Online-Fotoediting mit KI
Fotobearbeitung

Pixlr: Kreatives Online-Fotoediting mit KI