Kibana: 允许 http/https 代理安装插件

创建于 2016-01-13  ·  20评论  ·  资料来源: elastic/kibana

安全网络背后的客户无法使用“kibana plugin --install”来安装 Kibana 插件。 他们需要能够配置用于调用插件存储库的 http 或 https 代理。

Operations enhancement

最有用的评论

上面给出的不直接支持这一点的原因之一是无效的,因为 elasticsearch 的插件命令 _does_ 支持指定代理,尽管通过相应的 java 系统属性,如记录在:
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

所有20条评论

@seang-es 我们能否实现使用HTTP Connect 隧道的解决方案?

在与@seang-es 讨论之后,安全网络背后的用户似乎拥有自己的 http 代理服务器,并且只是希望能够通过这些代理来引导 Kibana。

用户想修改 kibana.yml 中的一个选项,将hostport设置为代理服务器。

我也需要验证代理设置。
我期待着您的实施。

是的,你不想在这里连接,只是简单的旧 http 代理

@seang-es 这如何与 Elasticsearch 中的bin/plugin等其他插件安装程序一起使用? 我没有看到他们的安装程序设置经过身份验证的代理的 CLI 选项? 同样在考虑了这一点之后,这不应该在操作系统级别进行处理吗?

在与@spalger@rashidkpc讨论后,我们不想在这里使用CONNECT 的原因是因为许多公司不支持它。 所以这里是建议的选项:

  1. 看看我们的用户是否真的需要这样做,或者是否有其他解决方法可以让用户完成同样的事情。 @seang-es,您能否回复@simianhacker的评论,以便我们更好地了解客户如何通过 Elasticsearch 插件解决这个问题。
  2. 重写installedPlugins模块以使用节点request模块而不是wreck.js因为 wreck 不支持代理。
  3. 编写一个扩展wreck.js的 http 代理插件。

在这 3 个中,如果这是一个非常需要的功能,我最喜欢实现选项 2。

经过进一步讨论,我们决定不为 Kibana 中的插件安装添加 http/https 代理。 主要原因是 Elasticsearch 也不支持它,并且有一种解决方法可以使用文件安装程序进行离线安装。

例如:

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

_注意_:您必须使用绝对路径

因此,我将删除P1标签并关闭此问题。

我提交了 issue #5998 来更新 Kibana 插件文档以包含从本地目录安装的文件。

上面给出的不直接支持这一点的原因之一是无效的,因为 elasticsearch 的插件命令 _does_ 支持指定代理,尽管通过相应的 java 系统属性,如记录在:
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下载文件然后手动安装对您有用吗?

这种所谓的解决方法似乎不起作用

$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>.

另外,不允许代理和/或离线插件安装基本上会导致 90% 的组织无法使用此版本...

离线安装的正确方法是:

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

@stormpython PI标签应该被删除,但它不应该保持打开状态吗?

这会破坏在 HTTP 代理后面正常工作的 Dockerfile。

@stormpython - 荒谬的解释有几个原因:

  • Elasticsearch支持传出代理(我知道是因为它是我安装插件的唯一方式);
  • 没有合理的管理员会允许来自其数据中心(服务器)的不受限制的传出流量,因此您应该期望插件安装将通过传出代理。 基本上,如果 Kibana 无法通过传出代理安装插件,则几乎无法安装它们。
  • 您建议的解决方法使管理和配置管理(即 Puppet、Chef)显着复杂化。 并引入混乱:例如,我不确定我安装 sense 插件的麻烦(请参阅问题 7400 )是否是由从文件安装(您的解决方法)引起的。

Guyz,无论讨论与否,决定与否,你都应该重新考虑一下。 只有一个决定是正确的(聪明的),而你错过了它。

安装项目的一致性很重要,因此我们将研究 Elasticsearch 中的代理支持。

使用puppet并在公司防火墙后面,我可以为elasticsearchlogstash (但不是kibana )安装插件

(1)在exec实例中设置环境变量

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],
    ;
}

或通过

(2) 将代理参数传递给java。

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

这是一个尝试 #7967 为插件安装添加代理支持

这已在 #12753 中修复,并将在 6.1 中发布。 插件命令将理解http_proxyhttps_proxyno_proxy环境变量。

好消息@timroes
非常感谢!

此页面是否有帮助?
0 / 5 - 0 等级