Portainer

Einrichtung der Proxy-Weiterleitung für Portainer auf Managed Server

Wenn Sie einen Managed Server mit Managed Docker mit Portainer bestellt haben, können Sie das Webinterface von Portainer mit dieser Anleitung aufrufbar machen. Für die Einrichtung eines Proxys gehen Sie im Endkundenmenü nach

Subdomains => Übersicht

Dort legen Sie entweder eine neue Subdomain an oder wählen eine vorhandene Subdomain aus. Mit Klick auf die Aktion Ziel können Sie den Proxy Eintrag vornehmen.

../../_images/portainerproxy_1.png

Wir empfehlen den Proxyzugriff durch ein Passwort zu schützen. Setzen Sie hierfür den Haken bei Proxyzugriff nur mit Passwort. Bei .htusers-Datei geben Sie den Pfad zu der .htusers-Datei an. Wenn Sie keine .htusers-Datei haben, muss diese erst erstellt werden.

Die .htusers-Datei können Sie durch Einrichten eines Verzeichnisschutzes im Webverzeichnis der Subdomain erstellen. Eine Anleitung dazu finden Sie hier:

Einrichten eines Verzeichnisschutzes

Alternativ kann auf unseren Managed Servern diese auch über die Shell erzeugt werden, wenn Sie sich über SSH als Benutzer anmelden. Rufen Sie hierfür die htpasswd Binärdatei auf:

/usr/local/pd-admin2/httpd-2.4/bin/htpasswd -c ~/.htuser <user>

Anstelle von <user> zum Schluss geben Sie den gewünschten Benutzernamen an. Danach werden Sie aufgefordert das Passwort zu setzen.

Als Ziel für Ihre Subdomain geben Sie https://<private IP Adresse>:9443/ an und setzen den Haken bei Proxy-Eintrag für URL-Ziel anstatt Redirect anlegen. Die private IP Adresse wird Ihnen in der Begrüßungsmail mitgeteilt.

../../_images/portainerproxy_2.png

Mit Klick auf OK ist die Einrichtung des Proxys abgeschlossen und Sie können den Dienst über die gewählte Subdomain aufrufen.

OpenSearch und OpenSearch Dashboards mit Portainer installieren

Diese Anleitung beschreibt die Installation von OpenSearch 3.8.0 und OpenSearch Dashboards 3.8.0 ausschließlich über die Portainer-Weboberfläche.

Voraussetzungen

Für die Installation benötigen Sie:

  • Zugriff auf die Portainer-Weboberfläche

In den folgenden Beispielen wird 10.0.68.15 als IP-Adresse des Docker-Hosts verwendet. Verwenden Sie die IP-Adresse, die Ihnen für Ihre Umgebung bereitgestellt wurde.

OpenSearch installieren

Öffnen Sie in Portainer:

ContainersAdd container

Container

Tragen Sie folgende Werte ein:

Name:
opensearch

Image:
opensearchproject/opensearch:3.8.0

Port veröffentlichen

Veröffentlichen Sie folgenden Port:

Host IP:        10.0.68.15
Host Port:      9200
Container Port: 9200
Protocol:       TCP

Host IP:        10.0.68.15
Host Port:      9600
Container Port: 9600
Protocol:       TCP

Dadurch ist OpenSearch über die angegebene interne IP-Adresse erreichbar.

Umgebungsvariablen

Öffnen Sie unter Advanced container settings den Bereich Env und fügen Sie folgende Variablen hinzu:

discovery.type=single-node
OPENSEARCH_INITIAL_ADMIN_PASSWORD=<SICHERES_ADMIN_PASSWORT>
OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m

Wichtig

Ersetzen Sie <SICHERES_ADMIN_PASSWORT> durch ein ausreichend starkes Passwort und bewahren Sie dieses sicher auf.

Volumes

Für diese Installation werden keine zusätzlichen Volumes konfiguriert.

Unter Volumes ist daher kein zusätzlicher Eintrag erforderlich.

Netzwerk

Wählen Sie:

bridge

Restart Policy

Wählen Sie:

Unless stopped

Anschließend wählen Sie Deploy the container.

OpenSearch prüfen

Öffnen Sie in Portainer:

Containersopensearch

Der Container muss den Status running besitzen.

Öffnen Sie anschließend Logs. Der Start ist erfolgreich, wenn keine schwerwiegenden Fehlermeldungen angezeigt werden und OpenSearch vollständig initialisiert wurde.

Die OpenSearch-API ist anschließend erreichbar unter:

https://10.0.68.15:9200

Passwort des technischen Dashboards-Benutzers ändern

Die OpenSearch-Demo-Konfiguration verwendet für die interne Kommunikation mit OpenSearch Dashboards den reservierten Benutzer kibanaserver. Das mitgelieferte Demo-Passwort sollte nicht weiterverwendet werden. Vor der Installation von OpenSearch Dashboards wird deshalb ein eigenes, sicheres Passwort für kibanaserver gesetzt.

Öffnen Sie in Portainer:

ContainersopensearchConsole

Verbinden Sie sich mit:

/bin/bash

Wechseln Sie in das Security-Verzeichnis und erstellen Sie eine Sicherung:

cd /usr/share/opensearch/config/opensearch-security
cp internal_users.yml internal_users.yml.bak

Passwort-Hash erzeugen

Erzeugen Sie für das gewünschte Passwort einen neuen Hash:

OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk \
/usr/share/opensearch/plugins/opensearch-security/tools/hash.sh \
-p '<SICHERES_DASHBOARDS_PASSWORT>'

Kopieren Sie den ausgegebenen Hash und setzen Sie ihn in eine Variable:

NEW_HASH='<AUSGEGEBENER_HASH>'

Ersetzen Sie anschließend ausschließlich den Passwort-Hash des Benutzers kibanaserver:

sed -i "/^kibanaserver:/,/^[^[:space:]]/ s#^[[:space:]]*hash: .*#  hash: \"${NEW_HASH}\"#" \
  internal_users.yml

Kontrollieren Sie die Änderung:

grep -n -A4 '^kibanaserver:' internal_users.yml

Benutzerkonfiguration übernehmen

Laden Sie anschließend nur die geänderte Benutzerkonfiguration in OpenSearch:

cd /usr/share/opensearch/plugins/opensearch-security/tools

OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk \
./securityadmin.sh \
  -f /usr/share/opensearch/config/opensearch-security/internal_users.yml \
  -t internalusers \
  -icl \
  -nhnv \
  -cacert /usr/share/opensearch/config/root-ca.pem \
  -cert /usr/share/opensearch/config/kirk.pem \
  -key /usr/share/opensearch/config/kirk-key.pem

Bei erfolgreicher Übernahme erscheint unter anderem:

SUCC: Configuration for 'internalusers' created or updated
Done with success

Optional kann das neue Passwort direkt im OpenSearch-Container geprüft werden:

curl -k -u kibanaserver:'<SICHERES_DASHBOARDS_PASSWORT>' \
  https://localhost:9200/_plugins/_security/authinfo?pretty

Wichtig

kibanaserver ist ausschließlich für die interne Kommunikation zwischen OpenSearch Dashboards und OpenSearch vorgesehen. Für die Anmeldung an der Weboberfläche wird weiterhin der Benutzer admin verwendet.

OpenSearch Dashboards installieren

Nachdem OpenSearch erfolgreich gestartet wurde, öffnen Sie erneut:

ContainersAdd container

Container

Name:
opensearch-dashboards

Image:
opensearchproject/opensearch-dashboards:3.8.0

Port veröffentlichen

Host IP:        10.0.68.15
Host Port:      5601
Container Port: 5601
Protocol:       TCP

Umgebungsvariablen

Öffnen Sie unter Advanced container settings den Bereich Env und fügen Sie folgende Variablen hinzu:

OPENSEARCH_HOSTS=["https://10.0.68.15:9200"]
OPENSEARCH_SSL_VERIFICATIONMODE=none
OPENSEARCH_USERNAME=kibanaserver
OPENSEARCH_PASSWORD=<SICHERES_DASHBOARDS_PASSWORT>

OPENSEARCH_SSL_VERIFICATIONMODE=none ist für diese Installation vorgesehen, solange OpenSearch mit dem bereitgestellten selbstsignierten Zertifikat betrieben wird.

Volumes

Für OpenSearch Dashboards werden ebenfalls keine zusätzlichen Volumes konfiguriert.

Netzwerk

Wählen Sie:

bridge

Restart Policy

Wählen Sie:

Unless stopped

Anschließend wählen Sie Deploy the container.

OpenSearch Dashboards prüfen

Öffnen Sie in Portainer:

Containersopensearch-dashboards

Der Container muss den Status running besitzen.

Öffnen Sie anschließend Logs.

Ein erfolgreicher Start ist unter anderem an folgender Meldung erkennbar:

Server running at http://0.0.0.0:5601

Die Weboberfläche ist anschließend erreichbar unter:

http://10.0.68.15:5601

Die Anmeldung erfolgt mit:

Benutzer: admin
Passwort: <OPENSEARCH_INITIAL_ADMIN_PASSWORD>

Reverse Proxy für OpenSearch Dashboards

OpenSearch Dashboards kann über einen Proxy-Eintrag auf einem anderen Host im gleichen privaten Netzwerk erreichbar gemacht werden.

Die Weiterleitung erfolgt dabei auf die private IP-Adresse und den Port von OpenSearch Dashboards:

Reverse Proxy
     |
     v
http://10.0.68.15:5601
     |
     v
OpenSearch Dashboards

Eine allgemeine Anleitung zur Einrichtung einer Proxy-Weiterleitung finden Sie unter:

Einrichtung der Proxy-Weiterleitung für Portainer auf Managed Server

Als Ziel-Adresse verwenden Sie die private IP-Adresse des Servers sowie den Port von OpenSearch Dashboards. In diesem Beispiel lautet die Ziel-Adresse:

http://10.0.68.15:5601/

Beispielkonfiguration:

Subdomain:  opensearch-dash.test20000.de
Ziel:       http://10.0.68.15:5601/

Testindex über OpenSearch Dashboards

Nach der Anmeldung können Sie die Funktion von OpenSearch direkt über die Weboberfläche testen.

Öffnen Sie in OpenSearch Dashboards Dev Tools.

Testindex erstellen

PUT test-index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }
}

Für eine Single-Node-Installation wird number_of_replicas auf 0 gesetzt.

Testdokument schreiben

POST test-index/_doc/1?refresh=true
{
  "message": "OpenSearch funktioniert",
  "status": "OK"
}

Testdokument auslesen

GET test-index/_search

Die Antwort sollte das zuvor angelegte Testdokument enthalten.

Indexstatus prüfen

GET _cat/indices?v

Der Index test-index sollte bei dieser Single-Node-Konfiguration den Status green besitzen.