So installierst du OpenSearch unter Ubuntu 24.04
OpenSearch ist ein von der Community betriebenes Projekt von Amazon und ein Fork von Elasticsearch und Kibana. Es ist eine vollständig quelloffene Suchmaschine und Analyse-Suite mit reichhaltigen Features und innovativen Funktionen. Die Hauptkomponenten des OpenSearch-Projekts sind OpenSearch (eine Abspaltung von Elasticsearch) und die OpenSearch Dashboards (eine Abspaltung von Kibana). Beide Komponenten bieten Funktionen wie Unternehmenssicherheit, Alarmierung, maschinelles Lernen, SQL, Indexstatusverwaltung und mehr.
Diese Anleitung zeigt dir, wie du OpenSearch und OpenSearch Dashboard auf dem Ubuntu 24.04 Server installierst. Außerdem sicherst du OpenSearch mit TLS-Zertifikaten und aktivierst die Authentifizierung mit Benutzernamen und Passwort.
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Einen Ubuntu 24.04 Server mit mindestens 8 GB RAM
- Einen Nicht-Root-Benutzer mit einem Administrator-Server
Hinzufügen des OpenSearch-Repositorys
Um zu beginnen, musst du die Repositories OpenSearch und OpenSearch Dashboard zu deinem System hinzufügen. In diesem Beispiel verwenden wir die neueste stabile Version von OpenSearch.
Führe zunächst den folgenden Befehl aus, um die Basispakete auf deinem Ubuntu-System zu installieren.
sudo apt install lsb-release ca-certificates curl gnupg2 -y
Lade den GPG-Schlüssel für das OpenSearch-Repository mit dem folgenden Befehl herunter.
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
Füge die Repositories für OpenSearch und OpenSearch Dashboard mit dem folgenden Befehl zu deinem System hinzu. In diesem Beispiel verwendest du die stabile Version von OpenSearch 2.x.
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list
Zum Schluss führst du den Befehl„apt“ aus, um deinen Paketindex zu aktualisieren und neue OpenSearch-Paketinformationen abzurufen.
sudo apt update
Installation von OpenSearch und OpenSearch Dashboard
Nachdem das OpenSearch-Repository hinzugefügt wurde, installierst du OpenSearch und OpenSearch Dashboard über den APT-Paketmanager. Anschließend startest du beide Dienste über das Dienstprogramm„systemctl„.
Bevor du OpenSearch installierst, führe den folgenden Befehl aus, um ein zufälliges Passwort für die OpenSearch-Installation zu generieren. Achte darauf, dass du die Ausgabe kopierst und Großbuchstaben, Zahlen und Symbole einschließt.
sudo openssl rand -hex 16
Führe nun den unten stehenden Befehl aus, um die Pakete„opensearch“ und„opensearch-dashboard“ zu installieren. Achte darauf, dass du das„OPENSEARCH_INITIAL_ADMIN_PASSWORD“ änderst und gib„Y“ ein, um die Installation zu bestätigen.
sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard
Nachdem die Installation abgeschlossen ist, führe den Befehl„systemctl“ aus, um den systemd Manager neu zu laden und die neuen Dienstdateien anzuwenden.
sudo systemctl daemon-reload
Jetzt kannst du OpenSearch mit dem unten stehenden Befehl starten, aktivieren und überprüfen.
sudo systemctl enable --now opensearch sudo systemctl status opensearch
Du kannst unten sehen, dass OpenSearch läuft.
Zuletzt kannst du den OpenSearch Dashboard-Dienst mit dem folgenden Befehl starten, aktivieren und überprüfen.
sudo systemctl enable --now opensearch-dashboards sudo systemctl status opensearch-dashboards
In der folgenden Ausgabe kannst du sehen, dass der Dienst„opensearch-dashboards“ läuft.
OpenSearch konfigurieren
Wenn OpenSearch installiert ist, konfigurierst du die Installation über die Datei„/etc/opensearch/opensearch.yml„. Außerdem erhöhst du bei Bedarf die standardmäßige maximale JVM-Größe (Java Virtual Memory) für OpenSearch.
Öffne die standardmäßige OpenSearch-Konfiguration„/etc/opensearch/opensearch.yml“ mit dem Editor„nano„.
sudo nano /etc/opensearch/opensearch.yml
Ändere die folgenden OpenSearch-Konfigurationen:
- * Ändere die Option’network.host‚ mit deiner lokalen IP-Adresse.
- * Füge die Option‚discovery.type‚ als’single-node‚ hinzu, um OpenSearch auf einem einzigen Modus laufen zu lassen.
- * Setze die Option‚plugins.security.disabled‚ auf‚false‚.
# Bind OpenSearch to the correct network interface. Use 0.0.0.0 # to include all available interfaces or specify an IP address # assigned to a specific interface. network.host: 192.168.10.60 # Unless you have already configured a cluster, you should set # discovery.type to single-node, or the bootstrap checks will # fail when you try to start the service. discovery.type: single-node # If you previously disabled the security plugin in opensearch.yml, # be sure to re-enable it. Otherwise you can skip this setting. plugins.security.disabled: false
Speichere die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes öffnest du die JVM (Java Virtual Machine)-Konfiguration„/etc/opensearch/jvm.options“ mit dem Editor„nano„.
sudo nano /etc/opensearch/jvm.options
Erhöhe den standardmäßig eingestellten maximalen Speicher für OpenSearch nach Bedarf. Der Standardwert ist„1GB„.
-Xms2g -Xmx2g
Speichere und beende die Datei.
Führe abschließend den folgenden„systemctl„-Befehl aus, um„opensearch“ neu zu starten und deine Änderungen zu übernehmen. Damit wird OpenSearch auf einer lokalen IP-Adresse im Einzelmodus ausgeführt.
sudo systemctl restart opensearch
OpenSearch mit TLS/SSL-Zertifikaten absichern
Nachdem du nun OpenSearch konfiguriert hast, musst du die Sicherheit von OpenSearch durch SSL/TLS-Zertifikate einrichten. In diesem Abschnitt deaktivierst du die Demo-Zertifikate und erstellst anschließend Root-Zertifikate, Admin-Zertifikate und Host/Server-Zertifikate.
Bevor du SSL-Zertifikate erstellst, löschst du die Demo-Zertifikate aus OpenSearch mit dem folgenden Befehl.
rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}
Bearbeite die OpenSearch-Konfiguration„/etc/opensearch/opensearch.yml“ mit dem Editor„nano„.
sudo nano /etc/opensearch/opensearch.yml
Kommentiere die„Demo„-Sicherheitskonfiguration für OpenSearch wie folgt.
Speichere die Datei und beende den Editor.
Erstelle nun ein neues Verzeichnis‚/etc/opensearch/certs‚ und wechsle in dieses Verzeichnis. In diesem Verzeichnis werden neue Zertifikate für OpenSearch gespeichert.
mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs
Root-Zertifikate generieren
Führe zunächst den folgenden Befehl aus, um Root-Zertifikate zu erzeugen, die zum Signieren deiner anderen Zertifikate wie Server- und Client-Zertifikate verwendet werden.
openssl genrsa -out root-ca-key.pem 2048
Führe nun den folgenden Befehl aus, um ein Root-Zertifikat aus deinem privaten Schlüssel zu erzeugen. Achte darauf, dass du die Option„-subj“ durch deine Serverdaten ersetzt.
openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730
Admin-Zertifikate generieren
Erstelle mit folgendem Befehl einen neuen privaten Schlüssel für dein Admin-Zertifikat.
openssl genrsa -out admin-key-temp.pem 2048
Konvertiere deinen Admin-Schlüssel mit dem unten stehenden Befehl in das PKCS8-Format.
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
Als Nächstes erstellst du mit dem folgenden Befehl ein neues Signing Request Certificate (CSR) für das Admin-Zertifikat.
openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr
Führe nun den folgenden Befehl aus, um dein neues Admin-Zertifikat (CSR) mit dem Stammzertifikat zu signieren.
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Erzeugen von Host- oder Server-Zertifikaten
Erstelle den privaten Schlüssel für deine OpenSearch-Hosts/Server und konvertiere das Zertifikat in das PKCS8-Format.
openssl genrsa -out ubuntu24-key-temp.pem 2048 openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM
Führe nun den folgenden Befehl aus, um eine Zertifikatsanforderung (CSR) für deinen Host zu erzeugen. Der CN oder Common Name sollte mit dem fqdn deines Hostservers übereinstimmen und nicht mit dem Hostnamen. In diesem Beispiel lautet der fqdn des Servers„ubuntu24.howtoforge.local„.
openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr
Als nächstes führst du den folgenden Befehl aus, um eine neue Erweiterungsdatei zu erstellen, die den DNS deines Hosts/Servers enthält.
echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext
Zum Schluss führst du den folgenden Befehl aus, um das Host/Server-Zertifikat mit dem Root-Zertifikat zu signieren und die zuvor erstellte Erweiterungsdatei einzubinden.
openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext
Einrichten von Zertifikaten
Lösche die temporären Zertifikate, die CSR (Zertifikatsanforderungen) für den Admin und den Host sowie die Erweiterungsdatei mit folgendem Befehl.
rm *temp.pem *csr *ext ls
Wandle nun das Zertifikat„root-ca.pem“ mit dem folgenden Befehl in die Datei„root-ca.crt“ um.
openssl x509 -outform der -in root-ca.pem -out root-ca.crt
Danach kopierst du das Zertifikat„root-ca.crt“ in das Verzeichnis„/usr/local/share/ca-certificates“ und lädst dein Root-Zertifikat auf den Server.
sudo cp root-ca.crt /usr/local/share/ca-certificates sudo update-ca-certificates
Zum Schluss führst du den folgenden Befehl aus, um die richtigen Berechtigungen und Eigentümer der Zertifikatsdateien und -verzeichnisse einzurichten.
sudo chown -R opensearch:opensearch /etc/opensearch/certs sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem sudo chmod 0600 /etc/opensearch/certs/*.crt
Hinzufügen von Zertifikaten zu OpenSearch
Nachdem du TLS-Zertifikate für OpenSearch erstellt hast, musst du der Datei„opensearch.yml“ eine neue Konfiguration hinzufügen. In diesem Fall fügst du mit dem Bash-Skript eine neue Konfiguration zur Datei „opensearch.yml“ hinzu.
Bevor du deinem OpenSearch-Server Zertifikate hinzufügst, führe den folgenden Befehl aus, um die Datei„opensearch.yml“ zu sichern und deinen Server fqdn einzurichten.
sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig sudo hostnamectl set-hostname ubuntu24.howtoforge.local
Erstelle nun eine neue Datei„add-cert.sh“ mit dem Editor„nano„.
nano add-cert.sh
Füge die folgenden Konfigurationen in die Datei ein. Damit fügst du neue Konfigurationen zur OpenSearch-Konfigurationsdatei‚opensearch.yml‚ hinzu
#! /bin/bash # Before running this script, make sure to replace the CN in the # node's distinguished name with a real DNS A record. echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml echo " - 'CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml
Speichere die Datei und beende den Editor, wenn du fertig bist.
Mache nun die Datei„add-cert.sh“ ausführbar und führe sie mit dem folgenden Befehl aus. Die neuen Konfigurationen werden der Datei „opensearch.yml“ hinzugefügt.
chmod +x add-cert.sh ./add-cert.sh
OpenSearch mit Passwort-Authentifizierung absichern
Jetzt hast du OpenSearch mit SSL/TLS-Zertifikaten konfiguriert, und im nächsten Schritt richtest du die Passwortauthentifizierung für OpenSearch ein. Du legst zwei Benutzer fest, die sich bei OpenSearch anmelden und in das OpenSearch Dashboard integrieren.
Gehe in das Verzeichnis„/usr/share/opensearch/plugins/opensearch-security/tools“ und führe das Skript„hash.sh“ aus, um ein neues Passwort für OpenSearch zu erzeugen. Führe„hash.sh“ zweimal aus, um zwei Passwörter für OpenSearch und OpenSearch Dashboard zu erzeugen. Achte darauf, dass du das generierte Passwort auf deinen Zettel kopierst.
cd /usr/share/opensearch/plugins/opensearch-security/tools OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
Öffne nun die Datei„/etc/opensearch/opensearch-security/internal_users.yml“ mit dem Editor„nano„.
sudo nano /etc/opensearch/opensearch-security/internal_users.yml
Ändere das Hash-Passwort für die Benutzer‚admin‚ und‚kibanaserver‚ mit deinem früheren Passwort. Der Benutzer„admin“ wird für die Anmeldung beim OpenSearch Dashboard verwendet, der Benutzer„kibanaserver“ für die Verbindung zwischen OpenSearch und OpenSearch Dashboard.
admin: hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K" reserved: true backend_roles: - "admin" description: "Admin user" kibanaserver: hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K" reserved: true description: "Demo OpenSearch Dashboards user"
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um den Dienst„opensearch“ neu zu starten und deine Änderungen zu übernehmen.
sudo systemctl restart opensearch
Sobald OpenSearch neu gestartet ist, führe den unten stehenden Befehl aus, um deine SSL-Zertifikate auf OpenSearch anzuwenden.
cd /usr/share/opensearch/plugins/opensearch-security/tools OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv
Wenn alles klappt, siehst du eine Ausgabe wie diese:
Zum Schluss führst du den Befehl„curl“ aus, um die Authentifizierung am OpenSearch-Server zu überprüfen.
curl https://192.168.10.60:9200 -u admin:password -k curl https://node-rock1:9200 -u kibanaserver:kibanapass -k
Wenn sie erfolgreich war, kannst du mit deinem Benutzernamen und Passwort über das HTTPS-Protokoll auf OpenSearch zugreifen.
OpenSearch Dashboard konfigurieren
Nachdem die Passwortauthentifizierung konfiguriert ist, richtest du das OpenSearch Dashboard ein, indem du die Datei„opensearch-dashboard,yml“ bearbeitest.
Öffne die Konfiguration für OpenSearch Dashboard„/etc/opensearch-dashboards/opensearch-dashboard.yml“ mit dem Editor„nano„.
sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml
Gib deine lokale IP-Adresse in die Option„server.host“ wie folgt ein:
server.host: "192.168.10.60"
Achte darauf, dass du den OpenSearch-Host, den Benutzernamen und das Passwort mit deinen Daten änderst.
opensearch.hosts: ["https://192.168.10.60:9200"] opensearch.ssl.verificationMode: none opensearch.username: kibanaserver opensearch.password: kibanapass
Speichere die Datei und beende den Editor.
Führe nun den unten stehenden„systemctl„-Befehl aus, um das OpenSearch Dashboard neu zu starten und deine Änderungen zu übernehmen. Damit sollte das OpenSearch Dashboard mit OpenSearch verbunden sein.
sudo systemctl restart opensearch-dashboards
Als Nächstes öffnest du deinen Webbrowser und besuchst http://192.168.10.60:5601. Wenn deine Installation erfolgreich war, siehst du die Anmeldeseite für das OpenSearch Dashboard.
Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf„Anmelden„.
Wenn du eingeloggt bist, wähle„Daten hinzufügen„, um neue Daten hinzuzufügen, oder klicke auf die Option„Eigene Erkundung„.
Um die Verbindung zwischen OpenSearch und OpenSearch Dashboard sicherzustellen, musst du den OpenSearch-Status im Dashboard überprüfen.
Klicke im Bereich„Verwaltung“ auf„Dev Tools„.
Im Konsolenbereich gibst du„GET /“ ein und klickst auf die Schaltfläche „Play“. Wenn deine Verbindung zu OpenSearch und dem OpenSearch Dashboard erfolgreich ist, siehst du die folgende Seite.
Fazit
Herzlichen Glückwunsch! Du hast OpenSearch und das OpenSearch Dashboard auf dem Ubuntu 24.04 Server installiert. OpenSearch läuft im Einzelmodus und die Installation ist mit HTTPS gesichert. Schließlich hast du auch die Authentifizierung für OpenSearch konfiguriert und OpenSearch in das OpenSearch Dashboard integriert.