我有一个在 Kubernetes 之上运行的现有 Kibana 服务。如何在其中安装自定义 Kibana 插件。
我尝试通过在 pod 中运行以下命令来安装插件。但是插件不起作用。
bin/kibana-plugin install file:///tmp/myplugin-1.0.0.zip
我应该重新启动 Kibana 服务以使插件工作吗?如果是,如何在 Kubernetes 上重启 Kibana 服务?或者,我还缺少其他步骤吗?
我有一个在 Kubernetes 之上运行的现有 Kibana 服务。如何在其中安装自定义 Kibana 插件。
我尝试通过在 pod 中运行以下命令来安装插件。但是插件不起作用。
bin/kibana-plugin install file:///tmp/myplugin-1.0.0.zip
我应该重新启动 Kibana 服务以使插件工作吗?如果是,如何在 Kubernetes 上重启 Kibana 服务?或者,我还缺少其他步骤吗?
我认为最简单的方法是使用 helm chart 安装 kibana:https ://github.com/helm/charts/tree/master/stable/kibana
Helm 允许您在 kubernetes 上安装应用程序,而只需配置一些选项,对于 kibana,您可以设置已安装插件的列表。查看上面的链接以获取有关配置 kibana 图表的详细信息,您可以在他们的网站上查看有关 helm 的更多信息:https ://helm.sh/docs/intro/quickstart/
为了安装图表,您使用包含配置的文件 (values.yaml)。在该文件中,显示在我链接到的图表中,您有以下部分:
plugins:
# set to true to enable plugins installation
enabled: false
# set to true to remove all kibana plugins before installation
reset: false
# Use <plugin_name,version,url> to add/upgrade plugin
values:
# - elastalert-kibana-plugin,1.0.1,https://github.com/bitsensor/elastalert-kibana-plugin/releases/download/1.0.1/elastalert-kibana-plugin-1.0.1-6.4.2.zip
# - logtrail,0.1.31,https://github.com/sivasamyk/logtrail/releases/download/v0.1.31/logtrail-6.6.0-0.1.31.zip
# - other_plugin
所以在你的情况下,你会使用这样的东西:
plugins:
enabled: true
values:
- myplugin, 0.1,http://_your_publicly_available_url/myplugin-1.0.0.zip
不建议直接对 Pod 进行更改,因为它们会不断被替换。
根据Kibana README.MD,有一个安装 Kibana 的选项,包括带有所有特殊参数的 Yaml,包括插件的安装。
这是完整的Values.yaml,我鼓励您检查所有可用的参数。
对于插件安装,我们将从默认 Values.yaml 中查看第 179-188 行:
plugins:
# set to true to enable plugins installation
enabled: true
# set to true to remove all kibana plugins before installation
reset: false
# Use <plugin_name,version,url> to add/upgrade plugin
values:
- elastalert-kibana-plugin,1.0.1,https://github.com/bitsensor/elastalert-kibana-plugin/releases/download/1.0.1/elastalert-kibana-plugin-1.0.1-6.4.2.zip
- logtrail,0.1.31,https://github.com/sivasamyk/logtrail/releases/download/v0.1.31/logtrail-6.6.0-0.1.31.zip
根据plugin_name,version,url格式添加或删除所需的插件。
将文件另存为 values.yaml 并运行:
$ helm install stable/kibana --generate-name -f values.yaml
服务启动后,定义的插件将可用。
您可以通过在 pod 描述中查找插件名称来验证您是否values.yaml
已处理:
$ kubectl --namespace=default describe pods -l "app=kibana"
Name: kibana-1578496954-595c5856c7-82xbr
...///supressed output///...
Init Containers:
kibana-plugins-install:
Container ID: docker://937c95da139361d8c0e524f9850ad6ab63e9364dc7c51c65a66fe6bb3445ceed
Image: docker.elastic.co/kibana/kibana-oss:6.7.0
Image ID: docker-pullable://docker.elastic.co/kibana/kibana-oss@sha256:9af7fbceb7c9a746df1f7dc79d2b3bb320f0fddf9b06a3cc12fd8f903902e731
Command:
/bin/bash
-c
set -e
rm -rf plugins/lost+found
plugins=(
elastalert-kibana-plugin,1.0.1,https://github.com/bitsensor/elastalert-kibana-plugin/releases/download/1.0.1/elastalert-kibana-plugin-1.0.1-6.4.2.zip
logtrail,0.1.31,https://github.com/sivasamyk/logtrail/releases/download/v0.1.31/logtrail-6.6.0-0.1.31.zip
您需要使用插件扩展 kibana docker 映像。使用扩展镜像在k8s集群中部署kibana
请参阅下面的示例
FROM docker.elastic.co/kibana/kibana-oss:6.1.1
RUN kibana-plugin install https://github.com/sivasamyk/logtrail/releases/download/v0.1.25/logtrail-6.1.1-0.1.25.zip