Apache Solr auf AlmaLinux 9 installieren, optimieren 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.
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
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.
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
Prüfen Sie den Status:
sudo service solr status
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
Prüfen Sie den Dienststatus und achten Sie auf die gelistete Java-Heapgröße:
sudo service solr status
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"
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.
Ö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.
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.
Melden Sie sich mit solr / SolrRocks an (ersetzen Sie durch sichere Zugangsdaten). Unter Security sehen Sie, dass das Plugin basic_auth aktiv ist.
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.
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
- System-Check: Ressourcen, Nutzer, Netzwerke prüfen.
- Basis-Installation: Java und Solr installieren.
- Betriebs-Tuning: Heap, HugePages, ulimits setzen.
- Netzwerk & Sicherheit: Firewall, Proxy, TLS konfigurieren.
- Auth & Rechte: Authentifizierung und Authorization einführen.
- 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.
Ähnliche Materialien

iPhone: Eigene Klingeltöne in iOS 26 einstellen

Speicherintegrität deaktiviert: Fehler beheben

ONLYOFFICE auf Manjaro installieren

Windows 11 USB-Installer per Eingabeaufforderung

Videos aus dem Internet herunterladen
