通过 helm / terraform 安装自定义 grafana 数据源

Posted

技术标签:

【中文标题】通过 helm / terraform 安装自定义 grafana 数据源【英文标题】:Installing a custom grafana datasource through helm / terraform 【发布时间】:2021-12-28 08:13:33 【问题描述】:

我想将 alertmanager 数据源 (https://grafana.com/grafana/plugins/camptocamp-prometheus-alertmanager-datasource/) 安装到我正在使用 terraform 和 helm 提供程序构建的 kube-prometheus-stack 安装中。我不知道如何将插件文件获取到运行 grafana 的节点。

使用修改后的values.yaml 并通过-f values.yaml 提供给helm(请忽略值):

  additionalDataSources:
  - name: Alertmanager
    editable: false
    type: camptocamp-prometheus-alertmanager-datasource
    url: http://localhost:9093
    version: 1
    access: default
    # optionally
    basicAuth: false
    basicAuthUser:
    basicAuthPassword:

我可以在grafana中看到数据源,但是插件文件不存在。

Alertmanager visible in list of datasources

但是,点击我看到的数据源

Plugin not found, no installed plugin with that ID

请注意,grafana pod 似乎需要重新启动才能获取数据源更改,我认为需要在更高级别进行修复。

【问题讨论】:

【参考方案1】:

我发现我可以使用以下方法进入运行 grafana 的 pod,从而取得了一些进展:

kubectl exec -it --container grafana prometheus-grafana-5d844b67c6-5p46b -- /bin/sh

kubectl get pods 中列出的是边车。

然后我可以运行:

kubectl exec -it --container grafana prometheus-grafana-5d844b67c6-5p46b -- grafana-cli plugins install camptocamp-prometheus-alertmanager-datasource

完成了所需的文件安装。删除并重新创建 pod 后,有进度

渴望听到任何有关方法或更好的想法的 cmet!

【讨论】:

【参考方案2】:

将文件放到那里实际上非常简单,我不敢相信我忽略了简单的解决方案。在这里发布,希望其他人觉得它有用。

kube-prometheus-stackvalues.yaml 文件中,只需覆盖grafana 部分,如下所示:

grafana:
  .
  .
  .
  plugins:
    - camptocamp-prometheus-alertmanager-datasource
    - grafana-googlesheets-datasource
    - doitintl-bigquery-datasource
    - redis-datasource
    - xginn8-pagerduty-datasource
    - marcusolsson-json-datasource
    - grafana-kubernetes-app
    - yesoreyeram-boomtable-panel
    - savantly-heatmap-panel
    - bessler-pictureit-panel
    - grafana-polystat-panel
    - dalvany-image-panel
    - michaeldmoore-multistat-panel

  additionalDataSources:
  - name: Alertmanager
    editable: false
    type: camptocamp-prometheus-alertmanager-datasource
    url: http://prometheus-kube-prometheus-alertmanager.monitoring:9093
    version: 1
    access: default
    # optionally
    basicAuth: false
    basicAuthUser:
    basicAuthPassword:

插件的名称/类型可以在Grafana Plugins page的安装说明中找到

【讨论】:

以上是关于通过 helm / terraform 安装自定义 grafana 数据源的主要内容,如果未能解决你的问题,请参考以下文章

通过 Terraform Helm 提供程序和 Azure DevOps 部署 helm 图表,同时从 ACR 获取 helm 图表

等待条件时terraform helm释放超时

使用 Helm 而不是 Terraform 的困惑

卡在 Terraform 到 Kubernetes 的部分 helm 版本中

如何通过helm为安装的nginx-ingress添加静态IP

在 GKE 集群上使用 Terraform 部署 Helm 工作负载