Kibana: http/https-Proxy für die Plugin-Installation zulassen

Erstellt am 13. Jan. 2016  ·  20Kommentare  ·  Quelle: elastic/kibana

Kunden hinter sicheren Netzwerken können 'kibana plugin --install' nicht verwenden, um Kibana-Plugins zu installieren. Sie benötigen die Möglichkeit, einen http- oder https-Proxy zu konfigurieren, der für die Aufrufe der Plugin-Repositories verwendet werden soll.

Operations enhancement

Hilfreichster Kommentar

Einer der oben genannten Gründe, dies nicht direkt zu unterstützen, ist ungültig, da der Plugin-Befehl von elasticsearch _does_ die Angabe von Proxys unterstützt, wenn auch über die entsprechenden Java-Systemeigenschaften, wie dokumentiert unter:
https://www.elastic.co/guide/en/elasticsearch/reference/1.6/modules-plugins.html

bin/plugin -DproxyHost=host_name -DproxyPort=port_number --install mobz/elasticsearch-head

Alle 20 Kommentare

@seang-es könnten wir eine Lösung implementieren, die HTTP Connect-Tunneling verwendet?

Nach einer Diskussion mit @seang-es scheint es, dass Benutzer hinter sicheren Netzwerken ihre eigenen HTTP-Proxy-Server haben und einfach gerne die Möglichkeit hätten, Kibana über diese Proxys zu leiten.

Die Benutzer möchten eine Option in der kibana.yml ändern, um host und port auf den Proxy-Server festzulegen.

Ich brauche auch die Proxy-Einstellung zu authentifizieren.
Ich freue mich auf Ihre Umsetzung.

Ja, Sie wollen hier kein CONNECT, nur einfache alte HTTP-Proxys

@seang-es Wie funktioniert das mit anderen Plugin-Installern wie bin/plugin in Elasticsearch? Ich sehe keine CLI-Optionen für ihre Installer, um einen authentifizierten Proxy einzurichten? Auch nachdem Sie darüber nachgedacht haben, sollte dies nicht auf Betriebssystemebene erledigt werden?

Nach einer Diskussion mit @spalger und @rashidkpc möchten wir CONNECT hier nicht verwenden, weil viele Unternehmen es nicht unterstützen. Hier also die vorgeschlagenen Optionen:

  1. Prüfen Sie, ob dies wirklich von unseren Benutzern benötigt wird oder ob es andere Problemumgehungen gibt, die es Benutzern ermöglichen würden, dasselbe zu erreichen. @seang-es, können Sie auf die Kommentare von @simianhacker antworten, damit wir besser verstehen, wie der Kunde dies für Elasticsearch-Plug-ins umgeht.
  2. Schreiben Sie das Modul installedPlugins neu, um das Modul des Knotens request anstelle von wreck.js zu verwenden, da das Wrack kein Proxying unterstützt.
  3. Schreiben Sie ein HTTP-Proxy-Plugin, das wreck.js erweitert.

Wenn dies eine dringend benötigte Funktion ist, fühle ich mich mit der Implementierung von Option 2 am wohlsten.

Nach weiteren Diskussionen haben wir uns entschieden, kein http/https-Proxy für Plugin-Installationen in Kibana hinzuzufügen. Der Hauptgrund dafür ist, dass Elasticsearch es auch nicht unterstützt und es eine Problemumgehung gibt, um Offline-Installationen mit dem Dateiinstallationsprogramm durchzuführen.

Beispielsweise:

bin/kibana plugin --install --url file:///home/username/plugin.tar.gz

_Hinweis_: Sie müssen absolute Pfade verwenden

Daher entferne ich das Label P1 und schließe dieses Problem.

Ich habe Issue #5998 eingereicht, um die Kibana-Plugin-Dokumentation zu aktualisieren, um Dateiinstallationen aus einem lokalen Verzeichnis einzuschließen.

Einer der oben genannten Gründe, dies nicht direkt zu unterstützen, ist ungültig, da der Plugin-Befehl von elasticsearch _does_ die Angabe von Proxys unterstützt, wenn auch über die entsprechenden Java-Systemeigenschaften, wie dokumentiert unter:
https://www.elastic.co/guide/en/elasticsearch/reference/1.6/modules-plugins.html

bin/plugin -DproxyHost=host_name -DproxyPort=port_number --install mobz/elasticsearch-head

@avallen Funktioniert das Herunterladen der Datei und das anschließende manuelle Installieren für Sie?

Dieser sogenannte Workaround scheint nicht zu funktionieren

$bin/kibana plugin --install --url file:///opt/kibana-4.4.1-linux-x64/marvel-latest.tar.gz
Invalid install option. Please use the format <org>/<plugin>/<version>.

Außerdem verhindert die Nichtzulassung von Proxy- und/oder Offline-Plug-in-Installationen im Grunde, dass 90 % der Unternehmen diese Version verwenden...

Der richtige Weg für die Offline-Installation ist:

bin/kibana plugin -i marvel -u file:///tmp/marvel-latest.tar.gz

@stormpython Das Label PI sollte entfernt werden, aber soll es nicht offen bleiben?

Dadurch werden Dockerfiles zerstört, die ansonsten hinter einem HTTP-Proxy korrekt funktionieren.

@stormpython - lächerliche Erklärung aus mehreren Gründen:

  • Elasticsearch unterstützt ausgehende Proxys (ich weiß, weil dies die einzige Möglichkeit für mich ist, Plugins zu installieren);
  • Kein vernünftiger Administrator wird uneingeschränkten ausgehenden Datenverkehr von seinem Rechenzentrum (Servern) zulassen, daher sollten Sie damit rechnen, dass die Plugin-Installation über einen ausgehenden Proxy läuft. Wenn Kibana Plugins nicht über einen ausgehenden Proxy installieren kann, bedeutet dies im Grunde, dass es sie überhaupt nicht installieren kann.
  • Die von Ihnen vorgeschlagene Problemumgehung verkompliziert die Verwaltung und das Konfigurationsmanagement erheblich (z. B. Puppet, Chef). Und führt zu Verwirrung: Zum Beispiel bin ich mir nicht sicher, ob meine Probleme beim Installieren des Sense-Plugins (siehe Problem 7400 ) durch die Installation aus einer Datei (Ihre Problemumgehung) verursacht werden oder nicht.

Guyz, diskutiert oder nicht, entschieden oder nicht, du solltest das nochmal überdenken. Nur eine Entscheidung ist die richtige (die kluge), und Sie haben sie verpasst.

Konsistenz zwischen den Projekten für die Installation ist wichtig, daher werden wir uns die Proxy-Unterstützung in Elasticsearch ansehen.

Mit puppet und hinter einer Firmen-Firewall kann ich Plugins für elasticsearch und logstash (aber nicht kibana ) installieren

(1) Setzen einer Umgebungsvariablen in der exec -Instanz

exec {
    "$name":
        command     => $command,
        creates     => $creates,
        environment => [ "http_proxy=http://1.2.3.4:3128" ],
        logoutput   => $logoutput,
        onlyif      => $onlyif,
        path        => ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
        returns     => [0,74],
    ;
}

oder von

(2) Übergabe von Proxy-Parametern an Java.

"${bin_plugin} -DproxyHost=1.2.3.4 -DproxyPort=3128 install -b --verbose $name"

Hier ist ein Versuch #7967, um Proxy-Unterstützung für die Plugin-Installation hinzuzufügen

Dies wurde mit #12753 behoben und wird mit 6.1 veröffentlicht. Der Plugin-Befehl versteht dann die Umgebungsvariablen http_proxy , https_proxy und no_proxy .

Tolle Neuigkeiten @timroes !
Großes Dankeschön dafür!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen