菜单
Enterprise Grafana Cloud 开源

插件管理

您可以使用插件来增强您的 Grafana 体验,插件是 Grafana 的扩展,超越了内置的各种可视化效果和数据源。

本指南向您展示如何安装由 Grafana Labs、商业合作伙伴、我们的社区构建的插件,或者您自己构建的插件。

插件类型

Grafana 支持三种类型的插件

  • 面板 - 这些插件使您可以轻松创建和添加任何类型的面板,以显示您的数据或改进您最喜欢的仪表板。
  • 数据源 - 这些插件允许您从各种数据源(如数据库、API、日志文件等)提取数据,并在 Grafana 中以图形、图表和仪表板的形式显示出来。
  • 应用程序 - 这些插件可以将数据源、面板、仪表板和 Grafana 页面捆绑到一起,以提供统一的体验。

面板插件

使用面板插件向您的仪表板添加新的可视化效果,例如 时钟马赛克变量 面板。

当您想要执行以下操作时,请使用面板插件

  • 可视化数据源查询返回的数据。
  • 在仪表板之间导航。
  • 控制外部系统,例如智能家居设备。

数据源插件

数据源插件增加了对新数据库的支持,例如 Google BigQuery

数据源插件与外部数据源通信,并以 Grafana 可以理解的格式返回数据。通过添加数据源插件,您可以立即在任何现有仪表板中使用数据。

当您想要查询来自外部或第三方系统的数据时,请使用数据源插件。

应用程序插件

应用程序或应用程序插件捆绑了数据源和面板,以提供统一的体验,例如 Zabbix 应用程序。

应用程序还可以添加自定义页面,用于控制面板等。

当您想要开箱即用的监控体验时,请使用应用程序插件。

管理应用程序插件的访问权限

使用 RBAC 自定义应用程序插件的访问权限。

默认情况下,查看者、编辑者和管理员角色可以访问其组织角色允许他们访问的所有应用程序插件。访问权限由 fixed:plugins.app:reader 角色授予。

注意

要阻止用户看到应用程序插件,请参阅这些权限场景

插件目录

Grafana 插件目录允许您在 Grafana 中浏览和管理插件。只有 Grafana 服务器管理员和组织管理员可以访问和使用插件目录。有关 Grafana 角色和权限的更多信息,请参阅角色和权限

以下访问规则适用于不同的用户角色

  • 如果您是组织管理员,您可以配置应用程序插件,但您不能安装、卸载或更新它们。
  • 如果您是服务器管理员,您不能配置应用程序插件,但您可以安装、卸载或更新它们。
  • 如果您既是组织管理员又是服务器管理员,您可以配置应用程序插件,也可以安装、卸载或更新它们。

注意

Grafana 插件目录旨在仅与单个 Grafana 服务器实例一起使用。对 Grafana 集群的支持计划在未来的 Grafana 版本中提供。

视频显示了早期版本的 Grafana 中的插件目录。

注意

如果需要,可以使用 配置文件中的 plugin_admin_enabled 标志禁用 Grafana 插件目录。

浏览插件

要浏览可用的插件

  1. 以管理员身份登录 Grafana 后,单击侧边菜单中的管理 > 插件和数据 > 插件,以查看已安装和可用的插件。
  2. 使用搜索根据名称、关键字、组织和其他元数据进行过滤。
  3. 单击数据源面板应用程序按钮以按插件类型进行过滤。

安装插件

安装插件最常见的方法是通过 Grafana UI,但也有其他方法可用。

  1. 在 Grafana 中,单击侧边导航菜单中的管理 > 插件和数据 > 插件,以查看所有插件。
  2. 浏览并查找插件。
  3. 单击插件的徽标。
  4. 单击安装

还有其他安装插件的方法,具体取决于您的设置。

使用 Grafana CLI 安装插件

Grafana CLI 允许您使用命令行安装、升级和管理 Grafana 插件。有关 Grafana CLI 插件命令的更多信息,请参阅插件命令

从 ZIP 文件安装插件

此方法通常用于插件目录中不可用或在没有互联网访问的环境中使用的插件。

下载包含插件资产的存档,并通过将存档解压缩到插件目录中来安装它。例如

bash
unzip my-plugin-0.2.0.zip -d YOUR_PLUGIN_DIR/my-plugin

插件目录的路径在配置文件中定义。有关更多信息,请参阅配置

#### 使用 Grafana 配置安装插件

注意

此功能需要 Grafana 11.5.0 或更高版本。

您可以通过将插件 ID 添加到 Grafana 配置文件中的 plugins.preinstall 部分来安装插件。这可以防止插件被意外卸载,并且可以自动更新。有关更多信息,请参阅配置

在气隙环境 (air-gapped environment) 中安装插件

插件安装通常需要互联网连接。您可以检查您的实例在安装期间使用了哪些端点,并将它们添加到实例的允许列表 (allowlist) 中。

如果这不可行,您可以选择使用 Grafana CLIZIP 文件安装插件。

您可以从 Grafana.com API 获取任何插件,方法是按照 API 中引用的下载链接。以下是基于 grafana-lokiexplore-app 插件的示例。

  1. 打开 https://grafana.org.cn/api/plugins/grafana-lokiexplore-app 并查找 links 部分
  2. 找到一个 download URL,它看起来像 https://grafana.org.cn/api/plugins/grafana-lokiexplore-app/versions/1.0.2/download
  3. 使用此 URL 下载插件 ZIP 文件,然后您可以按照上述说明安装它。

使用 Grafana Helm chart 安装插件

使用 Grafana Helm chart,使用 values 文件中的 plugins 字段,将要安装的插件添加为列表。有关配置的更多信息,请参阅 Helm chart 配置参考

以下 YAML 代码片段安装了 Grafana OnCall App 插件的 v1.9.0 版本和 Redis 数据源插件。您必须将此代码片段合并到您的 Helm values 文件中。

yaml
plugins:
  - https://grafana.org.cn/api/plugins/grafana-oncall-app/versions/v1.9.0/download;grafana-oncall-app
  - redis-datasource

更新完成后,确认消息将指示安装成功。

更新插件

要更新插件

  1. 在 Grafana 中,单击侧边导航菜单中的管理 > 插件和数据 > 插件,以查看所有插件。
  2. 单击已安装过滤器以仅显示已安装的插件。
  3. 单击插件的徽标。
  4. 单击更新

更新完成后,确认消息将指示安装成功。

卸载插件

要卸载插件

  1. 在 Grafana 中,单击侧边导航菜单中的管理 > 插件和数据 > 插件,以查看所有插件。
  2. 单击插件的徽标。
  3. 单击已安装过滤器以仅显示已安装的插件。
  4. 单击卸载

更新完成后,确认消息将指示安装成功。

插件签名

插件签名验证,也称为签名,是一种安全措施,用于确保插件未被篡改。加载时,Grafana 会检查插件是否已签名或未签名,以检查和验证其数字签名。

启动时,Grafana 会验证插件目录中每个插件的签名。如果插件未签名,则 Grafana 既不加载也不启动它。要查看每个插件的验证结果,请导航到 配置 -> 插件

Grafana 还会向服务器日志写入错误消息

bash
WARN[05-26|12:00:00] Some plugin scanning errors were found   errors="plugin '<plugin id>' is unsigned, plugin '<plugin id>' has an invalid signature"

如果您是插件开发者,并且想知道如何签署您的插件,请参阅签署插件

签名状态描述
核心 (Core)内置于 Grafana 的核心插件。
无效签名 (Invalid signature)插件具有无效签名。
已修改签名 (Modified signature)插件自签名后已更改。这可能表明存在恶意意图。
未签名 (Unsigned)插件未签名。
已签名 (Signed)插件签名已成功验证。

插件签名级别

所有插件都使用签名级别进行签名。签名级别决定了插件的分发方式。

插件级别描述
私有 (Private)

私有插件供您自己的 Grafana 使用。它们可能不会分发给 Grafana 社区,并且不会在 Grafana 目录中发布。

社区 (Community)

社区插件具有依赖技术,这些技术是开源且非营利性的。

社区插件在官方 Grafana 目录中发布,并且 Grafana 社区可以使用。

商业 (Commercial)

商业插件具有依赖技术,这些技术是闭源的或具有商业支持。

商业插件在官方 Grafana 目录中发布,并且 Grafana 社区可以使用。

允许未签名的插件

注意

Grafana Cloud 不支持未签名的插件。

我们强烈建议您不要在 Grafana 实例中运行未签名的插件。但是,如果您意识到风险并且仍然想要加载未签名的插件,请参阅配置

如果您允许加载未签名的插件,则 Grafana 会向服务器日志写入警告消息

bash
WARN[06-01|16:45:59] Running an unsigned plugin   pluginID=<plugin id>

注意

如果您正在开发插件,则可以启用开发模式以允许所有未签名的插件。

集成插件

您可以配置 Grafana 实例,以允许已安装插件的前端与其他已安装插件的后端进行本地直接通信。默认情况下,您只能与插件后端远程通信。例如,您可以使用此配置来启用 画布面板,以调用 actions_allow_post_url 选项允许的应用程序资源 API。

要启用插件之间的后端通信

  1. 设置您要与之通信的插件。在您的配置文件(grafana.inicustom.ini,具体取决于您的操作系统)中,删除分号以启用,然后设置以下配置选项

    actions_allow_post_url=

    这是一个逗号分隔的列表,使用 glob 匹配。

    • 要允许访问所有具有后端的插件

      actions_allow_post_url=/api/plugins/*
    • 要仅访问一个插件的后端

      actions_allow_post_url=/api/plugins/<GRAFANA_SPECIAL_APP>

插件前端沙箱

注意

插件前端沙箱目前处于公开预览状态。Grafana Labs 提供有限的支持,并且在正式发布该功能之前可能会发生重大更改。

插件前端沙箱是一项安全功能,可将插件前端代码与主 Grafana 应用程序隔离。启用后,插件在单独的 JavaScript 上下文中运行,这提供了多项安全优势

  • 防止插件修改其指定区域之外的 Grafana 界面部分
  • 阻止插件干扰其他插件的功能
  • 保护核心 Grafana 功能免受插件更改
  • 防止插件修改全局浏览器对象和行为

在前端沙箱内运行的插件应继续正常工作,而其预期功能不会有任何明显的更改。

启用前端沙箱

前端沙箱功能目前位于 pluginsFrontendSandbox 功能标志之后。要启用它,您需要

  1. 在您的 Grafana 配置中启用功能标志。有关启用功能标志的更多信息,请参阅配置功能开关

  2. 对于自托管的 Grafana 安装,请使用 enable_frontend_sandbox_for_plugins 配置选项,在 security 部分中添加您要沙箱化的插件 ID。

对于 Grafana Cloud 用户,您可以直接使用插件目录页面中的切换开关,为每个插件启用或禁用沙箱。默认情况下,所有插件都禁用沙箱。

注意

启用前端沙箱可能会影响某些插件的性能。仅当您完全信任插件并了解安全隐患时,才禁用沙箱。

兼容性

Frontend Sandbox(前端沙箱)在 Grafana >= 11.5 版本中以公开预览版的形式提供。它与所有类型的插件兼容,包括应用程序插件、面板插件和数据源插件。不支持基于 Angular 的插件。由 Grafana Labs 开发和签名的插件被排除在外,不能进行沙箱化。

何时使用前端沙箱

我们强烈建议为允许用户编写自定义 JavaScript 代码以进行数据可视化或操作的插件启用前端沙箱。这些插件虽然功能强大,但可能会在您的 Grafana 实例中执行任意 JavaScript 代码。沙箱通过限制此代码可以访问和修改的内容,提供额外的安全层。

以下是一些特别需要沙箱的插件示例

  • 允许用户编写自定义 JavaScript 代码的面板插件
  • 来自不受信任来源的插件

故障排除

如果启用前端沙箱后插件无法正常运行

  1. 临时禁用该特定插件的沙箱
  2. 测试插件在禁用沙箱的情况下是否能正常工作
  3. 如果插件仅在禁用沙箱的情况下才能工作,请在不使用沙箱保护的情况下继续使用之前,确保您信任插件来源
  4. 向插件开发者报告任何与沙箱相关的问题

了解更多